今回は、GithubActionsを使ってPullRequestに付与するラベルやレビュアー等を自動化していきます。
実務の中でも、同じメンバーにレビュー依頼をすることや特定のラベルを付与したいケースが多いと思いますので、今回はPR作成時にこれらを自動化していきます。
ゴール
- PR作成時にLabel、Reviewers、Assigneesを自動付与させる
導入手順
前提:何かしらのプロジェクトフォルダが作成されている
- GithubActionsのワークフローを作成
- リモートリポジトリにPushし、PRを作成
- 各種情報が自動付与
実装
ワークフローのファイル作成
最終的なディレクトリ構成は以下のようになります。
└── .github
├── workflows
│ └── pull_request.yml
└── config
└──auto_assign.yml
Labelの自動付与
既に用意されているactionを使って実装していきますので、速攻です。
※利用するaction:https://github.com/andymckay/labeler
add-labels
に付与したいラベルを記載します。
カンマつなぎで記載すれば複数付与も可能です。
name: Set Pull Request
on:
pull_request:
types: [opened]
jobs:
set_pull_request:
runs-on: ubuntu-latest
steps:
- name: auto-labels
uses: andymckay/labeler@master
with:
add-labels: 'sample1, sample2'
repo-token: ${{ secrets.GITHUB_TOKEN }}
Reviewers、Assigneesの自動付与
こちらも既に用意されているactionを使って実装していきます。
※利用するaction:https://github.com/kentaro-m/auto-assign-action
name: Set Pull Request
on:
pull_request:
types: [opened]
jobs:
set_pull_request:
runs-on: ubuntu-latest
steps:
- name: auto-labels
uses: andymckay/labeler@master
with:
add-labels: 'sample1, sample2'
repo-token: ${{ secrets.GITHUB_TOKEN }}
# ↓ ここから追加 ↓
- name: auto-assign
uses: kentaro-m/auto-assign-action@v1.2.4
with:
configuration-path: '.github/config/auto_assign.yml'
repo-token: ${{ secrets.GITHUB_TOKEN }}
具体的な設定はconfiguration-path
に記載した別ファイルに実装していきます。
#Ref:https://github.com/kentaro-m/auto-assign-action
# Set to true to add reviewers to pull requests
addReviewers: true
# Set to true to add assignees to pull requests
addAssignees: author
# A list of reviewers to be added to pull requests (GitHub user name)
reviewers:
- test_user_1
- test_user_2
# A number of reviewers added to the pull request
# Set 0 to add all the reviewers (default: 0)
numberOfReviewers: 0
skipKeywords:
- bump #dependabotは除外
reviewers
:設定したユーザーIDがreviewersとして設定される
addAssignees
:PR作成者を自動でassigneesへ設定する場合は、authorを入れる
その他、runOnDraft: true
とするとDraftPR時は設定しないように指定できます。
さいごに
先人たちがアクションを作成して頂いたおかげでサクッと実装が出来ました!他にも特定のブランチに対してのみラベル付与する等、自由度はかなり高いと思いますので、状況に応じてカスタムしていきたいと思います。