GitHubリポジトリ内のリリースノートを対応内容ごとにカテゴライズしてイイ感じにする
はじめに
GitHubのリポジトリでリリースノートを作成する際、右上の「Generate release notes」ボタンを押すと前回のリリースから対応した差分の対応が自動で入力される。
これだけでも十分ではあるが、少し設定を追加するだけでこれを対応内容ごとにカテゴライズすることが可能になるので紹介する。
手順
1. 設定ファイルを作成する
.github/release.yml
ファイルにどのようにカテゴライズするかの設定ファイルを作成する。
設定オプションの公式ドキュメントは以下。
ちなみに自分はこういったものを作成した。
changelog:
exclude:
labels:
- ignore-for-release
categories:
- title: 🎉 Feature
labels:
- Feature
- title: 🐛 Bug
labels:
- Bug
- title: 🔥 Remove
labels:
- Remove
- title: ⚡ Performance
labels:
- Performance
- title: ♻ Refactoring
labels:
- Refactoring
- title: ✅ Testing
labels:
- Testing
- title: 💚 CI/CD
labels:
- CI/CD
- title: ⬆ Dependencies
labels:
- Dependencies
- title: 🔒 Security
labels:
- Security
- title: 🛠 Development
labels:
- Development
- title: 📝 Documentation
labels:
- Documentation
- title: Other Changes
labels:
- "*"
リリースノート作成時にlabels
に対応するラベルがついたマージ済みのPullRequestが差分にあった場合、対応するtitle
というカテゴリ名でリリースノートの内容がカテゴライズされる。
カテゴライズするのは今回が初めてなのに細かく作りすぎてる感はあるし、これで網羅できているかも分からないが、一旦は上記で運用してみて適宜使いやすいように変更を入れていこうと思っている。
ちなみにラベルを作成する際には@azuさんのgithub-label-setup
というリポジトリを参考にさせていただいた。
2. PullRequestに上記の設定に対応したラベルを付ける
設定自体はこれで完了したので、あとはPullRequestに対応内容ごとにラベルをつけていく。
3. リリースノート作成時に「Generate release notes」ボタンを押す
いくつかPullRequestをマージし、リリースノートを作成する際に上述の「Generate release notes」ボタンを押すと以下のようにリリースノートが対応内容ごとにカテゴライズされて表示されるようになった!
所感
これによってリリースの内容が分かりやすくなったのは良いことだが、PullRequestにラベルを付けるのだけがめんどくさい!
普段ラベルはイシューにつけているので、それをPullRequestにまでつけるのがめんどくさい。自分の中ではPullRequstはイシューに対応したもの、という認識なのでイシューにラベルをつけてPullRequestにもラベルを付けるのは二度手間感がある。
自分は普段PullRequest内の「Development」というところに対応するイシューを紐づけて、PullRequestがマージされたら自動でイシューがクローズされるようにしている。このDevelopmentへの紐付けをトリガーにして、イシューと同じラベルをPullRequestにもつけられるようにできないかと思ったが、そのようなトリガーは見当たらなかった(知ってる人いたら教えてください)。
おわり
一旦はPullRequest作成のたびにラベルを付けるやり方でやろうと思うが、良い方法が見つかれば改善するかも。
ともあれ、リリースノートが見やすくすることができるのでぜひ試してみてほしい。