MergifyでGitHubのPullRequestでテストがパスすると自動でマージする
MergifyでGitHubのPullRequestでテストがパスすると自動でマージする オープンソースなら無料
手順
登録するとこんな感じの画面が表示される
https://gyazo.com/7a8ce5c9b8c3f97d4820e18a06435268
YAMLで設定を書く
作った設定は以下
リポジトリ直下に配置する
code:.mergify.yml
pull_request_rules:
- name: Automatic merge on approval
conditions:
- "status-success=build"
- "label=automerge"
actions:
merge:
method: merge
内容は
buildというGitHub Actionsのジョブが正常終了する
PRにautomergeというラベルが付与されている
ときに、自動でマージをする
YAMLの設定が自動マージが実際に動く設定かどうか確認したい場合は、以下の手順を実施
画面左のサイドバーから「Simulator」を選択
画面上部の入力欄に対象リポジトリ名を入力する
画面上部の入力欄にプルリクエストの番号を入力する
過去にマージされたPullRequestの番号を入れる
https://gyazo.com/344fb5eaadf31c8598f4dc8eed268950
YAML内のconditionの部分にジョブ名をセットする
このエディタのテキストが超絶ずれてて死ぬほど書きづらい
このエディタを使うと画面右半分の部分で検証ができる
ジョブ名は .github/workflows/*.ymlのjobs内に定義されている
jobs[].<job_name>.nameが未定義なら<job_name>をここでは指定する
画面右に条件を満たしたかどうかを出力する
全部にチェックが入っていれば自動でマージされる設定であることが分かる
過去にマージされたPullRequestにラベル付けたりするとconditionが変わる
画面右側のチェックボックスに全てマークがつくと自動マージが走る条件になったことがわかる
「Create a pull request with this configuration」のボタンを押す
この画面で作った設定ファイルをリポジトリに登録するためのPRが作られる
マージする
/icons/warning.icon 新しくMergifyの設定を追加するPullRequestでは自動マージは走らない
まぁそうしないと他人が勝手にMergifyの設定を書いて勝手にマージされるみたいなことが起こるよね
masterにマージ後のPullRequestから自動マージされるようになる
適当にPullRequest作って動作確認しよう
注意点
リポジトリの監視は毎分というインターバルで行われる
タイミングによってはCIをパスしてから1、2分待つ必要がある