跳到主要内容

为您的仓库配置问题模板

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

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

创建问题模板

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

  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 表单字段的问题模板。您可以通过在您的仓库中使用问题表单来鼓励贡献者包含特定、结构化的信息。问题表单使用 GitHub 表单模式以 YAML 编写。有关更多信息,请参阅“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 上,导航到仓库的主页。

  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

进一步阅读