这次提交放行还是拦下
(pre_commit(检查表) 全过交回 0(放行)、有一个挂交回 1(拦下);verdict 交回「提交」或「拦下」;blocked_by(带名字的检查) 交回第一个把提交拦下的检查名。)
三项检查里 lint 挂了,问退出码和结论:
def pre_commit(checks):
"""pre-commit 钩子跑一串检查:全过交回 0(放行提交),有一个挂交回 1(拦下)。"""
return 0 if all(checks) else 1
def verdict(checks):
"""这次提交会被放行还是拦下:交回 '提交' 或 '拦下'。"""
return "提交" if all(checks) else "拦下"
def blocked_by(named):
"""named: [(检查名, 通过?)],交回第一个把提交拦下的检查名;全过交回空串。"""
for name, ok in named:
if not ok:
return name
return ""
checks = [True, True, False]
print(str(pre_commit(checks)) + "/" + verdict(checks))
全部评论