GitHub Actionsのワークフローの特定ジョブの実行を承認必須にできる。
この機能はGitHubのリポジトリ設定のEnvironmentsのRequired reviewers設定を使用する。
本番環境へのデプロイなど、慎重な操作でダブルチェックが欲しいときなどに活用できる。

Environments の設定

環境の作成

リポジトリのSettingsからEnvironmentを作成する。

  1. リポジトリのSettingsをクリック
  2. 左サイドバーのEnvironmentsをクリック
  3. New environmentをクリック
  4. 環境名(例: production)を入力
  5. Configure environmentをクリック

Required reviewers の設定

Environmentの設定画面で承認者を指定する。

  1. Required reviewersにチェックを入れる
  2. 承認者となるユーザーまたはチームを最大6つまで入力する
  3. 自分自身による承認を拒否するために、Prevent self-reviewにチェックを入れる
  4. Save protection rulesをクリック

以上で指定した承認者のうち、1人が承認すればジョブが実行されるようなEnvironmentの設定が追加される。

Workflow での環境の指定

GitHub Actionsのワークフローファイルで環境を指定するには、ジョブレベルでenvironmentキーを使用する。

name: Deploy

on:
  workflow_dispatch:

jobs:
  deploy:
    runs-on: ubuntu-latest
    environment:
      name: production  # EnvironmentのNameを指定
    steps:
      - uses: actions/checkout@v4
      - name: Deploy to production
        run: |
          echo "Deploying to production..."
          # デプロイコマンド          

環境にRequired reviewersが設定されている場合、このジョブは承認されるまで実行されない。

複数ジョブがある場合でもジョブそれぞれにenvironmentキーを指定すれば、それぞれ承認を必須にできる。

承認する

承認待ち状態の確認

ワークフローが承認待ち状態になると、以下の場所で確認できる。

  • リポジトリのActionsタブ
  • ワークフロー実行の詳細ページにReview kdeploymentsボタンが表示される
  • 承認者には通知が届く(通知設定による)

承認・却下の操作

承認者は以下の手順で承認または却下する。

  1. Review deploymentsボタンをクリック
  2. 承認または却下する環境を選択
  3. 必要に応じてコメントを入力
  4. Approve and deployまたはRejectをクリック

Approve and deployを選択すると、ジョブが実行される。 Rejectを選択すると、ワークフロー全体が失敗する。

参考

Managing environments for deployment - GitHub Docs

Reviewing deployments - GitHub Docs