2015-10-30 46 views
8

我開發了自己的web服務器,它在我的android應用程序上實現了自動化。如果自動運行時出現問題,我想使用cURL REST命令以編程方式禁用github pull請求上的「合併」按鈕。我無法找到正確的方法來做到這一點,但似乎很多人會從這個功能中受益。使用Github API來禁用拉取請求上的合併按鈕,並使用REST重新啓用它

對github上引入請求的API可以在這裏找到:https://developer.github.com/v3/pulls/

我知道這是可能的,因爲如果你在你的分支合併衝突,該按鈕被變灰,並且你不能點擊/合併。這是我正在尋找的確切功能。任何幫助將非常感激。

回答

5

這是可能的。有幾個步驟可以啓用此功能。

  1. Configure你的一些分支(通常是master或/和develop,取決於您的工作流程)as protected
  2. 使用Statuses API您可以發送Pending,Success,ErrorFailure狀態。 Pending,ErrorFailed狀態將阻止合併按鈕。

一旦完成,您可以根據您的業務規則POST狀態。

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" 
} 

有一件事值得一提。當您發佈至少一個狀態時,context提交的值將顯示在受保護分支設置頁面上。不要忘記,以紀念這一地位的要求:

Require status checks to pass before merging

Protected branches and required status checks

0

保護分支,然後阻止合併,如果狀態檢查未通過或審查未完成的作品。這是一個非常直接的解決方案,它完美地工作。 但是,如果你更好奇,那就試試它,不要保護分支。我找不到辦法做到這一點。