はんなりと、ゆるやかに

アジャイル、スクラムが好きなITエンジニアが日々から学んだことをアウトプット

Release Drafter と GitHub Actions でリリースノートを自動化する

GitHub Actions でリリースノートを自動化する方法を調べていると Release Drafter というツールを見つけました。これを使うと簡単に良い感じにリリースノートが自動化できそうです。

Release Drafter

github.com

こちらがrelease-drafterです。プルリクエストがマージされるときにリリースノートのドラフトを自動で作成してくれます。

試して詰まったところ

早速試してみたところ、以下のエラーで躓きました。

Error: Validation Failed: {"resource":"Release","code":"invalid","field":"target_commitish"}

「対象のcommitishが無効です。」というエラーです。target_commitish の説明は以下を参照。
docs.github.com

ツールのサンプルの対象ブランチが main ではなく master だった

本ツールのサンプルコードの指定ブランチ名は master です。しかし、GitHubは2020年10月からデフォルトのブランチ名を master から main に変更していて、master というブランチはありませんでした。単純なミス。。。対象ブランチにコミットがないため、エラーになってしまいました。
github.blog

サンプルコードをコピーした場合「.github/workflows/release-drafter.yml」の以下の部分が master になっているため、mainに変更が必要です。(正しくはリポジトリのデフォルトブランチを指定)

on:
  push:
    # branches to consider in the event; optional, defaults to all
    branches:
      - master

修正して試した結果

修正した結果以下のようなリリースノートが自動で作成されてました。2つのプルリクエストをマージしており、ラベルはfeature、bug をそれぞれに付けています。(ラベルを付けると項目ごとに記述されます。)
f:id:iucstscui:20220405002330p:plain

サンプルのリポジトリは以下です。
github.com

まとめ

  • Release Drafter というツールを使うと簡単にリリースノートが自動化できます。
  • プルリクエストのタイトル名がそのままリリースノートに使われるため、プルリクエストのタイトルは分かりやすくする必要があります。
  • デフォルトブランチ名に合わせた設定変更が必要です。