gpt4 book ai didi

python - 使用 Python Hook 通过 ReviewBoard 和 Mercurial 自动执行审阅请求

转载 作者:行者123 更新时间:2023-11-28 20:52:02 27 4
gpt4 key购买 nike

这是我的问题:

我有一个远程 Mercurial 存储库,其中将设置传入或更改组 Hook ,并且我在另一台服务器上设置了 ReviewBoard。这个想法是在从开发人员推送到远程存储库时自动生成审查请求票证。当然,我需要一个调用后审查的 Hook ,它也使用使用 mercurial api (ctx.user()) 提取的提交用户,否则所有审查请求票都将以用户的名义将远程存储库连接到评论板服务器。

我的主要难题实际上是获取开始修订和停止修订,如果我使用传入,我将获取所有变更集节点,但当然每次都会调用 Hook ,因此每次调用之间不会保留任何状态。另一方面,如果我使用变更组,我只得到第一个变更集,我无法比较。同样为了比较,我需要一种方法来保留之前的提示,以便基本上将其发送到后期审查:

post-review --revision-range=previoustip:newtip --submit-as=ctx.user() 

如果您对如何解决问题有任何想法,我将很高兴。我显然是在用 python 编写钩子(Hook)。

最佳答案

不确定这是否正是您所需要的,但这是我在几乎相同的情况下用于执行提交消息检查的东西,它必须检查每个更改并根据用户验证信息。以同样的方式,我需要检查更改列表的用户,而不是“推送”用户。为特定用户构建更改集以及“ block ”中的开始和结束修订,同时循环遍历更改组中的更改,应该相当容易。

返回是因为它被用作pretxnchangegroup hook

def checkAllCommitMessage(ui, repo, node, **kwargs):
"""
Checks all inbound changeset messages from a push for adherence to the commit message rules.
"""

# for each change being submitted
# get all the details, and call the trigger
fail = False

for rev in xrange(repo[node].rev(), len(repo)):
# get context (change)
ctx = repo[rev]

# user who commited the change (NOT necessarily the one who is doing push)
user = ctx.user()

# do the hook stuff here...
# set fail to True if something goes wrong

return fail

关于python - 使用 Python Hook 通过 ReviewBoard 和 Mercurial 自动执行审阅请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7675917/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com