okaryo.log

mainブランチに対するPullRequest作成時にラベルを自動付与するGitHubActionsを組む | okaryo.log

mainブランチに対するPullRequest作成時にラベルを自動付与するGitHubActionsを組む

    #GitHubActions#GitHub

はじめに

自分はmainブランチをリリース用のブランチとし、developブランチから開発用のブランチをチェックアウトしている。リリースする際はdevelopブランチからmainブランチにPullRequestを作成してマージをしている。

このPullRequestにreleaseラベルを毎回付けていたが自動化したくなり、今回はそのワークフローを組んだので残しておく。ちなみにPullRequestへのラベルはリリースノート自動作成用に使用している。

ワークフロー

組んだワークフローは以下。

name: Label Release PR

on:
  pull_request:
    types: opened
    branches:
      - main

jobs:
  label-release:
    if: ${{ github.base_ref == 'main' && github.head_ref == 'develop' }}
    runs-on: ubuntu-latest
    steps:
      - name: Apply release label
        uses: actions-ecosystem/action-add-labels@v1
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          labels: release

以下でmainブランチに対するPullRequestの作成をトリガーにしている。自分の場合はPullRequestの作成のみをトリガーにしているが、例えばPullRequestに変更があったときにも実行させたい場合は、types: [ opened, synchronize ]のように指定する。

on:
  pull_request:
    types: opened
    branches:
      - main

ここではgithub.base_refgithub.head_refを使って、developブランチからmainブランチに対するPullRequestの作成時にのみジョブが実行されるように制御している。

if: ${{ github.base_ref == 'main' && github.head_ref == 'develop' }}

そして、ここでPullRequestにラベルを付与している。使用しているActionはactions-ecosystem/action-add-labelslabelsで付与したいラベルを指定する。

- name: Apply release label
  uses: actions-ecosystem/action-add-labels@v1
  with:
    labels: release

複数のラベルを付与したい場合は以下のように指定する。

with:
  labels: |
    release
    feature

おわり

今回はリリース用のPullRequestにのみラベルを付けたが、例えばPullRequestのタイトルの接頭辞にfeat:fix:が付いていたらfeaturebugのラベルをつける、ということもできそう。

こういったブレやミスのある人間の判断や操作を必要とする定期作業はなるべく自動化してミスを無くし楽をするようにしたい。


関連記事
最新記事
プロモーション

This site uses Google Analytics.