💯

レビュワー全員の Approve を必須にする

2021/08/01に公開

概要

少し前に Auto-merge 機能が使えるようになりました。
ブランチ保護のルールが満たされたときに自動的にマージしてくれます。
しかしブランチ保護のルールには「レビュー数」は指定できても「全員のレビューが通ったか」は指定できません。
レビューをリクエストされた全員の Approve をマージ条件としたい場合の設定方法です。

GitHub Actions ワークフロー

.github/workflows/unanimously-approved.yml
name: Unanimously Approved

on:
  pull_request:
    types: [ opened, reopened, synchronize, review_requested, review_request_removed ]
  pull_request_review:
    types: [ submitted, dismissed ]

jobs:
  unanimously-approved:
    runs-on: ubuntu-20.04

    steps:
      - uses: snow-actions/unanimously-approved@v1.0.0

https://github.com/snow-actions/unanimously-approved

ブランチ保護

ブランチ保護でステータス unanimously-approved (ジョブ名)を必須にします。
設定手順はこの記事にまとめていますのでご参照ください。

https://zenn.dev/snowcait/articles/42bb6b56c806da

ここまで設定するとレビュワー全員の Approve が必須になります。

Auto-merge 有効化(オプション)

リポジトリの設定で Allow auto-merge にチェックを入れておきます。
PR で Enable auto-merge するとブランチ保護のルールが満たされた場合に自動的にマージされます。

Discussion