问题看板
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
问题看板提供了一种可视化的方式来管理和跟踪 GitLab 中的工作。 问题看板:
- 根据标签、里程碑或指派人,将问题显示为可自定义列表中的卡片。
- 跟踪问题在您工作流的不同阶段。
- 支持看板和 Scrum 等敏捷方法。
- 为不同的团队和项目组织多个看板。
- 可视化整个过程中的工作负载和进度。
您的问题会显示为垂直列表中的卡片,根据其分配的 标签、里程碑、迭代、指派人 或 状态 进行组织。
为您的问题添加元数据,然后为现有问题创建相应的列表。 当您准备就绪时,可以将问题卡片从一个列表拖动到另一个列表。
为了让团队成员组织自己的工作流,请使用 多个问题看板。这允许在同一项目中创建多个问题看板。
不同的问题看板功能在不同的 GitLab 版本 中可用:
| 版本 | 项目问题看板数量 | 群组问题看板 数量 | 可配置问题看板 | 指派人列表 |
|---|---|---|---|---|
| Free | 多个 | 1 | 否 | 否 |
| Premium | 多个 | 多个 | 是 | 是 |
| Ultimate | 多个 | 多个 | 是 | 是 |
了解更多关于 问题看板的 GitLab 企业版功能。
观看问题看板功能的 视频演示。
多个问题看板
多个问题看板允许为以下情况提供多个问题看板:
- 所有版本中的项目
- Premium 和 Ultimate 版本中的群组
多个问题看板非常适合有多个团队的大型项目,其中仓库托管多个产品的代码,并且您希望创建看板来支持软件开发生命周期中的不同工作流。
使用菜单顶部的搜索框,您可以过滤列出的看板。
当您有十个或更多可用的看板时,菜单中还会显示一个 最近 部分,包含您最近访问的四个看板的快捷方式。
当您在具有多个看板的项目或群组中重新访问问题看板时, GitLab 会自动加载您上次访问的看板。
创建问题看板
前提条件:
- 您必须拥有项目的至少 Planner 角色。
要创建新的问题看板:
- 在问题看板页面的左上角,选择包含当前看板名称的下拉列表。
- 选择 创建新看板。
- 输入新看板的名称并选择其范围:里程碑、迭代、标签、指派人或权重。
- 选择 创建看板
删除问题看板
前提条件:
- 您必须拥有保存看板的项目的至少 Planner 角色。
要删除打开的问题看板:
- 在问题看板页面的右上角,选择 配置看板( )。
- 选择 删除看板。
- 选择 删除 以确认。
如果您删除的看板是最后一个,则会创建一个新的 开发 看板。
问题看板用例
您可以根据自己偏好的工作流定制 GitLab 问题看板。 有关基于工作流的文档,请参阅 教程:规划和跟踪您的工作。
单个问题看板的用例
使用 GitLab Flow, 您可以在问题中讨论提案,为其添加标签,并使用问题看板进行组织和优先级排序。
例如,让我们考虑这个简化的开发工作流:
- 您有一个托管应用程序代码库的仓库,您的团队积极贡献代码。
- 您的 后端 团队开始处理新的实现,收集反馈和批准,然后将其移交给 前端 团队。
- 当前端完成后,新功能将部署到 暂存 环境进行测试。
- 当测试成功后,它将部署到 生产 环境。
如果您有 后端、前端、暂存 和 生产 标签,并且有一个为每个标签设置列表的问题看板,您可以:
- 可视化从开发生命周期开始到部署到生产的整个实现流程。
- 通过垂直移动问题来对列表中的问题进行优先级排序。
- 根据您设置的标签移动问题列表之间的问题。
- 通过选择一个或多个现有问题,将多个问题添加到看板的列表中。
Scrum 团队
在 Scrum 团队中,使用 多个问题看板,这样每个 Scrum 团队都有自己的看板。 在 Scrum 看板上,您可以轻松地将问题移动到流程的每个部分。例如:待办、进行中 和 已完成。
快速分配
要快速将问题分配给团队成员:
- 为每个团队成员创建 指派人列表。
- 将问题拖动到团队成员的列表中。
问题看板术语
一个 问题看板 代表您问题的独特视图。它可以有多个列表,每个列表由卡片表示的问题组成。
一个 列表 是问题看板上的一个列,显示符合特定属性的问题。 除了默认的 “打开” 和 “关闭” 列表外,每个额外的列表显示符合您选择的标签、指派人或里程碑的问题。在每个列表的顶部,您可以看到属于该列表的问题数量。列表类型包括:
- 打开(默认):所有不属于其他列表的打开问题。 始终显示为最左边的列表。
- 关闭(默认):所有关闭的问题。始终显示为最右边的列表。
- 标签列表:特定标签的所有打开问题。
- 指派人列表:分配给特定用户的所有打开问题。
- 里程碑列表:特定里程碑的所有打开问题。
- 迭代列表:特定迭代的所有打开问题。
- 状态列表:具有特定状态的所有问题。
一个 卡片 是列表上的一个框,它代表一个问题。您可以将卡片从一个列表拖动到另一个列表,以更改其标签、指派人或里程碑。您可以在卡片上看到的信息包括:
- 问题标题
- 关联的标签
- 问题编号
- 指派人
- 权重
- 里程碑
- 迭代(在 Premium 和 Ultimate 版本中)
- 截止日期
- 时间跟踪估算
- 健康状态
一个 泳道 是问题看板上问题的水平分组,例如按父级 epic 分组。
列表中问题的排序
前提条件:
- 您必须拥有项目的至少 Planner 角色。
当创建问题时,系统会分配一个相对顺序值,该值大于该问题项目或顶级组的最大值。这意味着该问题出现在它出现的任何问题列表的底部。
当您访问看板时,问题在任何列表中都会按顺序显示。您可以通过拖动问题来更改该顺序。更改的顺序会被保存,以便稍后访问同一看板的任何人都能看到重新排序的结果,但有一些例外。
每次您拖动和重新排序问题时,其相对顺序值都会相应更改。然后,每当该问题出现在任何看板上时,排序都会根据更新的相对顺序值进行。如果您的 GitLab 实例中的用户将问题 A 拖到问题 B 之上,当这两个问题在同一实例中的任何看板上随后加载时,排序都会保持不变。这可能是不同的项目看板或不同的群组看板,例如。
这种排序也会影响 问题列表。 在问题看板中更改顺序会更改问题列表中的顺序,反之亦然。
专注模式
在专注模式下,导航界面会被隐藏,让您能够专注于看板中的问题。 要启用或禁用专注模式,在右上角选择 切换专注模式( )。
群组问题看板
在群组导航级别可访问,群组问题看板提供与项目级别看板相同的功能。 它可以显示属于该群组及其后代子群组的所有项目中的问题。
GitLab Free 用户可以使用单个群组问题看板。
问题看板的 GitLab 企业版功能
GitLab 问题看板在 GitLab Free 版本中可用,但一些高级功能仅在 更高版本中 提供。
可配置问题看板
- 版本:Premium, Ultimate
- 提供:GitLab.com, GitLab Self-Managed, GitLab Dedicated
问题看板可以与 里程碑、 标签、指派人、权重和当前 迭代 相关联, 从而自动相应地过滤看板问题。 这允许您根据团队的需求创建独特的看板。
您可以在创建看板时或通过选择 配置看板( )按钮来定义看板的范围。 在将里程碑、迭代、指派人或权重分配给问题看板后,您将无法再通过搜索栏过滤这些内容。要做到这一点,您需要从问题看板中移除所需范围(例如,里程碑、指派人或权重)。
如果您在看板中没有编辑权限,您仍然可以通过选择 看板配置( )来查看配置。
指派人列表
- 版本:Premium, Ultimate
- 提供:GitLab.com, GitLab Self-Managed, GitLab Dedicated
与显示具有选定标签的所有问题的常规列表一样,您可以添加一个指派人列表,显示分配给特定用户的所有问题。 您可以拥有同时包含标签列表和指派人列表的看板。
前提条件:
- 您必须拥有项目的至少 Planner 角色。
要添加指派人列表:
- 选择 新列表。
- 选择 指派人。
- 在下拉列表中,选择一个用户。
- 选择 添加到看板。
现在指派人列表已添加,您可以通过 移动问题 到和离开指派人列表来分配或取消分配问题给该用户。 要删除指派人列表,与标签列表一样,选择垃圾桶图标。
里程碑列表
- 版本:Premium, Ultimate
- 提供:GitLab.com, GitLab Self-Managed, GitLab Dedicated
您可以创建按分配的里程碑过滤问题的里程碑列表,让您在看板上有更多的自由度和可见性。
前提条件:
- 您必须拥有项目的至少 Planner 角色。
要添加里程碑列表:
- 选择 新列表。
- 选择 里程碑。
- 在下拉列表中,选择一个里程碑。
- 选择 添加到看板。
要更改问题的里程碑,拖动问题卡片 到和离开里程碑列表。
迭代列表
- 版本:Premium, Ultimate
- 提供:GitLab.com, GitLab Self-Managed, GitLab Dedicated
您可以创建迭代中的问题列表。
前提条件:
- 您必须拥有项目的至少 Planner 角色。
要添加迭代列表:
- 选择 新列表。
- 选择 迭代。
- 在下拉列表中,选择一个迭代。
- 选择 添加到看板。
要更改问题的迭代,拖动问题卡片 到和离开迭代列表。
状态列表
- 版本:Premium, Ultimate
- 提供:GitLab.com, GitLab Self-Managed, GitLab Dedicated
此功能的可用性由功能标志控制。 有关更多信息,请查看历史记录。
创建具有特定状态的问题列表。 状态列表帮助您按工作流阶段(如 进行中 或 已完成)组织问题。
有关状态的更多信息,请参阅 状态。
状态列表的行为与其他列表类型不同:
- 状态列表:可以包含打开和关闭的问题,具体取决于状态是否映射到打开或关闭状态。
- 其他列表(如指派人或里程碑):始终只显示打开的问题。
前提条件:
- 您必须拥有项目的至少 Planner 角色。
要添加状态列表:
- 选择 新列表。
- 选择 状态。
- 从下拉列表中,选择状态。
- 选择 添加到看板。
状态列表被添加到看板并显示具有该状态的问题。
要更改问题的状态,拖动问题卡片 到和离开状态列表。
在泳道中分组问题
- 版本:Premium, Ultimate
- 提供:GitLab.com, GitLab Self-Managed, GitLab Dedicated
使用泳道,您可以按 epic 可视化分组的问题。 您的问题看板保留所有其他功能,但问题的视觉组织方式不同。此功能在项目级别和群组级别都可用。
前提条件:
- 您必须拥有项目的至少 Planner 角色。
要在问题看板中按 epic 分组问题:
- 选择 视图选项( )。
- 选择 Epic 泳道。
然后,您可以在不离开此视图的情况下 编辑 问题,并 拖动 它们来更改其位置和 epic 分配:
- 要重新排序问题,将其拖动到列表中的新位置。
- 要将问题分配给另一个 epic,将其拖动到 epic 的水平泳道中。
- 要从 epic 中移除问题,将其拖动到 未分配 epic 的问题 泳道中。
- 要同时将问题移动到另一个 epic 和另一个列表,对角拖动问题。
问题权重总和
- 版本:Premium, Ultimate
- 提供:GitLab.com, GitLab Self-Managed, GitLab Dedicated
每个列表的顶部指示属于该列表的问题权重总和。这在使用看板进行容量分配时很有用,特别是与 指派人列表 结合使用时。
进行中工作限制
- 版本:Premium, Ultimate
- 提供:GitLab.com, GitLab Self-Managed, GitLab Dedicated
您可以为问题看板上的每个问题列表设置进行中工作(WIP)限制。 设置限制后,当前状态和配置的限制会显示在看板列表标题中。
列表中的一条线将限制内的问题与超出限制的问题分开。 您无法在默认列表(打开 和 关闭)上设置 WIP 限制。
限制类型
GitLab 支持两种类型的 WIP 限制:
-
项目:限制列表中的问题数量,无论其权重如何。 看板标题显示列表中的问题数量和项目限制。
例如,如果有 4 个问题和 3 个项目限制,标题显示 4/3。
-
权重:限制列表中问题的总权重。 看板标题显示列表中问题的总权重和权重限制。
例如,如果有权重总和为 8 的问题和 5 的权重限制,标题显示 8/5。
示例:
- 当您有四个问题且项目限制为五时,标题显示 4/5。 如果超出限制,当前问题数量会以红色显示。
- 您有五个问题且项目限制为五的列表。当您将另一个问题移动到该列表时, 列表的标题显示 6/5,其中六以红色显示。进行中工作限制线显示在第六个问题之前。
- 使用权重限制时,如果您有三个权重为 1、2 和 5 的问题(总权重为 8)且权重限制为 5,标题显示 8/5,其中 8 以红色显示。进行中工作限制线出现在组合权重在限制内的问题之后,将它们与超出限制的问题分开。
设置进行中工作限制
前提条件:
- 您必须拥有项目的至少 Planner 角色。
要为列表设置 WIP 限制,在问题看板中:
- 在您要编辑的列表顶部,选择 编辑列表设置( )。 列表设置侧边栏在右侧打开。
- 在 进行中工作限制 旁边,选择 编辑。
- 从下拉列表中选择限制类型:
- 项目:按问题数量限制。
- 权重:按问题总权重限制。
- 输入最大项目数或最大权重。
- 按 Enter 保存。
要移除 WIP 限制,选择 移除限制。
被阻塞的问题
- 版本:Premium, Ultimate
- 提供:GitLab.com, GitLab Self-Managed, GitLab Dedicated
如果一个问题 被另一个问题阻塞,其标题旁边会出现一个图标以表示其阻塞状态。
当您将鼠标悬停在阻塞图标( )上时,会显示详细信息的弹出框。
您可以在问题看板上执行的操作
- 编辑问题。
- 创建新列表。
- 删除现有列表。
- 从列表中移除问题。
- 过滤问题 以显示在您的问题看板上。
- 移动问题和列表。
- 拖动并重新排序列表。
- 更改问题标签(通过将问题拖动到不同列表之间)。
- 关闭问题(通过将其拖动到 关闭 列表)。
编辑问题
您可以在不离开看板视图的情况下编辑问题。 要打开右侧边栏,选择问题卡片(不是其标题)。
前提条件:
- 您必须拥有项目的至少 Planner 角色。
您可以在右侧边栏编辑以下问题属性:
如果您的管理员启用了 问题抽屉, 当您从问题看板选择问题卡片时,问题会在抽屉中打开。 在那里,您可以编辑所有字段,包括描述、评论或相关项目。
创建新列表
您可以在两个现有列表之间或问题看板的右侧创建新列表。
要在两个列表之间创建新列表:
-
在左侧边栏,选择 搜索或转到 并找到您的项目。
-
选择 规划 > 问题看板。
-
将鼠标悬停或键盘焦点移动到两个列表之间。
-
选择 新列表。 新列表面板打开。
-
选择要基于新列表的标签、用户、里程碑、迭代或状态。
-
选择 添加到看板。
新列表在看板上的位置与新列表面板相同。
要移动和重新排序列表,拖动它们。
或者,您可以选择看板右端的 新列表。 新列表插入到列表的右端,在 关闭 之前。
删除列表
删除列表不会对问题和标签产生任何影响,因为这只是删除了列表视图。如果需要,您可以随时重新创建它。
前提条件:
- 您必须拥有项目的至少 Planner 角色。
要从问题看板中删除列表:
- 在您要删除的列表顶部,选择 编辑列表设置( )。 列表设置侧边栏在右侧打开。
- 选择 删除列表。
- 在确认对话框中,再次选择 删除列表。
向列表添加问题
前提条件:
- 您必须拥有项目的至少 Planner 角色。
如果您的看板范围是一个或多个属性,请转到您要添加的问题并应用与您的看板范围相同的属性。
例如,要将问题添加到范围为 进行中 标签的列表中,在群组问题看板中:
- 转到群组或其子群组或项目中的一个问题。
- 添加
进行中标签。
该问题现在应该显示在您问题看板的 进行中 列表中。
从列表中移除问题
当问题不再属于某个列表时,您可以将其移除。
前提条件:
- 您必须拥有项目的至少 Planner 角色。
步骤取决于列表的范围:
- 要打开右侧边栏,选择问题卡片。
- 移除将问题保留在列表中的内容。 如果是标签列表,请移除标签。如果是 指派人列表,请取消分配用户。
过滤问题
您可以使用问题看板顶部的过滤器来仅显示您想要的结果。这与 问题跟踪器 中使用的过滤类似。
前提条件:
- 您必须拥有项目的至少 Planner 角色。
您可以按以下内容过滤:
在群组看板中过滤问题
在 群组 看板中 过滤问题 时,请注意以下行为:
- 里程碑:您可以按属于群组及其后代群组的里程碑进行过滤。
- 标签:您只能按属于群组的标签进行过滤,而不能按其后代群组的标签进行过滤。
当您使用右侧边栏单独编辑问题时,您还可以从问题所属的 项目 中选择里程碑和标签。
移动问题和列表
您可以通过拖动来移动问题和列表。
前提条件:
- 您必须拥有 GitLab 中项目的至少 Planner 角色。
要移动问题,选择问题卡片并将其拖动到其当前列表中的另一个位置或拖动到不同的列表中。了解 在列表间拖动问题 的可能效果。
要移动列表,选择其顶部栏并水平拖动。 您无法移动 打开 和 关闭 列表,但在编辑问题看板时可以隐藏它们。
将问题移动到列表开头
您可以使用菜单快捷方式将问题移动到列表顶部。
即使其他问题被过滤器隐藏,您的问题也会被移动到列表顶部。
前提条件:
- 您必须拥有项目的至少 Planner 角色。
要将问题移动到列表开头:
- 在问题看板中,将鼠标悬停在您要移动的问题卡片上。
- 选择 卡片选项( ),然后 移动到列表开头。
将问题移动到列表末尾
您可以使用菜单快捷方式将问题移动到列表底部。
即使其他问题被过滤器隐藏,您的问题也会被移动到列表底部。
前提条件:
- 您必须拥有项目的至少 Planner 角色。
要将问题移动到列表末尾:
- 在问题看板中,将鼠标悬停在您要移动的问题卡片上。
- 选择 卡片选项( ),然后 移动到列表末尾。
在列表间拖动问题
要将问题移动到另一个列表,选择问题卡片并将其拖动到该列表上。
当您在列表间拖动问题时,结果取决于源列表和目标列表。
| 到打开列表 | 到关闭列表 | 到标签 B 列表 | 到指派人 Bob 列表 | |
|---|---|---|---|---|
| 从打开列表 | - | 关闭问题 | 添加标签 B | 分配给 Bob |
| 从关闭列表 | 重新打开问题 | - | 重新打开问题并添加标签 B | 重新打开问题并分配给 Bob |
| 从标签 A 列表 | 移除标签 A | 关闭问题 | 移除标签 A 并添加标签 B | 分配给 Bob |
| 从指派人 Alice 列表 | 取消分配 Alice | 关闭问题 | 添加标签 B | 取消分配 Alice 并分配给 Bob |
提示
需要记住的几点:
- 在列表间移动问题会从其来源列表中移除标签,并添加其目标列表的标签。
- 如果一个问题有多个标签,它可以存在于多个列表中。
- 如果问题被标记,列表会自动填充问题。
- 选择卡片内的问题标题会将您带到该问题。
- 选择卡片内的标签会快速过滤整个问题看板,并仅显示所有列表中具有该标签的问题。
- 当问题从状态列表移动到打开列表时,会应用默认的打开状态。同样,当它移动到关闭列表时,会应用默认的关闭状态。
- 出于性能和可见性考虑,每个列表默认显示前 20 个问题。如果您有超过 20 个问题,开始向下滚动,下一个 20 个问题会出现。
排查问题看板问题
在群组问题看板上按作者或指派人过滤时出现 “获取用户时出现问题”
如果在群组问题看板上按作者或指派人过滤时出现横幅显示 “获取用户时出现问题” 错误,请确保您已添加为当前群组的成员。非成员没有权限在问题看板上按作者或指派人过滤时列出群组成员。
要修复此错误,您应该将所有用户添加到顶级群组,至少具有 Guest 角色。
使用 Rails 控制台修复问题看板未加载和超时
如果您在 UI 中看到问题看板未加载和超时,请使用 Rails 控制台调用问题重新平衡服务来修复它:
-
运行以下命令:
p = Project.find_by_full_path('<username-or-group>/<project-name>') Issues::RelativePositionRebalancingService.new(p.root_namespace.all_projects).execute -
要退出 Rails 控制台,输入
quit。