概要
通常、開発が完了した後、開発を担当した開発者がGitHubでPR(Pull Request)を作成し、自分自身をAssignees
に追加します。しかし、毎回PRを作成するたびにAssignees
に自分自身を追加するのは手間です。
このブログポストでは、GitHub Actionsを使ってPRを作成するたびに自動的にAssignees
にPRを作った開発者を追加する方法について説明します。
GitHub Actions生成
PRに自動的にAssignees
を追加するGitHub Actionsを作成するために.github/workflows/auto-assign-assignees.yml
ファイルを作成し、次のように修正します。
name: Assign assignees
on:
pull_request:
types:
- opened
jobs:
assign:
name: Set assignees
runs-on: ubuntu-latest
timeout-minutes: 1
if: github.event.pull_request.user.login != 'dependabot[bot]'
steps:
- name: Set assignees
uses: actions/github-script@v7
with:
github-token: $
script: |
const { owner, repo } = context.repo
const prNumber = context.payload.pull_request.number
const response = await github.rest.issues.get({
owner,
repo,
issue_number: prNumber,
})
const { assignees } = response.data
if (assignees.length === 0) {
await github.rest.issues.addAssignees({
owner: owner,
repo: repo,
issue_number: prNumber,
assignees: [context.actor]
})
}
このGitHub Actionsをもう少し詳しく見ていきましょう。
...
on:
pull_request:
types:
- opened
...
このGitHub ActionsはPRが作成されたときに実行されます。
...
jobs:
assign:
...
if: github.event.pull_request.user.login != 'dependabot[bot]'
...
私はGitHubでDependabotを使っています。Dependabotが生成したPRのAssigneesにDependabotを追加できないので、Dependabotが生成したPRにはAssigneesを追加しないように設定しました。
...
jobs:
assign:
...
steps:
- name: Set assignees
uses: actions/github-script@v7
with:
github-token: $
script: |
const { owner, repo } = context.repo
const prNumber = context.payload.pull_request.number
const response = await github.rest.issues.get({
owner,
repo,
issue_number: prNumber,
})
const { assignees } = response.data
if (assignees.length === 0) {
await github.rest.issues.addAssignees({
owner: owner,
repo: repo,
issue_number: prNumber,
assignees: [context.actor]
})
}
GitHub
が提供するGitHub Actionsを使ってJavaScriptコードでPRを作成する開発者(context.actor
)をAssignees
に追加するコードを書きました。
完了
これでPRを作成するたびに自動的にAssignees
にPRを作った開発者を追加するGitHub Actionsを作成する方法について説明しました。皆さんもこのGitHub Actionsを使って手動で設定していたAssigneesを自動的に設定してみてください。
私のブログが役に立ちましたか?下にコメントを残してください。それは私にとって大きな大きな力になります!
アプリ広報
Deku
が開発したアプリを使ってみてください。Deku
が開発したアプリはFlutterで開発されています。興味がある方はアプリをダウンロードしてアプリを使ってくれると本当に助かります。