跳至主要内容

创建 Issue

可以通过多种方式创建 Issue,因此您可以选择最适合您工作流程的方法。

谁可以使用此功能?

具有读取权限的用户可以在启用了 Issues 的存储库中创建 Issue。

Issues 可用于跟踪错误、增强功能或其他请求。有关更多信息,请参阅“关于 Issues”。

存储库管理员可以禁用存储库的 Issues。有关更多信息,请参阅“禁用 Issues”。

从存储库创建 Issue

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

  2. 在您的存储库名称下,单击 Issues.

    Screenshot of the main page of a repository. In the horizontal navigation bar, a tab, labeled "Issues," is outlined in dark orange.

  3. 单击“**新建 Issue**”。

  4. 如果您的存储库使用 Issue 模板,请在您想要打开的 Issue 类型旁边,单击“**开始**”。

    如果可用的选项中不包含您想要打开的 Issue 类型,请单击“**打开空白 Issue**”。

    Screenshot of the template chooser for an issue. Below the template choices, a link, labeled "Open a blank issue," is outlined in dark orange.

  5. 在“标题”字段中,键入 Issue 的标题。

  6. 在评论正文字段中,键入 Issue 的描述。

  7. 如果您是项目维护者,则可以将 Issue 分配给某人将其添加到项目将其与里程碑关联设置 Issue 类型应用标签

  8. 完成后,单击“**提交新的 Issue**”。

使用 GitHub CLI 创建 Issue

GitHub CLI 是一款用于从计算机命令行使用 GitHub 的开源工具。当您在命令行工作时,可以使用 GitHub CLI 节省时间并避免切换上下文。要了解有关 GitHub CLI 的更多信息,请参阅“关于 GitHub CLI”。

要创建问题,请使用 gh issue create 子命令。要跳过交互式提示,请包含 --body--title 标志。

gh issue create --title "My new issue" --body "Here are more details."

您还可以指定分配者、标签、里程碑和项目。

gh issue create --title "My new issue" --body "Here are more details." --assignee @me,monalisa --label "bug,help wanted" --project onboarding --milestone "learning codebase"

从评论中创建问题

您可以在问题或拉取请求中的评论中打开一个新问题。当您从评论中打开问题时,问题中会包含一个代码段,显示评论最初发布的位置。

  1. 导航到您要从中打开问题的评论。

  2. 在该评论中,点击.

    Screenshot of a comment on a pull request. The kebab button is outlined in dark orange.

  3. 点击在新问题中引用

  4. 使用“存储库”下拉菜单,然后选择要在其中打开问题的存储库。

  5. 为问题键入描述性标题和正文。

  6. 点击创建问题

  7. 如果您是项目维护者,则可以将 Issue 分配给某人将其添加到项目将其与里程碑关联设置 Issue 类型应用标签

  8. 完成后,单击“**提交新的 Issue**”。

从代码中创建问题

您可以从文件或拉取请求中特定行或代码行打开一个新问题。当您从代码中打开问题时,问题中会包含一个代码段,显示您选择的代码行或代码范围。您只能在存储代码的同一存储库中打开问题。

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

  2. 找到您要在问题中引用的代码

    • 要打开有关文件中的代码的问题,请导航到该文件。
    • 要打开有关拉取请求中代码的问题,请导航到拉取请求并点击 已更改的文件。然后,浏览到包含要包含在评论中的代码的文件,并点击查看
  3. 选择是选择单行还是一个范围。

    • 要选择单行代码,请点击行号以突出显示该行。
    • 要选择一个代码范围,请点击范围中第一行的编号以突出显示该行代码。然后,将鼠标悬停在代码范围的最后一行上,按 Shift,然后点击行号以突出显示该范围。
  4. 在代码范围左侧,点击。在下拉菜单中,点击在新问题中引用

    Screenshot of a file, with 8 lines selected. To the left of the first selected line, a button labeled with a kebab icon is outlined in dark orange.

  5. 在“标题”字段中,键入 Issue 的标题。

  6. 在评论正文字段中,键入 Issue 的描述。

  7. 如果您是项目维护者,则可以将 Issue 分配给某人将其添加到项目将其与里程碑关联设置 Issue 类型应用标签

  8. 完成后,单击“**提交新的 Issue**”。

从讨论中创建问题

具有存储库分类权限的人员可以从讨论中创建问题。

当您从讨论中创建问题时,讨论帖子的内容将自动包含在问题正文中,并且任何标签都将保留。从讨论中创建问题不会将讨论转换为问题或删除现有讨论。有关 GitHub 讨论的更多信息,请参阅“关于讨论”。

  1. 在您的存储库或组织名称下,点击 讨论.

    Screenshot of the tabs in a GitHub repository. The "Discussions" option is outlined in dark orange.

  2. 在讨论列表中,点击您要查看的讨论。

  3. 在右侧边栏中,点击 从讨论创建问题.

    Screenshot of the sidebar in a discussion. The "Create issue from discussion" option is outlined in dark orange.

  4. 在“标题”字段中,键入 Issue 的标题。

  5. 在评论正文字段中,键入 Issue 的描述。

  6. 如果您是项目维护者,则可以将 Issue 分配给某人将其添加到项目将其与里程碑关联设置 Issue 类型应用标签

  7. 完成后,单击“**提交新的 Issue**”。

