LoginSignup
5
4

GitHub Actions イシュー、プルリク作成時にアサインを自動付与する

Last updated at Posted at 2024-04-02

ScreenShot 2024-03-11 0.02.56.png

概要

IssueやPull Requestの作成時にアサインを指定忘れることないでしょうか?
Assigneesが未指定の場合は作成した人がアサインされるようにする方法をご紹介します。

Gitシリーズ記事まとめ

GitHub Reviewer と Assignees

GitHubのIssueおよびPull Requestは Assignees を設定できます。
Pull Requestは Reviewer を設定できます。

Reviewerはコードをレビューして欲しい人を指定します。
必ずしもその領域の責任者やコミットのマージに責任を負う人ではありません。(今回のワークフローでは特に関係ないですね)

Assignees はPRの作成者や現在の担当者を意味したりしますが、プロジェクトのルール次第なところがあり厳密な定義はありません。

アサインの運用の一例をご紹介します。

  1. PR作成時は Assignees に作成者をアサインする(ここを忘れ防止のため自動化してます)
  2. レビュー依頼時は Assignees を外して空の状態にし、 Reviewer を指定する(複数人可)
  3. レビューに着手する時は Assignees にレビュワーを設定してしてボールを持っていることを明確化します
  4. レビューが終わったら Approve または Request Changes を送信し、 Assignees から自分を外してPR作成者へボールを返します
  5. レビューで Approve 貰えたらPR作成者が責任を持ってマージします。 Request Changes の場合は 2〜4 を繰り返します

今までやってきたプロジェクトで、理に適ったアサイン運用をしていたものを参考にさせていただきました。
アサインの運用はプロジェクトによるため、1番のみで運用されていたり、マージ権限を持つ人が最終的なアサインとなる場合もあります。

後からPRを検索する時にアサインが設定されていると目的のPRを検索しやすくなるので、1番の運用をするだけでもオススメです。

利用ツール

便利なActionがすでにあったので使わせていただきます。

実装

.github/workflows/assign-author.yaml

.github/workflows/assign-author.yaml
name: Assign Author
on:
  issues:
    types: [opened]
  pull_request:
    types: [opened]
jobs:
  assign-author:
    if: ${{ ! contains(fromJson('["renovate[bot]", "dependabot[bot]"]'), github.actor) }}
    permissions:
      issues: write
      pull-requests: write
    runs-on: ubuntu-latest
    steps:
      - uses: technote-space/assign-author@v1

補足

Botが作成したものはスルーします。
types: [opened] なので作成時のみ実行されます。
permissions で書き込み権限を与えないとエラーになります。
片方だけで良い場合は、onpermissions で不要な方削除して使ってください。

業務改善度: ★★☆☆☆

星2つです。
地味に忘れることがあるので地味に嬉しい機能です。

なくて困る訳でも、あってめっちゃ嬉しい訳でもないですが、IssueやPR作成されるたびに活躍してくれる便利なワークフローです。

これはyamlファイルを1つ配置するだけで良いので導入しやすいです。

参考

5
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4