GitHub ActionsのMarketPlaceを眺めてたら「PRがApprovedされたらラベルを付ける」というアクションを見つけたので使ってみました
- Label approved pull requests
Label approved pull requests · Actions · GitHub Marketplace
https://github.com/marketplace/actions/label-approved-pull-requestsgithub.com
指定した人数だけPRがApprovedされたらラベルをつけるアクションです
READMEどおりにworkflowを定義するだけでOKでした
- .github/main.workflow
workflow "Label approved pull requests" { on = "pull_request_review" resolves = ["Label when approved"] } action "Label when approved" { uses = "pullreminders/label-when-approved-action@master" secrets = ["GITHUB_TOKEN"] env = { LABEL_NAME = "approved" APPROVALS = "2" } }
二人にApproveされたらapproved
ラベルをPRにつけるという設定をしています
試しにリポジトリ作って確認してみました
二人をreviewerにアサインして待ちます
一人目がPRをApproveしました
二人目がPRをApproveしました
approved
ラベルが付きました
アクションのソース眺めてみましたがシェルスクリプトでGitHubのAPIを叩いていて、そんなに長くなかったのでこういう感じのアクションをどんどん作っていけばラベルの人力運用をなくしていけそうですね
チーム内だと今スクリプト作ってPRの一覧を出したりしてるのですがそのあたり改善できそうに思いました
他にも
- コミットコメントにWIPがあったらWIPステータスにする
- PRがマージされたらそれに紐づくissueも閉じる
- GitHub Pagesへの自動デプロイ
- Slack通知
などすでにいろいろあるようなので一度覗いてみたらおもしろいと思います
実態はただのDockerContainerなので機能が足りなかったりやりたいことができない場合は自分で作ればいいのでとっつきやすいと思います
業務で使ってみたい感が高まってきました