注意
问题表单目前处于公开预览阶段,可能会有更改。
关于问题表单的 YAML 语法
您可以通过在仓库的 /.github/ISSUE_TEMPLATE 文件夹中添加 YAML 表单定义文件来创建自定义问题表单。如果您是 YAML 新手想了解更多,请参阅 在 Y 分钟内学会 YAML。您可以为问题表单定义不同的输入类型、验证、默认指派人和默认标签。
当贡献者填写问题表单时,他们对每个输入的回复会被转换为 Markdown 并添加到问题的正文中。贡献者可以编辑使用问题表单创建的 issue,其他人也可以像处理通过其他方式创建的 issue 一样与其交互。
问题表单不支持 Pull Request。您可以在仓库中创建 Pull Request 模板供协作者使用。更多信息请参阅 为您的仓库创建 Pull Request 模板。
此示例 YAML 配置文件使用多个输入定义了一个用于报告错误的问题表单。
name: Bug Report
description: File a bug report.
title: "[Bug]: "
labels: ["bug", "triage"]
projects: ["octo-org/1", "octo-org/44"]
assignees:
- octocat
type: bug
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: input
id: contact
attributes:
label: Contact Details
description: How can we get in touch with you if we need more info?
placeholder: ex. email@example.com
validations:
required: false
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Also tell us, what did you expect to happen?
placeholder: Tell us what you see!
value: "A bug happened!"
validations:
required: true
- type: dropdown
id: version
attributes:
label: Version
description: What version of our software are you running?
options:
- 1.0.2 (Default)
- 1.0.3 (Edge)
default: 0
validations:
required: true
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- Safari
- Microsoft Edge
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com).
options:
- label: I agree to follow this project's Code of Conduct
required: true
- type: upload
id: screenshots
attributes:
label: Upload screenshots
description: If applicable, add screenshots to help explain your problem.
validations:
required: false
name: Bug Report
description: File a bug report.
title: "[Bug]: "
labels: ["bug", "triage"]
projects: ["octo-org/1", "octo-org/44"]
assignees:
- octocat
type: bug
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to fill out this bug report!
- type: input
id: contact
attributes:
label: Contact Details
description: How can we get in touch with you if we need more info?
placeholder: ex. email@example.com
validations:
required: false
- type: textarea
id: what-happened
attributes:
label: What happened?
description: Also tell us, what did you expect to happen?
placeholder: Tell us what you see!
value: "A bug happened!"
validations:
required: true
- type: dropdown
id: version
attributes:
label: Version
description: What version of our software are you running?
options:
- 1.0.2 (Default)
- 1.0.3 (Edge)
default: 0
validations:
required: true
- type: dropdown
id: browsers
attributes:
label: What browsers are you seeing the problem on?
multiple: true
options:
- Firefox
- Chrome
- Safari
- Microsoft Edge
- type: textarea
id: logs
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
- type: checkboxes
id: terms
attributes:
label: Code of Conduct
description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com).
options:
- label: I agree to follow this project's Code of Conduct
required: true
- type: upload
id: screenshots
attributes:
label: Upload screenshots
description: If applicable, add screenshots to help explain your problem.
validations:
required: false
顶层语法
所有问题表单配置文件必须以 name、description 和 body 键值对开头。
name: description: body:
name:
description:
body:
您可以为每个问题表单设置以下顶层键。
| 键 | 描述 | 是否必填 | 类型 |
|---|---|---|---|
name | 问题表单模板的名称。必须与所有其他模板(包括 Markdown 模板)保持唯一。 | 是否必填 | 字符串 |
description | 问题表单模板的描述,显示在模板选择界面中。 | 是否必填 | 字符串 |
body | 表单中输入类型的定义。 | 是否必填 | 数组 |
指派人 | 将自动指派给使用此模板创建的 issue 的人员。 | 可选 | 数组或逗号分隔的字符串 |
labels | 会自动添加到使用此模板创建的 issue 的标签。如果标签在仓库中不存在,则不会自动添加到 issue 中。 | 可选 | 数组或逗号分隔的字符串 |
title | 将在 issue 提交表单中预填的默认标题。 | 可选 | 字符串 |
type | 会自动添加到使用此模板创建的 issue 的问题类型。问题类型在组织层面定义,可用于在多个仓库之间创建统一的语法。 | 可选 | 字符串 |
项目 | 使用此模板创建的任何 issue 将自动添加到的项目。此键的格式为 PROJECT-OWNER/PROJECT-NUMBER。> [!NOTE] 创建 issue 的人必须对指定项目拥有写入权限。如果您不期望使用此模板的人拥有写入权限,请考虑启用项目的自动添加工作流。更多信息请参阅 自动添加项目项。 | 可选 | 数组或逗号分隔的字符串 |
有关可用的 body 输入类型及其语法,请参阅 GitHub 表单模式语法。
将 Markdown 问题模板转换为 YAML 问题表单模板
您可以在仓库中同时使用 Markdown 和 YAML 问题模板。如果想将 Markdown 问题模板转换为 YAML 问题表单模板,必须创建一个新的 YAML 文件来定义该表单。您可以手动将现有的 Markdown 问题模板转写为 YAML 问题表单。更多信息请参阅 为您的仓库配置问题模板。
如果您想为 YAML 问题表单使用相同的文件名,则在将新文件提交到仓库时必须删除 Markdown 问题模板。
下面是 Markdown 问题模板及其对应的 YAML 问题表单模板示例。
Markdown 问题模板
--- name: 🐞 Bug about: File a bug/issue title: '[BUG] <title>' labels: Bug, Needs Triage assignees: '' --- <!-- Note: Please search to see if an issue already exists for the bug you encountered. --> ### Current Behavior: <!-- A concise description of what you're experiencing. --> ### Expected Behavior: <!-- A concise description of what you expected to happen. --> ### Steps To Reproduce: <!-- Example: steps to reproduce the behavior: 1. In this environment... 1. With this config... 1. Run '...' 1. See error... --> ### Environment: <!-- Example: - OS: Ubuntu 20.04 - Node: 13.14.0 - npm: 7.6.3 --> ### Anything else: <!-- Links? References? Anything that will give us more context about the issue that you are encountering! -->
---
name: 🐞 Bug
about: File a bug/issue
title: '[BUG] <title>'
labels: Bug, Needs Triage
assignees: ''
---
<!--
Note: Please search to see if an issue already exists for the bug you encountered.
-->
### Current Behavior:
<!-- A concise description of what you're experiencing. -->
### Expected Behavior:
<!-- A concise description of what you expected to happen. -->
### Steps To Reproduce:
<!--
Example: steps to reproduce the behavior:
1. In this environment...
1. With this config...
1. Run '...'
1. See error...
-->
### Environment:
<!--
Example:
- OS: Ubuntu 20.04
- Node: 13.14.0
- npm: 7.6.3
-->
### Anything else:
<!--
Links? References? Anything that will give us more context about the issue that you are encountering!
-->
YAML 问题表单模板
name: 🐞 Bug
description: File a bug/issue
title: "[BUG] <title>"
labels: ["Bug", "Needs Triage"]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: A concise description of what you're experiencing.
validations:
required: false
- type: textarea
attributes:
label: Expected Behavior
description: A concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
1. With this config...
1. Run '...'
1. See error...
validations:
required: false
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **Node**: 13.14.0
- **npm**: 7.6.3
value: |
- OS:
- Node:
- npm:
render: markdown
validations:
required: false
- type: textarea
attributes:
label: Anything else?
description: |
Links? References? Anything that will give us more context about the issue you are encountering!
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
validations:
required: false
name: 🐞 Bug
description: File a bug/issue
title: "[BUG] <title>"
labels: ["Bug", "Needs Triage"]
body:
- type: checkboxes
attributes:
label: Is there an existing issue for this?
description: Please search to see if an issue already exists for the bug you encountered.
options:
- label: I have searched the existing issues
required: true
- type: textarea
attributes:
label: Current Behavior
description: A concise description of what you're experiencing.
validations:
required: false
- type: textarea
attributes:
label: Expected Behavior
description: A concise description of what you expected to happen.
validations:
required: false
- type: textarea
attributes:
label: Steps To Reproduce
description: Steps to reproduce the behavior.
placeholder: |
1. In this environment...
1. With this config...
1. Run '...'
1. See error...
validations:
required: false
- type: textarea
attributes:
label: Environment
description: |
examples:
- **OS**: Ubuntu 20.04
- **Node**: 13.14.0
- **npm**: 7.6.3
value: |
- OS:
- Node:
- npm:
render: markdown
validations:
required: false
- type: textarea
attributes:
label: Anything else?
description: |
Links? References? Anything that will give us more context about the issue you are encountering!
Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
validations:
required: false