# 自动生成的发行说明

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

## 关于自动生成的发行说明

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

您还可以自定义自动生成的发行说明，通过标签创建自定义类别来整理要包含的拉取请求，并排除某些标签和用户使其不出现在输出中。

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

1. 在 GitHub 上，导航到存储库的主页面。1. 在文件列表右侧，单击“发布”。

   ![存储库的主页的屏幕截图。 标记为“版本”的链接以橙色边框突出显示。](/assets/images/help/releases/release-link.png)1. 在页面顶部，单击“起草新版本”。
2. 若要为该版本选择标记，请选择“选择标记”下拉菜单。
   * 若要使用现有标记，请单击该标记。
   * 若要创建新标记，请键入该版本的版本号，然后单击“创建新标记”。
3. 如果已创建新标记，请选择“目标”下拉菜单，然后单击包含要发布的项目的分支。1. （可选）在说明字段上方，选择“上一个标记”下拉菜单，然后单击标识上一版本的标记。

   ![“新版本”窗体的屏幕截图。 标有“上一个标记: 自动”的下拉菜单以橙色边框突出显示。](/assets/images/help/releases/releases-tag-previous-release.png)1. 在“发布标题”字段中，键入发布的标题。
4. 在说明字段上方，单击“**生成发行说明**”。
5. 检查生成的注释，确保它们包含所有（且仅有）您要包含的信息。
6. （可选）要在发行版中包含二进制文件（例如已编译的程序），请在二进制文件框中拖放或手动选择文件。
7. （可选）若要通知用户发行版尚未准备投入生产，并且可能不稳定，请选择“这是预发行版”。
8. （可选）选择“设置为最新版本”。 如果未选择此选项，系统会根据语义版本控制自动分配最新版本标签。
9. （可选）如果为存储库启用了 GitHub Discussions，请为发行版创建讨论。
   * 选择**为此发行版创建讨论**。
   * 选择“类别”下拉菜单，然后单击某个类型进行发行版讨论。\*\*\*\*
10. 如果已准备好公开发行版，请单击“发布发行版”。 若要稍后处理版本，请单击“ **保存草稿**”。如果为存储库启用了不可变版本，请先创建草稿，以便在发布变为不可变之前附加所有资产。
    然后可以在存储库的发行版源中查看发布的或草拟的发行版。 有关详细信息，请参阅“[查看仓库的发行版和标记](/zh/repositories/releasing-projects-on-github/viewing-your-repositorys-releases-and-tags)”。

## 配置自动生成的发行说明

1. 在 GitHub 上，导航到存储库的主页面。1. 在文件列表上方，选择“Add file”<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-triangle-down" aria-label="The downwards-facing triangle icon" role="img"><path d="m4.427 7.427 3.396 3.396a.25.25 0 0 0 .354 0l3.396-3.396A.25.25 0 0 0 11.396 7H4.604a.25.25 0 0 0-.177.427Z"></path></svg> 下拉菜单，然后单击“<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="plus" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg> Create new file”\*\*\*\*\*\*\*\*。

   也可在左侧的文件树状视图中单击 <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-plus" aria-label="The plus sign icon" role="img"><path d="M7.75 2a.75.75 0 0 1 .75.75V7h4.25a.75.75 0 0 1 0 1.5H8.5v4.25a.75.75 0 0 1-1.5 0V8.5H2.75a.75.75 0 0 1 0-1.5H7V2.75A.75.75 0 0 1 7.75 2Z"></path></svg>。

   ![仓库主页的屏幕截图，其中突出显示了“添加文件”和“加号”两个图标（如上所述以橙色框出）。](/assets/images/help/repository/add-file-buttons.png)
2. 在“文件名”字段中，键入 `.github/release.yml`。 这会在 `release.yml` 目录中创建名为 `.github` 的新文件。
3. 在文件中，使用下面的配置选项，在 YAML 中指定要从此版本中排除的拉取请求标签和作者。 您还可以创建新类别并列出要包含在每个类别中的拉取请求标签。

### 配置选项

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

### 示例配置

标记 SemVer 版本的存储库配置

```yaml copy
# .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 copy
# .github/release.yml

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

## 其他阅读材料

* [管理标签](/zh/issues/using-labels-and-milestones-to-track-work/managing-labels)