🙄

GitHubのPR作成時に自動アサインする方法

に公開

こんにちは。
皆さん、PRを作成するたびに手動で自分にアサインしていませんか?
(PR作ってるの自分なんだからアサインも自分にしてくれよ。自分以外誰がアサインされるねん)
と内心思ってますが、
ここでは GitHub Actions を使って、PR作成時に自動でアサインする機能を紹介しようと思います。

  1. ワークフローファイルの作成

.github/workflows/pr_auto_assign.yaml を作成します

# ワークフローの名前(GitHub Actions画面で表示される)
name: PR Auto Assign

# トリガー条件(いつこのワークフローを実行するか)
on:
  pull_request:
    types: [opened]

# 権限設定(GitHub ActionsがPRを操作するために必要)
permissions:
  contents: read
  pull-requests: write
  issues: write

# 実行するジョブの定義
jobs:
  auto_assign:
    runs-on: ubuntu-latest
    steps:
      - name: Auto Assign PR
        uses: actions/github-script@v7
        with:
          script: |
            const { owner, repo } = context.repo;
            const prNumber = context.payload.pull_request.number;
            const author = context.payload.pull_request.user.login;

            // PRを作成した人を自動でアサイン
            await github.rest.issues.addAssignees({
              owner,
              repo,
              issue_number: prNumber,
              assignees: [author]  // PRを作成した人をアサイン
            });

            console.log(`Assigned ${author} to PR #${prNumber}`);

↑のコードで大事なポイント

・権限設定が必須

permissions:
  contents: read
  pull-requests: write
  issues: write

・トリガーイベント

on:
  pull_request:
    types: [opened, ready_for_review] # プルリクエストが作成された時、またはレビュー待ちの時に実行
  1. リポジトリ設定の変更

Settings → Actions → General → Workflow permissions で Read and write permissions を選択

3 実行したジョブ
下図の様にジョブが成功し、自動でアサインされているのが確認出来ます。

終わり。
些細な手作業を自動化することで生(せい)を実感出来ます。

Discussion