チームのGitHubリポジトリへPRを出すときに毎回ポチポチReviewerとAssigneeをクリックするのがダルすぎたのでなんとかしたくて設定した。
要求事項としては
これを実現したかった。
Auto Assign
Auto AssignはGitHub連携して使用するBotツールで、めちゃくちゃ便利な最高のツール。
使い方はREADMEに書いてあるとおりで、GitHubのリポジトリにAppをインストールして、.github/auto_assign.yml
を置いてconfigを書けばOK。
code-owner, Pull Assignerではダメだったのか?
code-owner
GitHubはコードオーナーの設定ができる。
これを設定しておいてPRを作成すると、自動でコードオーナーがReviewerに設定される。
一見これでよさそうではあるのだけれど問題があり、コードオーナーの権限は与えたくないメンバーがおり、しかしそういったメンバーにもPRが出されたら自動でreviewersに設定されて欲しいという欲求があったので、コードオーナーではダメだった。あとAssigneeの設定もできない。
Pull Assigner
GitHubに買収されたPullPandaのプロダクトラインの一つがPull Assigner。これも上記コードオーナーかリポジトリのチームメンバーを対象に自動でReviewerを付与してくれる。
特徴は”ランダムに”という点で、ランダムにreviewerを選出してアサインしてくれるので、属人性を防ぐ運用という観点で利用するならこれでOK。
ただ、僕の欲求はランダムであることはむしろ邪魔で、毎回リストメンバー全員を自動アサインしたかったので、ランダムに選出されPull Assignerは要求にマッチしなかった。Configをみたけれど、ランダム選出機能は現在はOFFにできないようだったのでこれもNGだった。
というわけでAuto Assignが適していた
- リストのメンバーを全員自動アサイン
- PR提出者をassigneeに自動設定
これを実現する.github/auto_assign.yml
の例は以下。
# Set to true to add reviewers to pull requests addReviewers: true # Set to author to set pr creater as assignee addAssignees: author # A list of reviewers to be added to pull requests (GitHub user name) reviewers: - member1 - member2 - member3 - member4 - member5 # A number of reviewers added to the pull request # Set 0 to add all the reviewers (default: 0) numberOfReviewers: 0 # A list of keywords to be skipped the process that add reviewers if pull requests include it skipKeywords: - wip - bump
addAssignees: author
にすることでPR提出者を自動でAssigneeに設定できる- reviwersに自動アサインしたいメンバーはGitHubネーム
@hogehoge
を@
なしで指定 numberOfReviewers: 0
にすることでリスト全員を対象にできるskipKeywords
にはAuto Assignが反応してほしくないPRタイトルを含むワードを指定する- dependabotのPRは反応してほしくないので、
bump
を入れている
- dependabotのPRは反応してほしくないので、
僕の今回の用途では使わなかったけれど、Auto AssignはPullPandaのPull Assignerと同じくランダム機能があり、numberOfReviewers
で数を指定するとその数をランダムにピックして自動アサインしてくれるらしい。リストのグループも作れるみたいなので、ある程度メンバーが多いチームでやるならなお便利だと思う。
その他の詳しいconfigはAuto AssignのREADMEを読むとわかる。
自動でBotがPRをいい感じにしてくれて最高になった。