はじめに
過去、以下の記事で調べたことを応用して、使えそうな汎用GitHubActionsを実際に作ってみるというのをやってみました。
今回作ったもの
プルリクエストを作成後にReviewersとAssigneeを逐次設定するのですが、わたしのプロジェクトにおいて毎回同じ設定なので自動化できないかなというところで、以下の2つのActionを組み合わせました。
動作
以下の図のようにプルリクエストをAさんが作成すると、Assigneesに自動で作成者のAさん本人と
事前に設定していた yus-sasaki(私) というメンバーがReviewersとAssigneesの両方に設定されます。
※設定はReviewersとAssigneesに対して個別にできます。以下の例は両方に私を設定した感じです。
作成したymlファイル
設定ファイルとAction本体とで2つファイルがあります。今回は以下のように配置してます。
.githubフォルダ
・workflowsフォルダ - autoassignees.yml
・auto_assign_myteams.yml
アクション本体ですが、2つのActionを呼んでいるのみです。
name: 'Auto Assign'
on:
pull_request:
types: [opened, ready_for_review]
jobs:
add-reviews:
runs-on: ubuntu-latest
steps:
- name: Assignees and Reviewers to PR
uses: kentaro-m/auto-assign-action@v1.2.1
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
configuration-path: ".github/auto_assign_myteams.yml"
- name: Assign author to PR
uses: technote-space/assign-author@v1
以下が Reviewers と Assignee の設定になります。
reviewers:
とassignees:
にGithubのメンバを追加すれば、そのメンバが設定されるようになります。
他の項目は基本いじらなくていいと思います。
# プルリクエスト作成者は別途Assigneesに追加されるようになっています。
# プルリクエストにReviewersを追加するには true に設定します。
addReviewers: true
# プルリクエストにAssigneesを追加する場合は true に設定します。
addAssignees: true
# Reviewerに設定するメンバを追加します。
reviewers:
- yus-sasaki
# Reviewersに追加するメンバ数を指定できます。
# 追加メンバより設定数が少ない場合、ランダムで追加されます。
# 0に設定すると全てのReviewersのメンバが追加されます。
numberOfReviewers: 0
# Assigneesrに設定するメンバを追加します。
assignees:
- yus-sasaki
# Assigneessに追加するメンバ数を指定できます。
# 追加メンバより設定数が少ない場合、ランダムで追加されます。
# 0に設定すると全てのAssigneesのメンバが追加されます。
numberOfAssignees: 0
おわり
結構いろんな方が便利なGithubActionsを作成してくれてますので、さらにそれらをプロジェクトのかたちに応用していけば小さな手間をどんどん自動化でき、より効率化できそうですね。