跳至主要内容

自动生成的发行说明

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

谁可以使用此功能?

仓库协作者以及拥有仓库写权限的用户可以为发行生成并自定义自动化发行说明。

关于自动生成的发行说明

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

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

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

  1. 在 GitHub 上,导航至仓库的主页面。

  2. 在文件列表的右侧,点击 Releases

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

  3. 在页面顶部,点击 Draft a new release

  4. 要为发行选择标签,请选择 Choose a tag 下拉菜单。

    • 要使用已有标签,点击该标签。
    • 要创建新标签,输入发行的版本号,然后点击 Create new tag
  5. 如果您创建了新标签,请选择 Target 下拉菜单,然后点击包含您想要发行项目的分支。

  6. 可选地,在描述字段上方,选择 Previous tag 下拉菜单,然后点击标识上一次发行的标签。

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

  7. 在 “Release title” 字段中,输入发行的标题。

  8. 在描述字段上方,点击 Generate release notes

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

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

  11. 可选地,要通知用户此发行尚未准备好用于生产,可能不稳定,请选择 This is a pre-release

  12. 可选地,选择 Set as latest release。如果您不选择此项,最新发行标签将根据语义化版本号自动分配。

  13. 可选地,如果仓库已启用 GitHub Discussions,请为此次发行创建讨论。

    • 选择 Create a discussion for this release
    • 选择 Category 下拉菜单,然后点击发布讨论的类别。
  14. 如果您准备好发布发行,请点击 Publish release。若想稍后继续处理发行,请点击 Save draft。如果您已为仓库启用了不可变发行,先创建草稿可让您在发行变为不可变之前附加所有资产。随后,您可以在仓库的发行列表中查看已发布或草稿状态的发行。更多信息,请参阅 Viewing your repository's releases and tags

配置自动生成的发行说明

  1. 在 GitHub 上,导航至仓库的主页面。

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

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

    Screenshot of the main page of a repository highlighting both the "Add file" and the "plus sign" icon, described above, with an orange outline.

  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

延伸阅读

© . This site is unofficial and not affiliated with GitHub, Inc.