GitLab中文版教程|使用极狐GitLab Triage来自动管理Issue和MR
极狐GitLab中使用Epic、Issue、Merge Request进行计划和管理,继而组织和追踪进度。尤其是在GitLab主库gitlab-org/gitlab存在总计超过10W+ 的Issue以及 4W+打开的Issue,如果每个Issue都要手动分类管理,那将是一场噩梦。
一、极狐GitLab Triage
gitlab-triage是使用gem管理,旨在让项目经理和maintainers能够通过自定义策略自动处理极狐GitLab项目或组中的Issue和Merge Request。
01安装
使用gem安装,以二进制可执行文件运行在本地或CI Pipeline中。

02本地运行
gitlab-triage本质上是CLI 工具,可以在本地与极狐GitLab CI 或是任何可以运行 CLI 的环境与平台运行。
在指定项目运行

在指定群组运行

在整个实例运行

指定相应实例

03在极狐GitLab CI Pipeline中运行
推荐使用极狐GitLab CI 自动运行 gitlab-triage,配合极狐GitLab Scheduling Pipelines 进行定时执行,或者配合 Webhook 在 Issues events 和 Merge request events 时触发执行,不过这需要少量的编程。

二、策略
策略是极狐GitLab Triage的核心概念,每个策略都可以声明许多条件(condition),在满足全部条件后会执行操作(action)。同时还提供了Summary policies(摘要策略)功能,摘要策略是一个特殊的策略,它将多个策略整合在一起,创建一个带有所有子策略的摘要Issue。
极狐GitLab Triage 使用 triage policy 策略文件 ./.triage-policies.yml来保存所有策略。
支持的资源:
epics
issues
merge_request
使用 rueles (array 类型)字段来定义所有策略,如:

01策略字段
gitlab-triage 提供了非常丰富的策略字段,描述策略的主体部分由4个字段组成:

condition 字段提供了 14 种条件类型,同时 ruby 字段还可以执行 ruby 表达式来进行判断;action 也提供了多种操作,还可以在 comment 中配合 极狐GitLab quick actions 进行更多的操作,详细内容请参考官方文档[9]。
02插件系统
同时可以使用插件来定制策略。使用 -r或 --request在执行操作前加载一个ruby 文件,在该文件中完成想要进行的操作。就如下面my_plugin.rb这个文件:

执行命令

现在就可以在 ruby 中判断 has_severity_label 了

三、场景推荐
下面是一些比较常见的使用场景:
处理没有使用 Label 的 Epic、Issue 和 MR
处理无人反馈的 Issue 和 MR,指定 review
清理长时间不活跃的 Issue 和 MR
统计一周没有进行更新的 Issue 并生成统计 Issue
示例项目: https://jihulab.com/cloud-native/demo/triage-demo/-/snippets。
目前 gitlab-triage 已经是一个比较完备的工具,在极狐GitLab内部基于该项目孵化了 triage-ops这样的原型来进行内部 dogfooding,并希望将其整合到极狐GitLab 产品当中。
极狐GitLab中使用Epic、Issue、Merge Request进行计划和管理,继而组织和追踪进度。尤其是在GitLab主库gitlab-org/gitlab存在总计超过10W+ 的Issue以及 4W+打开的Issue,如果每个Issue都要手动分类管理,那将是一场噩梦。
一、极狐GitLab Triage
gitlab-triage是使用gem管理,旨在让项目经理和maintainers能够通过自定义策略自动处理极狐GitLab项目或组中的Issue和Merge Request。
01安装
使用gem安装,以二进制可执行文件运行在本地或CI Pipeline中。

02本地运行
gitlab-triage本质上是CLI 工具,可以在本地与极狐GitLab CI 或是任何可以运行 CLI 的环境与平台运行。
在指定项目运行

在指定群组运行

在整个实例运行

指定相应实例

03在极狐GitLab CI Pipeline中运行
推荐使用极狐GitLab CI 自动运行 gitlab-triage,配合极狐GitLab Scheduling Pipelines 进行定时执行,或者配合 Webhook 在 Issues events 和 Merge request events 时触发执行,不过这需要少量的编程。

二、策略
策略是极狐GitLab Triage的核心概念,每个策略都可以声明许多条件(condition),在满足全部条件后会执行操作(action)。同时还提供了Summary policies(摘要策略)功能,摘要策略是一个特殊的策略,它将多个策略整合在一起,创建一个带有所有子策略的摘要Issue。
极狐GitLab Triage 使用 triage policy 策略文件 ./.triage-policies.yml来保存所有策略。
支持的资源:
epics
issues
merge_request
使用 rueles (array 类型)字段来定义所有策略,如:

01策略字段
gitlab-triage 提供了非常丰富的策略字段,描述策略的主体部分由4个字段组成:

condition 字段提供了 14 种条件类型,同时 ruby 字段还可以执行 ruby 表达式来进行判断;action 也提供了多种操作,还可以在 comment 中配合 极狐GitLab quick actions 进行更多的操作,详细内容请参考官方文档[9]。
02插件系统
同时可以使用插件来定制策略。使用 -r或 --request在执行操作前加载一个ruby 文件,在该文件中完成想要进行的操作。就如下面my_plugin.rb这个文件:

执行命令

现在就可以在 ruby 中判断 has_severity_label 了

三、场景推荐
下面是一些比较常见的使用场景:
处理没有使用 Label 的 Epic、Issue 和 MR
处理无人反馈的 Issue 和 MR,指定 review
清理长时间不活跃的 Issue 和 MR
统计一周没有进行更新的 Issue 并生成统计 Issue
示例项目: https://jihulab.com/cloud-native/demo/triage-demo/-/snippets。
目前 gitlab-triage 已经是一个比较完备的工具,在极狐GitLab内部基于该项目孵化了 triage-ops这样的原型来进行内部 dogfooding,并希望将其整合到极狐GitLab 产品当中。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@ZLME.COM 举报,一经查实,立刻删除。