管理议题

创建议题后,您可以开始使用议题。

编辑议题

您可以编辑议题的标题和描述。

先决条件:

  • 您必须至少具有该项目的报告者角色,作为议题的作者,或被分配给议题。

要编辑问题:

  1. 在左侧导航栏,选择 搜索或转到,然后找到您的项目。
  2. 选择 计划 > 议题,然后选择您要查看的议题标题。
  3. 在议题标题右侧,选择 编辑标题和描述 ()。
  4. 编辑可用字段。
  5. 选择 保存修改

批量编辑项目中的议题

当您在一个项目中时,您可以一次编辑多个议题。

先决条件:

  • 您必须至少具有该项目的报告者角色。

同时编辑多个议题:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 计划 > 议题
  3. 选择 批量编辑。屏幕右侧会出现一个侧边栏。
  4. 选中您要编辑的每个议题旁边的复选框。
  5. 从侧边栏中,编辑可用字段。
  6. 选择 全部更新

在项目中批量编辑议题时,您可以编辑以下属性:

批量编辑群组中的议题

当您在一个群组中时,您可以跨多个项目编辑多个议题。

先决条件:

  • 您必须至少具有群组的报告者角色。

同时编辑多个议题:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的群组。
  2. 选择 计划 > 议题
  3. 选择 批量编辑。屏幕右侧会出现一个侧边栏。
  4. 选中您要编辑的每个议题旁边的复选框。
  5. 从侧边栏中,编辑可用字段。
  6. 选择 全部更新

在群组中批量编辑议题时,您可以编辑以下属性:

移动议题

当您移动议题时,它会关闭并复制到目标项目。原始议题没有被删除。系统注释被添加到两个议题中,显示它来源和qu’xiang。

将议题移至具有不同访问规则的项目时要小心。在移动议题之前,请确保它不包含敏感数据。

先决条件:

  • 您必须至少具有该项目的报告者角色。

移动问题:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 计划 > 议题,然后选择您要查看的议题
  3. 在右侧边栏,选择 移动议题
  4. 搜索要将议题移动过去的项目。
  5. 选择 移动

当父议题被移动时,任务也移动

  • 引入于极狐GitLab 16.9,使用名为 move_issue_children 的功能标志。默认禁用。
  • 在极狐GitLab 16.11 中,为 JihuLab.com 和私有化部署启用。
  • 在极狐GitLab 17.3 中 GA。功能标志 move_issue_children 被移除。

当您将议题移动至其他项目时,所有的子任务也会被移动至目标项目而且依旧保留为被移动议题的子任务。每个任务的移动方式都与父任务相同,也就是说,它会在原始项目中被关闭,然后被复制到目标项目中。

批量移动议题

从议题列表

  • 引入于 15.6 版本。

当您在一个项目中时,您可以同时移动多个议题。您不能移动任务或测试用例。

先决条件:

  • 您必须至少具有该项目的报告者角色。

同时移动多个议题:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 议题
  3. 选择 批量编辑。屏幕右侧会出现一个侧边栏。
  4. 选中您要移动的每个议题旁边的复选框。
  5. 从右侧边栏中选择 移动所选
  6. 从下拉列表中选择目标项目。
  7. 选择 移动

从 Rails 控制台

您可以将所有未解决的议题从一个项目移动到另一个项目。

先决条件:

  • 您必须要能够访问极狐GitLab 实例的 Rails 控制台。
  1. 可选(但推荐),在控制台中尝试任何更改之前创建备份。
  2. 打开 Rails 控制台。
  3. 运行以下脚本。确保将 projectadmin_usertarget_project 更改为您的值。

    project = Project.find_by_full_path('full path of the project where issues are moved from')
    issues = project.issues
    admin_user = User.find_by_username('username of admin user') # make sure user has permissions to move the issues
    target_project = Project.find_by_full_path('full path of target project where issues moved to')
    
    issues.each do |issue|
       if issue.state != "closed" && issue.moved_to.nil?
          Issues::MoveService.new(container: project, current_user: admin_user).execute(issue, target_project)
       else
          puts "issue with id: #{issue.id} and title: #{issue.title} was not moved"
       end
    end; nil
    
  4. 要退出 Rails 控制台,请输入 quit

