首页 > 解决方案 > Jenkins 检查是否在 Bitbucket 上创建了 Pull Request

问题描述

如何从詹金斯工作级别检查是否在 Bitbucket 上创建了拉取请求?我想解决方案可能是使用詹金斯工作中的 Bitbucket API?

我不想从Bitbucket 级别执行此操作,因为它是许多项目触发的通用工作。

标签: gitjenkinsbitbucketpull-request

解决方案


您可以使用BitBucket 的 Pull Request REST API实现相同的目的。

例如。

curl -u <USERNAME>:<PASSWORD> -X GET <BITBUCKET_ROOT>/rest/api/1.0/projects/<PROJECT>/repos/<APPLICATION>/pull-requests/<PR_ID>/changes

如果拉取请求存在,API 会以 JSON 形式返回更改。如果没有,它会返回如下所示的错误 JSON。

{"errors":[{"context":null,"message":"Pull request <PR_ID> does not exist in <PROJECT>/<APPLICATION>.","exceptionName":"com.atlassian.bitbucket.pull.NoSuchPullRequestException"}]}

您可以在构建传统 Jenkins 作业之前或之后在“执行 Shell 脚本”步骤中使用上述 curl 命令,或者如果您想更好地控制构建作业的时间和方式,则可以使用Jenkins Pipeline 。


推荐阅读