跳至主要内容

为您的仓库配置问题模板

您可以自定义贡献者在您的仓库中打开新问题时可用的模板。

您可以为您的组织或个人帐户创建默认问题模板和问题模板的默认配置文件。有关更多信息,请参阅“创建默认社区健康文件”。

创建问题模板

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

  2. 在您的仓库名称下,单击 设置。如果您看不到“设置”选项卡,请选择下拉菜单,然后单击设置

    Screenshot of a repository header showing the tabs. The "Settings" tab is highlighted by a dark orange outline.

  3. 在“功能”部分,在问题下,单击设置模板。您可能需要启用问题并刷新页面才能看到该按钮。

Screenshot of the "Features" section of a repository's settings, with the "Issues" setting ticked and the green "Set up templates" button visible.

  1. 使用添加模板下拉菜单,然后单击您要创建的模板类型。

    Screenshot of the "Add template" dropdown menu expanded to show the standard "Bug report" and "Feature request" templates. In addition, the "Custom template" is listed.

  2. 要预览或编辑模板,然后将其提交到仓库,请在模板旁边单击预览和编辑

  3. 要编辑模板,请单击 ,然后在字段中键入内容以编辑其内容。

    Screenshot of the preview of an issue template. To the right of the template name, a pencil icon is outlined in dark orange.

  4. 要自动设置默认问题标题,将问题分配给具有仓库读取权限的人员,或将标签应用于从模板中提出的问题,请使用“可选附加信息”下的字段。您也可以在问题模板中使用 YAML 前端格式中的titlelabelsassignees添加这些详细信息。

  5. 完成编辑和预览模板后,单击页面右上角的提出更改

  6. 在“提交消息”字段中,键入描述更改的提交消息。

  7. 在提交消息字段下方,选择是将模板直接提交到默认分支,还是创建新分支并打开拉取请求。有关拉取请求的更多信息,请参阅“关于拉取请求”。

  8. 单击提交更改。这些更改合并到默认分支后,模板将可供贡献者在仓库中打开新问题时使用。

创建问题表单

注意:问题表单目前处于测试阶段,可能会发生变化。

使用问题表单,您可以创建具有可自定义 Web 表单字段的问题模板。您可以通过在您的仓库中使用问题表单来鼓励贡献者提供特定的结构化信息。问题表单使用 YAML 语言编写,并使用 GitHub 表单模式。有关更多信息,请参阅“GitHub 表单模式语法”。如果您是 YAML 新手,想要了解更多信息,请参阅“在 Y 分钟内学习 YAML”。

要在您的仓库中使用问题表单,您必须创建一个新文件并将其添加到仓库中的 .github/ISSUE_TEMPLATE 文件夹中。

以下是一个问题表单配置文件的示例。

YAML
name: Bug Report
description: File a bug report.
title: "[Bug]: "
labels: ["bug", "triage"]
projects: ["octo-org/1", "octo-org/44"]
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 protected]
    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

以下是问题表单的渲染版本。

Screenshot of a rendered issue form, with a mix of text fields and dropdown menus.

  1. 选择您要创建问题表单的仓库。您可以使用您拥有写入权限的现有仓库,也可以创建一个新仓库。有关创建仓库的更多信息,请参阅“创建新仓库”。
  2. 在您的仓库中,创建一个名为 .github/ISSUE_TEMPLATE/FORM-NAME.yml 的文件,将 FORM-NAME 替换为您问题表单的名称。有关在 GitHub 上创建新文件的更多信息,请参阅“创建新文件”。
  3. 在新文件的正文中,键入您的问题表单的内容。有关更多信息,请参阅“问题表单语法”。
  4. 将您的文件提交到仓库的默认分支。有关更多信息,请参阅“创建新文件”。

配置模板选择器

您可以通过将 config.yml 文件添加到 .github/ISSUE_TEMPLATE 文件夹中,自定义人们在您的仓库中创建新问题时看到的模板选择器。

您可以通过将 blank_issues_enabled 设置为 false 来鼓励贡献者使用问题模板。如果您将 blank_issues_enabled 设置为 true,人们可以选择打开一个空白问题。

注意:如果您使用旧版工作流程在 .github 文件夹中手动创建 issue_template.md 文件并在您的 config.yml 文件中启用空白问题,则当人们选择打开空白问题时,将使用 issue_template.md 中的模板。如果您禁用空白问题,则该模板将永远不会使用。

如果您希望在 GitHub 之外接收某些报告,可以使用 contact_links 将人们引导到外部网站。

以下是一个示例 config.yml 文件。

YAML
blank_issues_enabled: false
contact_links:
  - name: GitHub Community Support
    url: https://github.com/orgs/community/discussions
    about: Please ask and answer questions here.
  - name: GitHub Security Bug Bounty
    url: https://bounty.github.com/
    about: Please report security vulnerabilities here.

当文件合并到存储库的默认分支时,您的配置文件将自定义模板选择器。

  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/ISSUE_TEMPLATE/config.yml

  4. 在新文件的正文中,键入您的配置文件的内容。

  5. 单击提交更改...

  6. 在“提交消息”字段中,键入一个简短且有意义的提交消息,描述您对文件所做的更改。您可以在提交消息中将提交归因于多个作者。有关更多信息,请参阅“创建具有多个作者的提交”。

  7. 在提交消息字段下方,决定是将您的提交添加到当前分支还是添加到新分支。如果您的当前分支是默认分支,您应该选择为您的提交创建一个新分支,然后创建一个拉取请求。有关更多信息,请参阅“创建拉取请求”。

    Screenshot of a GitHub pull request showing a radio button to commit directly to the main branch or to create a new branch. New branch is selected.

  8. 单击提交更改提出更改

更改模板的顺序

您可以通过更改模板文件名来设置问题模板在模板选择器中出现的顺序。.github/ISSUE_TEMPLATE 中的模板按字母数字顺序排列,并按文件类型分组,YAML 文件出现在 Markdown 文件之前。

为了控制模板的顺序,请在文件名开头添加数字。例如:1-bug.yml2-feature-request.yml3-epic.yml

如果您有 10 个或更多模板,字母数字排序意味着 11-bug.yml 将位于 1-feature.yml2-support.yml 之间。您可以通过在数字文件名开头添加一个额外的 0 来保持您想要的顺序。例如:01-feature.yml02-support.yml11-bug.yml

进一步阅读