从项目中创建问题

您可以快速创建问题,而无需离开您的项目。当使用按字段分组的视图时,在该组中创建问题会自动将新问题的字段设置为该组的值。例如,如果您按“状态”对视图进行分组,当您在“待办事项”组中创建问题时,新问题的“状态”将自动设置为“待办事项”。有关项目的更多信息,请参阅“关于项目”。

  1. 导航到您的项目。

  2. 在表格底部、项目组或看板布局中的列中,点击.

    Screenshot showing the bottom row of a table view. The "+" button is highlighted with an orange outline.

  3. 点击创建新问题

  4. 在“创建新问题”对话框的顶部,选择要创建新问题的存储库。

    Screenshot showing the "Create new issue" dialog.

  5. 在存储库下拉菜单下方,键入新问题的标题。

  6. 可选地,使用标题字段下方的字段设置分配者、标签和里程碑,并将新问题添加到其他项目。

  7. 可选地,键入问题的描述。

  8. 可选地,如果您想创建更多问题,请选择创建更多,并在创建问题时重新打开对话框。

  9. 点击创建

从任务列表项创建问题

在问题中,您可以使用任务列表将工作分解成较小的任务,并跟踪所有工作的完成情况。如果任务需要进一步跟踪或讨论,您可以通过将鼠标悬停在任务上并点击在任务的右上角。有关更多信息,请参阅“关于任务列表”。

从 URL 查询创建问题

您可以使用查询参数打开问题。查询参数是 URL 的可选部分,您可以自定义这些参数以共享特定的网页视图,例如搜索筛选器结果或 GitHub 上的问题模板。要创建您自己的查询参数,您必须匹配键值对。

提示

您还可以创建使用默认标签、分配者和问题标题打开的问题模板。有关更多信息,请参阅“使用模板鼓励有用的问题和拉取请求”。

您必须具有执行任何操作的适当权限才能使用等效的查询参数。例如,您必须具有向问题添加标签的权限才能使用 labels 查询参数。有关更多信息,请参阅“组织的存储库角色”。

如果您使用查询参数创建无效的 URL,或者如果您没有适当的权限,则该 URL 将返回 404 未找到 错误页面。如果您创建的 URL 超过服务器限制,则该 URL 将返回 414 URI 太长 错误页面。

查询参数示例
标题https://github.com/octo-org/octo-repo/issues/new?labels=bug&title=New+bug+report 创建一个带有“bug”标签和“新错误报告”标题的问题。
正文https://github.com/octo-org/octo-repo/issues/new?title=New+bug+report&body=Describe+the+problem. 创建一个标题为“新错误报告”并在问题正文中包含“描述问题”的评论的问题。
标签https://github.com/octo-org/octo-repo/issues/new?labels=help+wanted,bug 创建一个带有“需要帮助”和“bug”标签的问题。
里程碑https://github.com/octo-org/octo-repo/issues/new?milestone=testing+milestones 创建一个带有“测试里程碑”里程碑的问题。
分配者https://github.com/octo-org/octo-repo/issues/new?assignees=octocat 创建一个问题并将其分配给 @octocat。
项目https://github.com/octo-org/octo-repo/issues/new?title=Bug+fix&projects=octo-org/1 创建一个标题为“错误修复”的问题并将其添加到组织的项目 1。
模板https://github.com/octo-org/octo-repo/issues/new?template=issue_template.md 在问题正文中使用模板创建一个问题。template 查询参数与存储在存储库根目录、docs/.github/ 目录中的 ISSUE_TEMPLATE 子目录中的模板一起使用。有关更多信息,请参阅“使用模板鼓励有用的问题和拉取请求”。

您还可以使用 URL 查询参数填充在问题表单模板中定义的自定义文本字段。问题表单字段的查询参数也可以传递给问题模板选择器。有关更多信息,请参阅“GitHub 表单架构的语法”。

从代码扫描警报创建问题

注意

在问题中跟踪代码扫描警报处于公开预览阶段,可能会发生更改。

此功能支持使用 GitHub Actions 或使用现有 CI/CD 基础设施以及第三方代码扫描工具本地运行分析,但不支持第三方跟踪工具。

如果您使用问题来跟踪和优先处理您的工作,则可以使用问题来跟踪代码扫描警报。有关创建问题以跟踪代码扫描警报的更多信息,请参阅“使用任务列表在问题中跟踪代码扫描警报”。

进一步阅读