2016-11-02 5 views
2

人によって承認され、正常にテストされたGitHubプルリクエストを自動的に(Jenkinsから)マージします。言い換えれば、ときに、これらのチェックマークの3つはすべて緑です:検証済みでテスト済みのGitHubプルリクエストを自動的にマージします

これは可能ですか?私は、GitHubの新しい「変更が承認されました」コードレビュー機能用のAPIに関するドキュメントは見つかりませんでした。

+1

@ kfbのおかげで、私は[NodeJSスクリプト](https://github.com/dgmltn/EggTimer)を書いています:準備ができたらGitHubを聞いて自動マージしてください。 – dgmltn

答えて

5

レビューが非保留状態で送信されたときにトリガーされる新しいPullRequestReviewEvent webhookがあります。ウェブフックの本体には、["review"]["state"]フィールドが含まれています。すべてのレビューアが変更を承認したとき(つまり、UIで緑色の「変更が承認されました」と表示されたとき)、approvedになります。

最後にrequesting the pull request from the APIによってプルの「マージ・能力」を確認し、その上のCIからステータスチェックを取得し、ためにあなたのプル要求のヘッドSHAためStatusEventと組み合わせる:

GET /repos/:owner/:repo/pulls/:number 

PUT /repos/:owner/:repo/pulls/:number/merge 

し、適切なペイロードパラメータ:あなたはすべての3つのことをしたら、あなたがmerge the pull requestことができます。いくつかのペイロードパラメータには、プレビュー期間中のようにAccept: application/vnd.github.polaris-preview+jsonが必要です。

+0

ありがとうございました。多くの発見がありました –

+0

これは簡単なAPI呼び出しでこれを達成することは可能ですか? PRoのステータスをチェックし、イベントベースのフックに頼るのではなく、apiレスポンスのステータスに基づいてマージする、repo-name、pr-idのようなargを取るcliプログラムを作成したい –

+0

[Issue Timeline API](https://developer.github.com/v3/issues/timeline/)を使用したイベントですが、このAPIを自分で使用していないため、どのように達成するための具体的なアドバイスはできませんあなたは後です。 – kfb

関連する問題