跳至主要内容

自动生成的发布说明

您可以为您的 GitHub 发布自动生成发布说明

谁可以使用此功能?

仓库合作者和对仓库具有写入权限的人员可以为发布生成和自定义自动发布说明。

关于自动生成的发布说明

自动生成的发布说明为手动编写 GitHub 发布的发布说明提供了一种自动化的替代方案。使用自动生成的发布说明,您可以快速生成发布内容的概述。自动生成的发布说明包括合并的拉取请求列表、发布贡献者列表以及指向完整变更日志的链接。

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

为新发布创建自动生成的发布说明

  1. 在 GitHub.com 上,导航到仓库的主页。

  2. 在文件列表的右侧,单击**发布**。

    Screenshot of the main page of a repository. A link, labeled "Releases", is highlighted with an orange outline.

  3. 在页面顶部,单击**草拟新发布**。

  4. 要为发布选择标签,请选择 **选择标签** 下拉菜单。

    • 要使用现有标签,请点击标签。
    • 要创建新标签,请为您的发布输入版本号,然后点击 **创建新标签**。
  5. 如果您创建了新标签,请选择 **目标** 下拉菜单,然后点击包含您要发布的项目的分支。

  6. 可选地,在描述字段上方,选择 **先前标签** 下拉菜单,然后点击标识先前发布的标签。

    Screenshot of the "New release" form. A dropdown menu, labeled "Previous tag: auto", is highlighted with an orange outline.

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

  8. 在描述字段上方,点击 **生成发布说明**。

  9. 检查生成的说明以确保它们包含您想要包含的所有(且仅包含)信息。

  10. 可选地,要将二进制文件(例如编译后的程序)包含在您的发布中,请将文件拖放到二进制文件框中或手动选择文件。

  11. 可选地,要通知用户发布尚未准备好投入生产并且可能不稳定,请选择 **这是预发布**。

  12. 可选地,选择 **设置为最新发布**。如果您不选择此选项,最新发布标签将根据语义版本控制自动分配。

  13. 可选地,如果为存储库启用了 GitHub Discussions,请为发布创建讨论。

    • 选择 **为此次发布创建讨论**。
    • 选择 **类别** 下拉菜单,然后点击发布讨论的类别。
  14. 如果您已准备好公开您的发布,请点击 **发布发布**。要稍后处理发布,请点击 **保存草稿**。然后,您可以在存储库的发布提要中查看已发布或草稿发布。有关更多信息,请参阅“查看存储库的发布和标签”。

配置自动生成的发布说明

  1. 在 GitHub.com 上,导航到仓库的主页。

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

    或者,您可以点击 左侧文件树视图中的。

    Screenshot of the main page of a repository. Above the list of files, a button, labeled "Add file," is outlined in dark orange. In the file tree view of the repository, a button with a plus sign icon is also outlined in dark orange.

  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一个用户或机器人登录句柄列表,其拉取请求将从此类别中排除。

示例配置

为标记语义版本发布的存储库配置

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: '*' 是必需的,以显示一个通配符类别)

YAML
# .github/release.yml

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

进一步阅读