curl 使用Github API禁用pull请求上的合并按钮,并使用REST重新启用

rqqzpn5f  于 12个月前  发布在  Git
关注(0)|答案(2)|浏览(120)

我已经开发了自己的网络服务器,在我的android应用程序上进行自动化。如果自动化运行时出现问题,我想使用cURL REST命令以编程方式禁用github pull请求上的“merge”按钮。我无法找到正确的方法来做到这一点,但似乎很多人会受益于此功能。
github pull requests的API可以在这里找到:https://developer.github.com/v3/pulls/
我知道这是可能的,因为如果你的分支上有合并冲突,按钮会变灰,你不能点击/合并它。这正是我正在寻找的功能。如果你能帮忙的话,我将不胜感激。

mgdq6dx1

mgdq6dx11#

这是可能的。有几个步骤,你应该采取启用此功能。

  1. Configure您的一些分支(通常是master或/和develop,取决于您的工作流程)as protected
    1.使用Statuses API,您可以发送PendingSuccessErrorFailure状态。PendingErrorFailed状态将阻止合并按钮。
    完成后,您可以根据业务规则发布状态。
POST /repos/:owner/:repo/statuses/:sha

:sha是合并请求中最新提交的哈希值
像这样的有效载荷:

{
  "state": "success",
  "target_url": "https://link.to/some/reporting/page",
  "description": "Automation tests passed!",
  "context": "continuous-integration/automation-tests"
}

有一件事值得一提。当您至少发布了一个状态时,context字段中的值将显示在受保护的分支设置页面上。不要忘记将此状态标记为必填:

Protected branches and required status checks

cidc1ykv

cidc1ykv2#

保护分支,然后在状态检查未通过或审查未完成时阻止合并。这是一个非常简单的解决方案,它工作得很好。但如果你更好奇,那么试着在不保护分支的情况下做。我找不到一个方法来做到这一点。

相关问题