5.4 KiB
title, intro, permissions, versions, topics, shortTitle, communityRedirect
| title | intro | permissions | versions | topics | shortTitle | communityRedirect | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Automatically generated release notes | You can automatically generate release notes for your GitHub releases | Repository collaborators and people with write access to a repository can generate and customize automated release notes for a release. |
|
|
Automated release notes |
|
About automatically generated release notes
Automatically generated release notes provide an automated alternative to manually writing release notes for your {% data variables.product.prodname_dotcom %} releases. With automatically generated release notes, you can quickly generate an overview of the contents of a release. You can also customize your automated release notes, using labels to create custom categories to organize pull requests you want to include, and exclude certain labels and users from appearing in the output.
Creating automatically generated release notes for a new release
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.repositories.releases %}
3. Click Draft a new release.
4. {% ifversion fpt or ghec %}Click Choose a tag and type{% else %}Type{% endif %} a version number for your release. Alternatively, select an existing tag.
{% ifversion fpt or ghec %}
5. If you are creating a new tag, click Create new tag.
{% else %}
{% endif %}
6. If you have created a new tag, use the drop-down menu to select the branch that contains the project you want to release.
{% ifversion fpt or ghec %}
{% else %}
{% endif %}
7. To the top right of the description text box, click Auto-generate release notes.
8. Check the generated notes to ensure they include all (and only) the information you want to include.
9. Optionally, to include binary files such as compiled programs in your release, drag and drop or manually select files in the binaries box.
10. To notify users that the release is not ready for production and may be unstable, select This is a pre-release.
{%- ifversion fpt or ghec %}
11. Optionally, select Create a discussion for this release, then select the Category drop-down menu and click a category for the release discussion.
{%- endif %}
12. If you're ready to publicize your release, click Publish release. To work on the release later, click Save draft.

Configuring automatically generated release notes
{% data reusables.repositories.navigate-to-repo %}
{% data reusables.files.add-file %}
3. In the file name field, type .github/release.yml to create the release.yml file in the .github directory.
4. In the file, using the configuration options below, specify in YAML the pull request labels and authors you want to exclude from this release. You can also create new categories and list the pull request labels to be included in each of them.
Configuration options
| Parameter | Description |
|---|---|
changelog.exclude.labels |
A list of labels that exclude a pull request from appearing in release notes. |
changelog.exclude.authors |
A list of user or bot login handles whose pull requests are to be excluded from release notes. |
changelog.categories[*].title |
Required. The title of a category of changes in release notes. |
changelog.categories[*].labels |
Required. Labels that qualify a pull request for this category. Use * as a catch-all for pull requests that didn't match any of the previous categories. |
changelog.categories[*].exclude.labels |
A list of labels that exclude a pull request from appearing in this category. |
changelog.categories[*].exclude.authors |
A list of user or bot login handles whose pull requests are to be excluded from this category. |
Example configuration
{% raw %}
# .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:
- "*"
{% endraw %}