描述列表和任务列表

当您在议题描述中使用有序列表、无序列表或任务列表时,您可以:

删除任务列表项

  • 引入于 15.9 版本。

先决条件:

  • 您必须至少具有项目的报告者角色,或者是议题的作者或指派人。

在带有任务列表项的议题描述中:

  1. 将鼠标悬停在任务列表项上并选择选项菜单()。
  2. 选择 删除

任务列表项已从议题描述中删除。任何嵌套的任务列表项都会向上移动一个嵌套级别。

在议题描述中重新排序列表项

  • 引入于极狐GitLab 15.0。

当您在描述中查看议题列表时,您还可以重新排序列表项。

先决条件:

  • 您必须至少具有项目的报告者角色,或者是议题的作者或指派人。
  • 议题的描述必须具有有序、无序任务列表。

要重新排序列表项:

  1. 悬停在列表项行上,以便看到 ()。
  2. 选择并保持 grip 图标。
  3. 拖动行到列表中的新位置。
  4. 释放 grip 图标。

关闭议题

当您决定某个议题已解决或不再需要时,您可以关闭它。该议题已标记为已关闭但未删除。

先决条件:

  • 您必须至少具有该项目的报告者角色。

要关闭议题,您可以(选择其一):

  • 议题看板中,将议题卡从其列表拖到 已关闭 列表中。
  • 从任何其他极狐GitLab UI 页面:
    1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
    2. 选择 计划 > 议题,然后选择您要查看的议题。
    3. 在右上角,选择 议题操作 (),然后选择 关闭议题

您还可以在评论或描述中使用 /close 快速操作

重新打开一个关闭的议题

先决条件:

  • 您必须至少具有项目的报告者角色,或是议题的作者,或被指派给此议题。

要重新打开一个关闭的议题,在右上角,选择 议题操作 () 并选择 重新打开议题。重新打开的议题和其他任何打开的议题没有任何不同。

您还可以在评论或描述中使用 /reopen 快速操作

自动关闭议题

您可以通过在提交消息或合并请求描述中,使用关闭语法样式来自动关闭议题。私有化部署实例的管理员可以更改默认关闭样式

如果提交消息或合并请求描述包含与定义的 pattern 匹配的文本,则在以下任一情况下,匹配文本中引用的所有议题都将关闭:

  • 提交被推送到项目的默认分支
  • 提交或合并请求,合并到默认分支中。

例如,如果您在合并请求描述中包含 Closes #4, #6, Related to #5

  • 合并 MR 时会自动关闭议题 #4#6
  • 议题 #5 被标记为相关议题,但它不会自动关闭。

或者,当您从议题创建合并请求时,它会继承议题的里程碑和标签。

出于性能原因,从现有仓库第一次推送时禁用自动关闭议题。

当合并时用户的责任

当您合并合并请求时,您需要负责任的检查目标议题能够被正确关闭。用户可以在合并请求描述中包含议题关闭的模式,也可以在提交信息的 body 中。但是在提交信息中的关闭信息容易丢失。在这两种情况下,合并请求小部件会在合并时展示议题:

This merge request closes issue #2754.

当您合并请求的合并者时,极狐GitLab 会检查您是否有权限关闭目标议题。在公共项目中,此检查非常重要,因为外部用户可以创建包含关闭模式的合并请求和提交。当您是合并的用户时,重要的是,你要清楚合并操作对你项目中的代码和问题所产生的影响。

当启用了合并请求的自动合并时,您将无法修改将被自动关闭的议题列表。

默认关闭样式

  • 在极狐GitLab 17.3 中引入了工作项(任务、目标或关键结果)的引用。

要自动关闭议题,请使用以下关键字,后跟议题引用。

可用关键字:

  • Close, Closes, Closed, Closing, close, closes, closed, closing
  • Fix, Fixes, Fixed, Fixing, fix, fixes, fixed, fixing
  • Resolve, Resolves, Resolved, Resolving, resolve, resolves, resolved, resolving
  • Implement, Implements, Implemented, Implementing, implement, implements, implemented, implementing

