Jenkins:在Bitbucket Pull Request中评论

7

我们已经实现了 Jenkins 和 Bitbucket cloud 的集成,并使用多分支管道作业通知 Bitbucket 关于拉取请求的构建状态。

现在我想增强它,并添加预览环境,例如在 pr150.testing.company.com 上,以便我们可以在合并之前测试生产构建。我计划使用 docker-compose 动态启动/停止预览环境。

现在,Jenkins 需要通过评论 Bitbucket 拉取请求来提供预览环境的链接。我知道 Bitbucket API 支持创建拉取请求评论。

我想象评论应该像这样: A Jenkins pull request comment

此示例来自 Jenkins-X

是否有适用于 Jenkins 的 Bitbucket 插件支持自动创建这种评论?

编辑:为了澄清,一个自动评论拉取请求的插件就足够了。我们很容易在我们这端创建评论内容。

1个回答

3

我找不到插件,但你可以在作业构建的一部分中执行shell命令来做到这一点。由于Jenkins按照提交而不是拉取请求工作,所以需要做一些额外的操作。首先,您需要使用API从分支名称中获取拉取请求ID。使用REST 1.0 API,您可以按以下方式完成。

BranchName=`echo ${GIT_BRANCH} | sed 's/origin\///'`
PullRequestID=`curl -s --request GET --url '{bitbucket_url}/rest/api/1.0/projects/{project_key}/repos/{repo_key}/pull-requests?State=OPEN&at=refs/heads/'${BranchName}'&direction=OUTGOING' --header 'Content-Type: application/json' -u username:password | sed -n 's/.*"values":\[{"id":\([0-9]*\).*/\1/p'`
echo '{"text": "Here's my comment with hyperlink"}' > comment.json
curl --request POST --url '{bitbucket_url}/rest/api/1.0/projects/{project_key}/repos/{repo_key}/pull-requests/'$PullRequestID'/comments' --header 'Content-Type: application/json' -u username:password -d @comment.json
rm comment.json

注意事项:

  • 远程名称可能不是“origin”,而是特定于项目的其他名称。请检查控制台日志以找到它
  • 将需要针对2.0 API进行更改,但概念应保持相同

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接