👌

PR を自動 Approve

1 min read

ユースケース

保護ブランチの設定で 1 人以上のレビューが必須になっている。
逆マージなど特定の作業をするときは 1 人で PR 作成とマージを行いたい。

GitHub Actions ワークフロー

.github/workflows/approve.yml
name: Approve

on:
  pull_request:
    types: [ review_requested ]

jobs:
  approve:
    runs-on: ubuntu-20.04
    timeout-minutes: 1
    if: ${{ github.event.requested_reviewer.login == 'approve-bot' }}
    env:
      GH_TOKEN: ${{ github.token }}
      NUMBER: ${{ github.event.number }}

    steps:
      - uses: actions/checkout@v2
      - run: gh pr review $NUMBER --approve
      - run: gh pr edit $NUMBER --remove-reviewer $REVIEWER
        env:
          REVIEWER: ${{ github.event.requested_reviewer.login }}

トリガー

特定のユーザー approve-bot がレビュワーに設定されたときに実行します。
ラベルを付けたとき等お好みで変更してください。

gh コマンドで PR を操作

https://zenn.dev/snowcait/articles/0e430af5fb1e50

更新系の処理では GH_REPO 環境変数が使えないようなのでチェックアウトしておきます。

チェックアウトせずに GH_REPO を使用した場合
could not determine current branch: fatal: not a git repository (or any of the parent directories): .git

トークンは github.token (= secrets.GITHUB_TOKEN) を使用しているので Approve するユーザーは github-actions になります。

Approve したら bot ユーザーはレビュワーから外しておきます。

Discussion

ログインするとコメントできます