はじめに
こんにちは!
アプリ開発が好きで、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
})
})
終わりに
誰かの役に立つことができていれば幸いです。
アウトプットを頑張ろうと思っているので温かい目で見ていただけると嬉しいです。