notebook

都内でWEB系エンジニアやってます。

GitHub ActionsでPRがApproveされたらラベルを付ける

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しました

f:id:swfz:20190308022920p:plain

二人目がPRをApproveしました

f:id:swfz:20190308022939p:plain

approvedラベルが付きました

アクションのソース眺めてみましたがシェルスクリプトでGitHubのAPIを叩いていて、そんなに長くなかったのでこういう感じのアクションをどんどん作っていけばラベルの人力運用をなくしていけそうですね

チーム内だと今スクリプト作ってPRの一覧を出したりしてるのですがそのあたり改善できそうに思いました

他にも

  • コミットコメントにWIPがあったらWIPステータスにする
  • PRがマージされたらそれに紐づくissueも閉じる
  • GitHub Pagesへの自動デプロイ
  • Slack通知

などすでにいろいろあるようなので一度覗いてみたらおもしろいと思います

実態はただのDockerContainerなので機能が足りなかったりやりたいことができない場合は自分で作ればいいのでとっつきやすいと思います

業務で使ってみたい感が高まってきました