.github/release.yml とは
release.yml は、GitHub のリリースノートを自動生成する際のカテゴリ分けやラベルの対応付けを定義するための設定ファイルです。
.github ディレクトリに配置します。
GitHub の Release とは
GitHub の Release とは、リポジトリのソフトウェアの特定のバージョンをパッケージ化して公開するための機能です。
タグに対してリリースノートやバイナリファイルを紐付けることができ、ユーザーに対して変更内容を分かりやすく伝えることができます。
リリースの作成時に「Generate release notes」ボタンをクリックすると、前回のリリース以降にマージされたプルリクエストの一覧からリリースノートが自動生成されます。
このとき .github/release.yml が配置されていると、プルリクエストのラベルに基づいてカテゴリ分けされたリリースノートが生成されます。
作り方
ゼロから書いていきます。YAML ファイルに以下のパラメーターを記載することができます。
このファイルでは、リリースを作成しないタグの指定や、リリースノートのカテゴリ分けを管理することができます。
| パラメータ | 説明 |
|---|---|
changelog.exclude.labels |
プルリクエストがリリースノートに表示されないようにするラベルのリスト。 |
changelog.exclude.authors |
プルリクエストをリリースノートから除外するユーザーまたはボットのログインハンドルのリスト。 |
changelog.categories[*].title |
必須。リリースノート内の変更のカテゴリのタイトル。 |
changelog.categories[*].labels |
必須。このカテゴリのプルリクエストを修飾するラベル。* は以前のカテゴリのいずれにも一致しないプルリクエストをまとめて処理します。 |
changelog.categories[*].exclude.labels |
プルリクエストがこのカテゴリに表示されないようにするラベルのリスト。 |
changelog.categories[*].exclude.authors |
このカテゴリからプルリクエストを除外するユーザーまたはボットのログインハンドルのリスト。 |
リリースノートの自動作成
例として enhancement のラベルを付けたプルリクエストをマージしました。
このマージ時点のリリースを作成する画面に移ります。
リリースノートの自動作成 (Generate release notes) を行うと、 .github/release.yml に従って「Exciting New Features 🎉」というタイトルが自動的に設定されることが分かります。

参考: .NET Interactive
dotnet/interactive のリポジトリにある .github/release.yml では、リリースのカテゴリが多く定義されています。
# .github/release.yml
changelog:
exclude:
labels:
- ignore-for-release
- dependencies
- Area-Build & Infrastructure
- External
categories:
- title: Breaking Changes 🧨
labels:
- breaking change
- title: Exciting New Features 🎉
labels:
- enhancement
- new feature
- title: Bug fixes🛠️
labels:
- bug
- title: Accessibility
labels:
- Area-Accessibility
- title: Automation
labels:
- Area-Automation
- title: Auth
labels:
- Area-Auth
- title: API
labels:
- Area-API
- title: C#
labels:
- Area-C#
- title: Documentation
labels:
- Area-Documentation
- title: F#
labels:
- Area-F#
- title: Formatting
labels:
- Area-Formatting
- title: HttpKernel, Visual Studio HTTP Editor
labels:
- Area-HTTP
- title: JavaScript HTML CSS
labels:
- Area-JavaScript HTML CSS
- title: Jupyter
labels:
- Area-Jupyter
- title: Jupyter subkernels (Python, R, Julia, etc.)
labels:
- Area-Jupyter subkernels
- title: Language Services
labels:
- Area-Language Services
- title: Localization and Globalization
labels:
- Area-Localization and Globalization
- title: Messaging, Comms, and Scheduling
labels:
- Area-Messaging / scheduling / comms
- title: Packages and Extensions
labels:
- Area-Packages and Extensions
- title: Performance
labels:
- Area-Performance
- title: Polyglot Notebooks Extension
labels:
- Area-Polyglot Notebooks Extension
- title: PowerShell
labels:
- Area-PowerShell
- title: Python
labels:
- Area-Python
- title: SQL, KQL, and data querying
labels:
- Area-SQL / data querying
- title: Magic Commands & Submission Parsing
labels:
- Area-Submission Parsing & Magic Commands
- title: Try .NET
labels:
- Area-Try .NET
- title: Variable sharing
labels:
- Area-Variable sharing
- title: Visualization
labels:
- Area-Visualization
.github/release.yml の表示箇所
リポジトリに .github/release.yml ファイルがある場合に、特別な表示になる箇所はおそらくありません。
まとめ
.github に配置できるファイルの一覧はこちらの記事でまとめています。