test_interception

dct= [
(project1,branch1,branch2,review1)
(project2,branch1,branch2,review2)
(project3,branch1,branch2,review3)
]

msg = “S,需要减分{0}”

管控方法

def R_666_interception(branch_2_change,review,interception_name,subInterceptionType):
pass

get_all_changeds(project,changeid):
return changes

get_interception_change(changes,branch,reviewer):
for change_one in changes:
if change_one.branch == branch:
#判断是否有review-2,# 不全 未判断是否是这个管控的-2,需要根据评论判断
return change_one

juge_interception_or_remove(change,chages,current_branch,upstream_branch,reviewer):
# 然后根据这个仓和changeid,查询gerrit,找到同changeid + 同仓的所有changes,
changes = get_all_changeds(change.project,change.changeid)
all_branch = [change_one.branch for change_one in changes]
# 两边都有提交,直接消分。
if current_branch in new_lst and upstream_branch in new_lst:
for branch in [current_branch,upstream_branch]:
branch_2_change = get_interception_change(changes,branch,reviewer)
if branch_2_change:
# 在对这个 branch_2_change 进行消分,+ review
break
# 只提了一个分支,肯定就是当前的这个change。
else:
for branch in [current_branch,upstream_branch]:
branch_2_change = get_interception_change(changes,branch,reviewer)
# 如果这个分支存在-2,
if not branch_2_change:
# 进行管控 并减分
R_666_interception(branch_2_change,review,interception_name,subInterceptionType)

定制化分支互锁

if change.project in [ one[0] for one in dct] :
if change.branch in [ one[1] for one in dct] or
change.branch in [ one[2] for one in dct]:
for project,current_branch,upstream_branch,reviewer in dct:
# 仓和分支都属于,肯定需要减分或者消分,
if change.project == project and change.branch in [current_branch,upstream_branch]:
juge_interception_or_remove(change,chages,current_branch,upstream_branch,reviewer)
break

没啥用的

for change_one in changes:
	# 确认一下,找到这个单,判断这个单是否有review的-2,
	if change_one.project == change.project and change_one.branch == change.branch:
		# 判断有reviewer的-2,代表这个是 RE_INTERCEPTION触发的,或者更新patchset 触发的,,
			# 
		# 没有reviewer -2 ,代表是,新调的单,或者需要减分的单。
			# 


# 管控入口
for project,current_branch,upstream_branch,_ in dct:
	if change.project == project and change.branch in [current_branch,upstream_branch]:
		# 进行管控
		if change.branch == current_branch and change.branch != upstream_branch:
			upstream_branch = upstream_branch
		elif change.branch == upstream_branch and change.branch != current_branch
			current_branch = upstream_branch
		else:
			# 有一个相同的就退出,
			print "上下游project和branch相同,请检查配置"
			break
		# 调用管控方法:	
		666_interception(change,current_branch,upstream_branch,review,interception_name,subInterceptionType):
		break
		#return (change,current_project,current_branch,upstream_branch)
else:
	print " 888组件,系统为R,芯片为S,不同仓,管控,未生效。"
	

# 特殊分支互锁消分:明天写
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值