Skip to main content

自动生成的发行说明

您可以为 GitHub 版本自动生成发行说明

谁可以使用此功能?

Repository collaborators and people with write access to a repository can generate and customize automated release notes for a release.

关于自动生成的发行说明

自动生成的发行说明为 GitHub 发行版手动编写发行说明提供了一种自动替代方法。 使用自动生成的发行说明,您可以快速生成发行版内容的概览。 自动生成的发行说明包括合并的拉取请求列表、发布参与者列表和完整更改日志的链接。

您还可以自定义自动发行说明,使用标签创建自定义类别来组织要包含的拉取请求,并排除某些标签和用户不出现在输出中。

为新版本创建自动生成的发行说明

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在文件列表右侧,单击“发布”。

    存储库的主页的屏幕截图。 标记为“版本”的链接以橙色边框突出显示。

  3. 在页面顶部,单击“起草新版本”。

  4. 若要为该版本选择标记,请选择“选择标记”下拉菜单。

    • 若要使用现有标记,请单击该标记。
    • 若要创建新标记,请键入该版本的版本号,然后单击“创建新标记”。
  5. 如果已创建新标记,请选择“目标”下拉菜单,然后单击包含要发布的项目的分支。

  6. (可选)在说明字段上方,选择“上一个标记”下拉菜单,然后单击标识上一版本的标记。

    “新版本”窗体的屏幕截图。 标有“上一个标记: 自动”的下拉菜单以橙色边框突出显示。

  7. 在“发布标题”字段中,键入发布的标题。

  8. 在说明字段上方,单击“生成发行说明”。

  9. 检查生成的注释,确保它们包含所有(且仅有)您要包含的信息。

  10. (可选)要在发行版中包含二进制文件(例如已编译的程序),请在二进制文件框中拖放或手动选择文件。

  11. (可选)若要通知用户发行版尚未准备投入生产,并且可能不稳定,请选择“这是预发行版”。

  12. (可选)选择“设置为最新版本”。 如果未选择此选项,系统会根据语义版本控制自动分配最新版本标签。

  13. (可选)如果为存储库启用了 GitHub Discussions,请为发行版创建讨论。

    • 选择“为此发行版创建讨论”。
    • 选择“类别”下拉菜单,然后单击某个类型进行发行版讨论。
  14. 如果已准备好公开发行版,请单击“发布发行版”。 若要稍后处理发行版,请单击“保存草稿”。

配置自动生成的发行说明

  1. 在 GitHub 上,导航到存储库的主页面。

  2. 在文件列表上方,选择“添加文件” 下拉菜单,然后单击“ 创建新文件” 。

    也可在左侧的文件树状视图中单击

    存储库主页的屏幕截图。 在文件列表上方,标有“添加文件”的按钮以深橙色框出。 在存储库的文件树状视图中,带加号图标的按钮也以深橙色框出。

  3. 在“文件名”字段中,键入 .github/release.yml。 这会在 .github 目录中创建名为 release.yml 的新文件。

  4. 在文件中,使用下面的配置选项,在 YAML 中指定要从此版本中排除的拉取请求标签和作者。 您还可以创建新类别并列出要包含在每个类别中的拉取请求标签。

配置选项

参数说明
changelog.exclude.labels不在发行说明中显示拉取请求的标签列表。
changelog.exclude.authors要从发行说明中排除其拉取请求的用户或自动程序登录句柄的列表。
changelog.categories[*].title必填。 发行说明中更改类别的标题。
changelog.categories[*].labels必填。 符合此类别的拉取请求条件的标签。 使用 * 作为与上述任何类别都不匹配的拉取请求的统称。
changelog.categories[*].exclude.labels不在此类别中显示拉取请求的标签列表。
changelog.categories[*].exclude.authors要从此类别中排除其拉取请求的用户或自动程序登录句柄的列表。

示例配置

标记 SemVer 版本的存储库配置

YAML
# .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 类别)

YAML
# .github/release.yml

changelog:
  categories:
    - title: 🏕 Features
      labels:
        - '*'
      exclude:
        labels:
          - dependencies
    - title: 👒 Dependencies
      labels:
        - dependencies

延伸阅读