使用GithubAPI禁用拉请求上的合并按钮,并使用REST重新启用它

使用GithubAPI禁用拉请求上的合并按钮,并使用REST重新启用它,rest,curl,git-merge,github-api,pull-request,Rest,Curl,Git Merge,Github Api,Pull Request,我已经开发了自己的web服务器,可以在我的android应用程序上实现自动化。如果自动化运行时出现问题,我希望使用cURL-REST命令以编程方式禁用github pull请求上的“merge”按钮。我无法找到正确的方法来实现这一点,但似乎很多人都会从这一功能中受益 github pull请求的api可在以下位置找到: 我知道这是可能的,因为如果分支上存在合并冲突,则按钮将变灰,并且无法单击/合并它。这正是我想要的功能。任何帮助都将不胜感激。这是可能的。要启用此功能,您应该采取两个步骤 您的一些

我已经开发了自己的web服务器,可以在我的android应用程序上实现自动化。如果自动化运行时出现问题,我希望使用cURL-REST命令以编程方式禁用github pull请求上的“merge”按钮。我无法找到正确的方法来实现这一点,但似乎很多人都会从这一功能中受益

github pull请求的api可在以下位置找到:


我知道这是可能的,因为如果分支上存在合并冲突,则按钮将变灰,并且无法单击/合并它。这正是我想要的功能。任何帮助都将不胜感激。

这是可能的。要启用此功能,您应该采取两个步骤

  • 您的一些分支机构(通常是
    master
    或/和
    develope
    ,取决于您的工作流程)
  • 使用可以发送
    挂起
    成功
    错误
    失败
    状态<代码>挂起,
    错误
    失败
    状态将阻止合并按钮
  • 完成后,您可以根据业务规则发布状态

    POST /repos/:owner/:repo/statuses/:sha
    
    :sha
    是拉取请求中最新提交的哈希值

    有效载荷如下所示:

    {
      "state": "success",
      "target_url": "https://link.to/some/repotring/page",
      "description": "Automation tests passed!",
      "context": "continuous-integration/automation-tests"
    }
    
    有一件事值得一提。当您至少发布了一个状态时,受保护的分支设置页面上将显示
    上下文
    字段中的值。不要忘记按要求标记此状态:


    如果状态检查未通过或审查未完成,则保护分支,然后阻止合并。这是一个非常直截了当的解决方案,效果非常好。 但是如果你更好奇,那么试着在不保护树枝的情况下进行。我找不到这样做的方法