可用的议题引用格式:

  • 本地议题 (#123).
  • 跨项目议题 (group/project#123).
  • 议题的完整 URL (https://gitlab.example.com/group/project/issues/123).
  • 工作项的完整 URL(比如任务、目标或关键结果):
    • 在项目中 (https://gitlab.example.com/<project_full_path>/-/work_items/123)。
    • 在群组中 (https://gitlab.example.com/groups/<group_full_path>/-/work_items/123)。

示例:

Awesome commit message

Fix #20, Fixes #21 and Closes group/otherproject#22.
This commit is also related to #17 and fixes #18, #19
and https://gitlab.example.com/group/otherproject/issues/23.

上一个提交消息关闭了此提交推送到的项目中的#18#19#20#21,以及 group/otherproject 中的 #22#23#17 没有关闭,因为它与 pattern 不匹配。

您可以在多行提交消息或单行中使用关闭模式,使用 git commit -m 从命令行完成。

默认议题结束 pattern 正则表达式:

\b((?:[Cc]los(?:e[sd]?|ing)|\b[Ff]ix(?:e[sd]|ing)?|\b[Rr]esolv(?:e[sd]?|ing)|\b[Ii]mplement(?:s|ed|ing)?)(:?) +(?:(?:issues? +)?%{issue_ref}(?:(?: *,? +and +| *,? *)?)|([A-Z][A-Z0-9_]+-\d+))+)

禁用自动关闭议题

  • 在极狐GitLab 15.4 中发生了变更:引用议题的项目设置检查,而不是提交或合并请求的项目。

您可以在项目设置中按项目禁用自动议题关闭功能。

先决条件:

  • 您必须至少具有该项目的维护者角色。

要禁用自动关闭议题:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 设置 > 仓库
  3. 展开 分支默认值
  4. 选择 在默认分支上自动关闭引用的议题
  5. 选择 保存修改

引用的议题仍会显示,但不会自动关闭。

更改此设置仅适用于新的合并请求或提交。已经关闭的议题保持原样。禁用自动关闭议题仅适用于禁用了该设置的项目中的议题,在这个项目中,合并请求和提交仍然可以关闭另一个项目的议题。

自定义议题关闭样式

先决条件:

了解如何更改安装的默认议题关闭样式

更改议题类型

先决条件:

  • 您必须是议题作者或至少具有项目的报告者角色。

要更改议题类型:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 计划 > 议题,然后选择您要查看的议题。
  3. 在标题右侧,选择 编辑标题和描述 ()。
  4. 编辑议题并从 议题类型 下拉列表中选择一个议题类型:

  5. 选择 保存修改.

删除议题

先决条件:

  • 您必须具有项目的所有者角色。

要删除议题:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 计划 > 议题,然后选择您要查看的议题。
  3. 在右上角,选择 议题操作 ()。
  4. 选择 删除议题

或者:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 计划 > 议题,然后选择您要查看的议题主题。
  3. 选择 编辑标题和描述 ()。
  4. 选择 删除议题

将议题提升为史诗

您可以将议题提升到直接父组中的史诗

提升机密议题到史诗会创建一个机密史诗,同时保留机密性。

什么时候将议题提升为史诗:

  • 史诗会在与该问题所属项目相同的群组中创建。
  • 该议题的订阅者会收到史诗已创建的通知。

以下议题元数据会拷贝至史诗:

  • 主题、描述、活动和评论线程。
  • 点赞和点踩。
  • 参与者。
  • 群组标签。
  • 父史诗。

先决条件:

  • 议题所属的项目必须位于一个群组中。
  • 您必须至少是项目直接父群组的报告者角色。
  • 您还必须(其中之一)是:
    • 至少具有项目的报告者角色。
    • 议题的作者。
    • 被指派给议题。

要提升议题为史诗:

  1. 在左侧导航栏,选择 搜索或前往 并找到您的项目。
  2. 选择 计划 > 议题,然后选择您要查看的议题。
  3. 在右上角,选择 议题操作 ()。
  4. 选择 提升为史诗

另外,您还可以使用 /promote 快捷操作

将议题升级为事件(incident)

  • 在创建时将议题类型设置为事件(incident)的快速操作引入于 15.8 版本。

您可以使用 /promote_to_incident 快速操作,将议题升级为事件

向迭代添加议题

将议题添加到迭代

  1. 在左侧导航栏,选择 搜索或前往 并找到您的项目。
  2. 选择 计划 > 议题,然后选择您要查看的议题。
  3. 在右侧边栏的 迭代 部分,选择 编辑
  4. 从下拉列表中,选择要与此议题关联的迭代。
  5. 选择下拉列表之外的任何区域。

您还可以:

  • 使用 /iteration 快速操作
  • 将议题拖拉拽到看板的迭代中。
  • 从议题列表批量编辑议题。

查看指派给您的所有议题

要查看指派给您的所有议题:

  1. 在左侧边栏中,将光标放在 搜索 框中。
  2. 从下拉列表中,选择 指派给我的议题

或者:

  • 要使用键盘快捷键,请按 Shift + i
  • 在左侧边栏的右上角,选择 议题

议题列表

议题列表会展示您项目或群组中的所有议题。您可以使用它来查看、排序和管理议题。

要查看议题列表:

  1. 在左侧导航栏,选择 搜索或前往 并找到您的项目。
  2. 选择 计划 > 议题

过滤议题列表

  • 按类型过滤功能引入于 13.10 版本,功能标志为 vue_issues_list。默认禁用。
  • 按类型过滤功能在私有化部署版上启用于 14.10 版本。
  • 按类型过滤功能一般可用于 15.1 版本。功能标志 vue_issues_list 删除。
  • 按健康状态过滤功能引入于 15.5 版本。

要过滤议题列表:

  1. 在左侧导航栏,选择 搜索或前往 并找到您的项目。
  2. 选择 计划 > 议题
  3. 在出现的下拉列表中,选择 搜索或过滤结果
  4. 选择或键入用于过滤属性的运算符。可以使用以下运算符:
    • =:是
    • !=:不是
  5. 输入文本,过滤属性。您可以使用 NoneAny 过滤某些属性。
  6. 重复此过程,按多个属性进行过滤。多个属性由逻辑 AND 连接。

通过主题或描述过滤

要在主题或描述文本中过滤议题列表:

  1. 在左侧导航栏,选择 搜索或前往 并找到您的项目。
  2. 选择 计划 > 议题
  3. 在议题列表中,在 搜索或过滤结果 文本矿种,输入搜索表达式。
  4. 在出现的列表下拉菜单中,选择 搜索,然后选择 主题描述
  5. Enter 或选择搜索图标()。

比如,如果您搜索 I am securing information for M&A,则极狐GitLab 可以在主题或描述中搜索并返回结果 securingsecured、或information。然而,极狐GiLab 不会精确匹配 IamM&A,因为这些词很常见也没有非常重要的意义。这是 PostgreSQL 全文本搜索的限制。

使用或(OR)操作过滤

  • 用 OR 操作对作者和指派人进行过滤引入于极狐GitLab 15.6,使用名为 or_issuable_queries 的功能标志。默认禁用。
  • 用 OR 操作对标记进行过滤引入于极狐GitLab 15.8,使用名为 or_issuable_queries 的功能标志。默认禁用。
  • 在极狐GitLab 15.9 中,为 JihuLab.com 和私有化部署启用。
  • 在极狐GitLab 17.0 中 GA,功能标志 or_issuable_queries 被移除。

当您通过以下内容过滤议题列表时,您可以使用 OR 操作(is one of: ||):

  • 指派人
  • 作者
  • 标记

is one of 代表包含 OR。比如,如果您通过 Assignee is one of Sidney JonesAssignee is one of Zhang Wei 过滤,则极狐GitLab 会展示包含 Sidney 或/和 Zhang 的议题。

按 ID 过滤议题

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 在左侧边栏中,选择 计划 > 议题
  3. 搜索 框中,输入议题 ID。例如,输入过滤器 #10,仅返回议题 10。

filter issues by specific ID

在抽屉中打开议题 (SELF)

  • 引入于极狐GitLab 17.4,使用名为 issues_list_drawer 的功能标志。默认禁用。
此功能的可用性受控于功能标志。更多详情,可以查看历史。此功能仅为测试所用,还未生产就绪。

当启用此功能时,当您从列表或议题看板选择议题时,它会在抽屉中打开。您可以编辑议题或创建评论。

要打开完整的议题视图:

  • 在新页面中打开议题。。从议题列表,或:
    • 右键议题并在新的浏览器选项卡中打开它。
    • 按住 Cmd or Ctrl 并点击议题。
  • 从抽屉中,在左上角,选择 打开完整视图

Issue opened in a drawer.

复制议题引用

要引用实例中其他地方的议题,您可以使用其完整 URL 或简短引用,类似于 namespace/project-name#123,其中 namespace 是群组或用户名。

要将议题引用复制到剪贴板:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 计划 > 议题,然后选择您要查看的议题。
  3. 在右侧边栏的 引用 旁边,选择 复制引用 ()。

您现在可以将引用粘贴到另一个描述或评论中。

复制议题电子邮件地址

您可以通过发送电子邮件在议题中创建评论。 向此地址发送电子邮件会创建包含电子邮件正文的评论。

要复制议题的电子邮件地址:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 计划 > 议题,然后选择您要查看的议题。
  3. 在右侧边栏 发邮件 旁边,选择 复制引用 ()。

指派人

一个问题可以分配给一个或多个用户

指派人可以根据需要随时更改,指派人是对议题负责的人。 当一个议题被分配给某人时,它会出现在他们分配的议题列表中。

如果用户不是项目的成员,则只能将议题分配给他们,前提是他们自己创建议题或其他项目成员将议题分配给他们。

更改议题指派人

先决条件:

  • 您必须至少具有项目的报告者角色。

要更改议题的指派人:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 计划 > 议题,然后选择您要查看的议题。
  3. 在右侧边栏的 指派人 部分中,选择 编辑
  4. 从下拉列表中选择要添加为指派人的用户。
  5. 选择下拉列表之外的任何区域。

无需刷新页面即可更改指派人。

类似议题

为防止同一主题出现重复议题,系统在您创建新议题时会搜索类似议题。

当您在 新建议题 页面的标题文本框中键入时,系统会在当前项目中的所有议题中搜索标题和描述。仅返回您有权访问的议题。 标题文本框下方最多显示五个类似议题,按最近更新排序。

健康状态

为了帮助您跟踪议题状态,您可以为每个议题分配一个状态。此状态将议题标记为按计划进行,或需要注意以按计划进行。

将对问题健康状况的审查纳入到你的每日站立会议、项目状态报告或每周会议中,以便应对你计划工作按时交付所面临的风险。

更改议题的健康状态

先决条件:

  • 您必须至少具有该项目的报告者角色。

要编辑议题的运行状况:

  1. 在左侧边栏中,选择 搜索或转到 并找到您的项目。
  2. 选择 计划 > 议题,然后选择您要查看的议题。
  3. 在右侧边栏的 健康状态 部分,选择 编辑
  4. 从下拉列表中,选择要添加到此问题的状态:

    • On track (green)
    • Needs attention (amber)
    • At risk (red)

您可以在以下位置查看议题的运行状况:

  • 议题列表
  • 史诗树
  • 议题看板上的议题卡片

议题关闭后,无法编辑其运行状况,并且在重新打开议题之前 编辑 按钮将变为禁用状态。

发布议题

如果状态页面应用程序与项目相关联,您可以使用 /publish 快速操作 发布议题。

与议题相关的快速操作

您还可以使用快速操作来管理议题。

某些操作还没有相应的 UI 按钮。 您可以仅通过使用快速操作来执行以下操作:

  • 添加或删除 Zoom 会议/zoom/remove_zoom)。
  • 发布议题 (/publish)。
  • 将议题克隆到同一个或另一个项目 (/clone)。
  • 关闭一个议题并将其标记为另一个议题的副本(/duplicate)。
  • 从项目中的另一个合并请求或议题中复制标记和里程碑 (/copy_metadata)。