我的目标是设置一个从github服务器侦听webhooks的buildbot,然后通过通用的make all
命令构建webhook中列出的repo。
我遇到的问题是它出现在我需要提前指定github repo的构建步骤中,即
factory.addStep(
steps.GitHub(
repourl= "github.<domain>.com/<user>/<repo>/",
mode='full',
method='clobber'
)
)
理想情况下,我希望能够从http请求中获取repo url(显然在盲目运行代码之前验证它),然后检查它。就像是:
factory.addStep(
steps.GitHub(
repourl= request["repo_url"],
mode='full',
method='clobber'
)
)
这可能在buildbot框架中吗?任何提示或额外的文档,将非常感谢!!
只是包住其他任何人遇到这个我发现了两个潜在的解决方案。首先,webhook中有一个未记录的选项,允许将所有HTTP请求信息添加到属性对象中:
'www' : {
...
"change_hook_dialects" : {'github': {"github_property_whitelist": "*"}},
...
}
然后,您可以访问调度程序/构建器阶段中的所有http请求信息。然后,您还可以使用util属性在build_steps阶段获取属性信息,即
factory.addStep(
steps.GitHub(
repourl= util.Property('repository'),
mode='full',
method='clobber',
submodules=True
)
)