1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[Github Actions] PR作成時のReviewersの自動指定

Posted at

はじめに

こんにちは!
アプリ開発が好きで、Swiftの勉強をしている大学生です。
温かい目で見ていただけると幸いです。

やりたいこと

インターンで出会った際の友人とチーム開発をしているのですが、レビューをしてくれる方は固定されているので、自動化してみたいと思います。

実装

name: Auto Assign Reviewer
on:
  pull_request:
    types:
      - opened
      - reopened


jobs:
  assign_reviewer:
    runs-on: ubuntu-latest
    steps:
      - name: Assign Reviewer
        uses: actions/github-script@v4
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          script: |
            const reviewers = ["レビュワー1"]; 
            const { data: pullRequest } = await github.pulls.get({
              owner: context.repo.owner,
              repo: context.repo.repo,
              pull_number: context.issue.number
            });
           
            await github.pulls.requestReviewers({
              owner: context.repo.owner,
              repo: context.repo.repo,
              pull_number: context.issue.number,
              reviewers: reviewers,
            });

レビュワー1と書いてあるところはGithubのアカウント名に変えるとその人を指定してくれます。

Tip

レビューワーが複数人いらっしゃる場合には下記をコピーしたら使えると思います。

name: Auto Assign Reviewer
on:
  pull_request:
    types:
      - opened

jobs:
  assign_reviewer:
    runs-on: ubuntu-latest
    steps:
      - name: Assign Reviewer
        uses: actions/github-script@v6
        with:
          github-token: ${{ secrets.GITHUB_TOKEN }}
          script: |
            const reviewers = ["レビュワー1", "レビューワー2"] 
            const { number, user } = context.payload.pull_request
            const { data: pullRequest } = await github.rest.pulls.get({
                owner: context.repo.owner,
                repo: context.repo.repo,
                pull_number: context.issue.number
            })
    
            await github.rest.pulls.requestReviewers({
                owner: context.repo.owner,
                repo: context.repo.repo,
                pull_number: context.issue.number,
                reviewers: reviewers.filter(function( target ) {
                    return target != user.login
                })
            })
        

終わりに

誰かの役に立つことができていれば幸いです。
アウトプットを頑張ろうと思っているので温かい目で見ていただけると嬉しいです。

1
0
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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?