关于自动生成的发行说明
自动生成的发行说明为 GitHub 发行版手动编写发行说明提供了一种自动替代方法。 使用自动生成的发行说明,您可以快速生成发行版内容的概览。 自动生成的发行说明包括合并的拉取请求列表、发布参与者列表和完整更改日志的链接。
您还可以自定义自动发行说明,使用标签创建自定义类别来组织要包含的拉取请求,并排除某些标签和用户不出现在输出中。
为新版本创建自动生成的发行说明
-
在 GitHub 上,导航到存储库的主页面。
-
在文件列表右侧,单击“发布”。
-
在页面顶部,单击“起草新版本”。
-
若要为该版本选择标记,请选择“选择标记”下拉菜单。
- 若要使用现有标记,请单击该标记。
- 若要创建新标记,请键入该版本的版本号,然后单击“创建新标记”。
-
如果已创建新标记,请选择“目标”下拉菜单,然后单击包含要发布的项目的分支。
-
(可选)在说明字段上方,选择“上一个标记”下拉菜单,然后单击标识上一版本的标记。
-
在“发布标题”字段中,键入发布的标题。
-
在说明字段上方,单击“生成发行说明”。
-
检查生成的注释,确保它们包含所有(且仅有)您要包含的信息。
-
(可选)要在发行版中包含二进制文件(例如已编译的程序),请在二进制文件框中拖放或手动选择文件。
-
(可选)若要通知用户发行版尚未准备投入生产,并且可能不稳定,请选择“这是预发行版”。
-
(可选)选择“设置为最新版本”。 如果未选择此选项,系统会根据语义版本控制自动分配最新版本标签。
-
(可选)如果为存储库启用了 GitHub Discussions,请为发行版创建讨论。
- 选择“为此发行版创建讨论”。
- 选择“类别”下拉菜单,然后单击某个类型进行发行版讨论。
-
如果已准备好公开发行版,请单击“发布发行版”。 若要稍后处理发行版,请单击“保存草稿”。
配置自动生成的发行说明
-
在 GitHub 上,导航到存储库的主页面。
-
在文件列表上方,使用“添加文件”下拉列表,在其中单击“创建新文件” 。
-
在“文件名”字段中,键入
.github/release.yml
。 这会在.github
目录中创建名为release.yml
的新文件。 -
在文件中,使用下面的配置选项,在 YAML 中指定要从此版本中排除的拉取请求标签和作者。 您还可以创建新类别并列出要包含在每个类别中的拉取请求标签。
配置选项
参数 | 说明 |
---|---|
changelog.exclude.labels | 不在发行说明中显示拉取请求的标签列表。 |
changelog.exclude.authors | 要从发行说明中排除其拉取请求的用户或自动程序登录句柄的列表。 |
changelog.categories[*].title | 必填。 发行说明中更改类别的标题。 |
changelog.categories[*].labels | 必填。 符合此类别的拉取请求条件的标签。 使用 * 作为与上述任何类别都不匹配的拉取请求的统称。 |
changelog.categories[*].exclude.labels | 不在此类别中显示拉取请求的标签列表。 |
changelog.categories[*].exclude.authors | 要从此类别中排除其拉取请求的用户或自动程序登录句柄的列表。 |
示例配置
标记 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:
- "*"
不标记拉取请求但我们希望在发行说明中分离 Dependabot 自动拉取请求的存储库的配置(labels: '*'
需要显示 catchall 类别)
# .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