使用Github API在拉取请求上禁用合并按钮,并使用REST重新启用它

Sco*_*t B 8 rest curl git-merge github-api pull-request

我开发了自己的网络服务器,在我的Android应用程序上实现自动化.如果自动化运行时出现问题,我想使用cURL REST命令以编程方式禁用github pull请求上的"merge"按钮.我找不到正确的方法来做到这一点,但似乎很多人都会从这个功能中受益.

可以在这里找到github pull请求的api:https://developer.github.com/v3/pulls/

我知道这是可能的,因为如果你的分支上有合并冲突,那么按钮会变灰并且你无法点击/合并它.这是我正在寻找的确切功能.任何帮助将非常感激.

Ant*_*kov 5

这个有可能.您应该采取几个步骤来启用此功能.

  1. 配置你的一些分支(通常是master或/和develop,取决于您的工作流程)protected.
  2. 使用以下状态API,你可以发送Pending,Success,ErrorFailure状态.Pending,ErrorFailed状态将阻止合并按钮.

完成后,您可以根据业务规则发布状态.

POST /repos/:owner/:repo/statuses/:sha
Run Code Online (Sandbox Code Playgroud)

:sha 是Pull Request中最新提交的哈希值

像这样的有效载荷:

{
  "state": "success",
  "target_url": "https://link.to/some/repotring/page",
  "description": "Automation tests passed!",
  "context": "continuous-integration/automation-tests"
}
Run Code Online (Sandbox Code Playgroud)

有一点值得一提.当您发布至少一个状态时,来自字段的值context将显示在受保护的分支设置页面上.不要忘记根据需要标记此状态:

在合并之前要求状态检查通过

受保护的分支和所需的状态检查