自動生成リリース ノートについて
自動生成リリース ノートは、GitHub リリースのリリース ノートを手作業で記述する代わりに、自動的に生成する機能です。 自動生成リリース ノートを使うと、リリースの内容の概要をすばやく生成できます。 自動生成されたリリース ノートには、マージされた pull request の一覧、リリースの共同作成者の一覧、完全な変更ログへのリンクが含まれます。
また、自動リリース ノートをカスタマイズし、ラベルを使ってカスタム カテゴリを作成して、含める pull request をまとめたり、特定のラベルとユーザーを出力に表示しないように除外したりすることもできます。
新しいリリースの自動生成リリース ノートを作成する
-
GitHub で、リポジトリのメイン ページに移動します。
-
ファイルの一覧の右側にある [リリース] をクリックします。
-
ページの上部にある [新しいリリースの下書き] を選びます。
-
リリースのタグを選択するには、 [タグの選択] ドロップダウン メニューを選択します。
- 既存のタグを使うには、そのタグを選びます。
- 新しいタグを作成するには、リリースのバージョン番号を入力し、 [新しいタグを作成] を選びます。
-
新しいタグを作成した場合は、 [ターゲット] ドロップダウン メニューを選び、リリースするプロジェクトが含まれるブランチを選びます。
-
必要に応じて、[説明] フィールドの上にある [前のタグ] ドロップダウン メニューを選び、次に前のリリースを特定するタグを選びます。
-
[リリース タイトル] フィールドに、リリースのタイトルを入力します。
-
"説明" フィールドの上にある [リリース ノートの生成] をクリックします。
-
生成されたノートをチェックし、含めたい情報がすべて (そしてそれだけが) 含まれることを確認します。
-
オプションで、コンパイルされたプログラムなどのバイナリファイルをリリースに含めるには、ドラッグアンドドロップするかバイナリボックスで手動で選択します。
-
必要に応じて、リリースが不安定であり、運用の準備ができていないことをユーザーに通知するには、 [これはプレリリースです] を選びます。
-
必要に応じて、 [最新リリースとして設定する] を選びます。 このオプションをオンにしないと、セマンティック バージョン管理に基づいて、最新のリリース ラベルが自動的に割り当てられます。
-
必要に応じて、GitHub Discussions がリポジトリで有効になっている場合、リリースのディスカッションを作成します。
- [このリリースのディスカッションを作成する] を選びます。
- [カテゴリ] ドロップダウン メニューを選び、次にリリース ディスカッションのカテゴリを選びます。
-
リリースを公開する準備ができている場合は、 [リリースの公開] をクリックします。 リリースの作業を後でする場合は、 [下書きの保存] をクリックします。 その後、リポジトリのリリース フィードで公開されたリリースまたはドラフト リリースを表示できます。 詳しくは、「リポジトリのリリースとタグを表示する」を参照してください。
自動生成リリース ノートを構成する
-
GitHub で、リポジトリのメイン ページに移動します。
-
ファイル リストの上で、[ファイルの追加] ドロップダウン メニューを選んで、 [新しいファイルの作成] をクリックします。
または、左側のファイル ツリー ビューの をクリックしてもかまいません。
-
ファイル名フィールドに、
.github/release.yml
と入力します。 これで、.github
ディレクトリにrelease.yml
という新しいファイルが作成されます。 -
このファイルでは、以下の構成オプションを使って、このリリースから除外する pull request ラベルと作成者を YAML で指定します。 新しいカテゴリを作成し、それぞれに含める pull request ラベルを列記することもできます。
構成オプション
パラメーター | 説明 |
---|---|
changelog.exclude.labels | リリース ノートに表示しない pull request のラベルの一覧。 |
changelog.exclude.authors | pull request をリリース ノートから除外するユーザーまたはボット ログイン ハンドルの一覧。 |
changelog.categories[*].title | 必須。 リリース ノートでの変更のカテゴリのタイトル。 |
changelog.categories[*].labels | 必須。 このカテゴリの pull request を修飾するラベル。 前のカテゴリのいずれにも一致しなかった pull request のキャッチオールとして * を使います。 |
changelog.categories[*].exclude.labels | このカテゴリに表示しない pull request のラベルの一覧。 |
changelog.categories[*].exclude.authors | pull request をこのカテゴリから除外するユーザーまたはボット ログイン ハンドルの一覧。 |
構成例
semver リリースにラベルを付けるリポジトリの構成
# .github/release.yml changelog: exclude: labels: - ignore-for-release authors: - octocat categories: - title: Breaking Changes 🛠 labels: - Semver-Major - breaking-change - title: Exciting New Features 🎉 labels: - Semver-Minor - enhancement - title: Other Changes labels: - "*"
# .github/release.yml
changelog:
exclude:
labels:
- ignore-for-release
authors:
- octocat
categories:
- title: Breaking Changes 🛠
labels:
- Semver-Major
- breaking-change
- title: Exciting New Features 🎉
labels:
- Semver-Minor
- enhancement
- title: Other Changes
labels:
- "*"
pull request にはタグを付けないが、Dependabot の自動 pull request はリリース ノートで分離する必要があるリポジトリの構成 (汎用カテゴリを表示するために labels: '*'
が必要です)
# .github/release.yml changelog: categories: - title: 🏕 Features labels: - '*' exclude: labels: - dependencies - title: 👒 Dependencies labels: - dependencies
# .github/release.yml
changelog:
categories:
- title: 🏕 Features
labels:
- '*'
exclude:
labels:
- dependencies
- title: 👒 Dependencies
labels:
- dependencies
参考資料
- 「ラベルを管理する」