2016-11-04 41 views
1

我試圖找到一種方法讓Jenkins作業被匹配特定模式的PR註釋觸發,請檢查PR的最新提交狀態是否爲PASSED將由PR打開時運行的獨立CI作業設置,併合並代碼。 PR的評論將象徵着代碼已經被正確的同行評審,提交狀態表示所有前端和後端單元測試已經通過。Jenkins管道從webhook讀取提交狀態

我真的不確定的唯一部分是從webhook負載中檢索提交狀態。有什麼建議?

回答

0

TLDR

調用statuses API列出針對SHA創建的所有狀態或使用combined status API


查找最新的承諾

如果您還沒有最新的SHA提交,然後有一些方法來從API端點得到這個。

這將假定有一個應用程序監聽webhook事件,特別是IssuesCommentEvent,以解析「特定模式」的註釋正文。

  1. 獲取的URL拉入請求

甲網絡掛接事件將包含Pull Requesturl在JSON體,例如:

{ 
    "action": "created", 
    "issue": { 
    ... 
    "pull_request": { 
     "url": "https://api.github.com/repos/sample/mysample/pulls/13", 
     ... 
     } 
    } 
    } 
} 
  • 獲取SHA或狀態端點
  • 使用在上一步中返回的結束url的拉取請求API。 JSON正文將包含一個statuses_url值,該值將返回針對該SHA創建的每個狀態,或者獲取SHA並調用前面提到的任何狀態端點。

    { 
        "statuses_url": "https://api.github.com/repos/sample/mysamples/statuses/1985617647f17fe4fc85efeeaffef24581a12488", 
        ... 
        "head":{ 
         "sha": "1985617647f17fe4fc85efeeaffef24581a12488", 
        } 
        }