议题表单的语法

您可以为您的议题表单定义不同的输入类型、验证、默认受理人和默认标签。

议题表单可用于 GitHub.com 上公共仓库的测试版

注意:议题表单目前处于测试阶段,可能会更改。

关于议题表单的 YAML 语法

您可以通过将 YAML 表单定义文件添加到仓库中的 /.github/ISSUE_TEMPLATE 文件夹来创建自定义议题表单。 如果您是 YAML 的新用户并想要了解更多信息,请参阅“Y 分钟了解 YAML”。 您可以为议题表单定义不同的输入类型、验证、默认受理人和默认标签。

当贡献者填写议题表单时,他们对每个输入的响应都会转换为 Markdown 并添加到议题正文中。 贡献者可以编辑使用议题表单创建的议题,其他人可以与议题(如通过其他方法创建的议题)进行交互。

Issue forms are not supported for pull requests. You can create pull request templates in your repositories for collaborators to use. 更多信息请参阅"为仓库创建拉取请求模板"。

此示例 YAML 配置文件使用多个输入报告漏洞来定义议题表单。

YAML
name: Bug Report
description: File a bug report
title: "[Bug]: "
labels: ["bug", "triage"]
assignees:
  - octocat
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)
    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. 这将自动格式化为代码,因此无需背板。
      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

顶级语法

所有议题表单配置文件必须以 namedescriptionbody 键值对开头。

YAML
name:
description:
body:

您可以为每个议题表单设置以下顶级键。

描述必选类型
name议题表单模板的名称。 必须与所有其他模板不同,包括 Markdown 模板。必选字符串
说明议题表单模板的描述,出现在模板选择器界面中。必选字符串
正文表单中输入类型的定义。必选数组
assignees将自动分配给使用此模板创建的议题的人员。可选阵列或逗号分界的字符串
labels将自动添加到此模板创建的议题的标签。可选字符串
title在议题提交表单中预填的默认标题。可选字符串

有关可用的 body 输入类型及其语法,请参阅“GitHub 表单架构的语法”。

将 Markdown 议题模板转换为 YAML 议题表单模板

您可以在仓库中同时使用 Markdown 和 YAML议题模板。 如果您想将 Markdown 议题模板转换为 YAML 议题表模板, 您必须创建一个新的 YAML 文件来定义议题表单。 您可以手动将现有的 Markdown 议题模板转换为 YAML 议题表单。 更多信息请参阅“为仓库配置议题模板”。

如果您想要对 YAML 议题表单使用相同的文件名称,则在将新文件提交到仓库时,您必须删除 Markdown 议题模板。

下面是 Markdown 议题模板和相应的 YAML 议题表单模板示例。

Markdown 议题模板

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...
2. With this config...
3. Run '...'
4. 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 议题表单模板

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...
      2. With this config...
      3. Run '...'
      4. 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

延伸阅读

此文档对您有帮助吗?

隐私政策

帮助我们创建出色的文档!

所有 GitHub 文档都是开源的。看到错误或不清楚的内容了吗?提交拉取请求。

做出贡献

或, 了解如何参与。