我有一个Jenkins实例,带有一个“机器人” github帐户的凭据,我们将其与团队使用GitHub API进行交互。通常,将作业定义为声明性管道。我正在寻找执行以下步骤的正确语法:

在运行开始时,创建评论
在每个阶段结束时,发布评论评论以及状态舞台的,例如“构建已通过”。
如果所有阶段都通过,请批准拉取请求。

我可以允许执行脚本化步骤,但是整个管道应该是声明性的。没有共享库,最好只使用常用插件。
(用我尝试过的内容进行更新)
我尝试使用管道github插件的检查方法:
,但这会引发错误。
这里正确的语法是什么?

评论

您为什么不只对PR使用GitHub检查? jenkins.io/doc/pipeline/steps/pipeline-githubnotify-step

这会通知GitHub请求请求的状态,而不是代码审查的结果。即,它对github表示“我已经测试了该提交,并且还可以”,而不是“我已经进行了审核并且我批准了此请求”。区别在于它们使用GitHub API的不同部分。

是的,我知道,但是您的要求到底是什么?如果您需要确保由詹金斯(Jenkins)执行的某些操作能够顺利完成并将其通知给PR,这就是PR检查的目的,并且您可以将分支保护配置为在没有必要的绿色检查时不允许合并。那么,为什么要通过检查而不是检查来允许自动化流程合并或不合并PR?

#1 楼

我想最简单直接的解决方案是使用GitHub API:https://docs.github.com/en/rest/reference/pulls#create-a-review-for-a-pull-request
但是对于您的需求,通常要进行PR检查,并且您有一个插件可以为您进行API通信:https://www.jenkins.io/doc/pipeline/steps/pipeline-githubnotify-step/

评论


感谢@froblesmartin-您的考虑帮助我理解了实现此目标的最佳方法确实是直接使用API​​。

–布鲁斯·贝克尔(Bruce Becker)
20年7月10日在9:03

别客气!乐意效劳 :)

– froblesmartin
20年7月10日在9:05

我有一些使用api的示例-如果我编辑您的答案以添加它们,您介意吗?

–布鲁斯·贝克尔(Bruce Becker)
20年7月10日在15:43

@BruceBecker没问题!共享知识永远受到欢迎!

– froblesmartin
20年7月13日在6:51