评审中的下一个状态
按 PR 模型,next_state("review") 交回什么?
PR 生命周期模型:STATES = open → review → approved → merged。next_state 推进一格、is_open 没 merged 就开着、can_merge(状态, 批准数) approved 且有批准才能合、open_count 还开着几个。
STATES = ["open", "review", "approved", "merged"]
def next_state(s):
"""PR 沿 open→review→approved→merged 推进一格;到 merged 就停。"""
i = STATES.index(s)
return STATES[min(i + 1, len(STATES) - 1)]
def is_open(s):
"""还没合并(merged)的 PR 都算开着。"""
return s != "merged"
def can_merge(state, approvals):
"""到了 approved、且至少 1 个批准,才能合。"""
return state == "approved" and approvals >= 1
def open_count(states):
"""还开着几个 PR。"""
return sum(1 for s in states if s != "merged")
print(next_state("review"))
全部评论