如题所述
极狐GitLab 中运用 Epic、Issue、Merge Request 来进行项目规划和管理,从而组织和追踪项目进度。尤其是在 GitLab 主库 gitlab-org/gitlab 存有超过 10W+ 的 Issue 以及 4W+ 打开的 Issue,如果每个 Issue 都需要手动分类管理,将会变得非常困难。
极狐GitLab Triage 是一个基于 gem 管理的工具,旨在让项目经理和 maintainers 能够通过自定义策略自动处理极狐GitLab 项目或组中的 Issue 和 Merge Request。
安装
使用 gem 进行安装,以二进制可执行文件的形式运行在本地或 CI Pipeline 中。
本地运行
gitlab-triage 本质上是一个 CLI 工具,可以在本地与极狐GitLab CI 或是任何可以运行 CLI 的环境与平台运行。
使用 --all-projects 来指定对于 $JH_GITLAB_API_TOKEN 所有可见的资源。
使用 --host-url 指定需要添加 https 或 http,也可以在策略文件中指定 host_url。
在极狐GitLab CI Pipeline 中运行
可以使用 —init-ci 选项生成示例 .gitlab-ci.yml 文件。
推荐使用极狐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 来保存所有策略。
可以使用 --init 选项命令生成示例策略文件。
支持的资源:
使用 rules (array 类型) 字段来定义所有策略,如:
策略字段
gitlab-triage 提供了丰富的策略字段,描述策略的主体部分由4个字段组成:
name:声明策略名称和用途
condition:声明策略的执行条件
limits:声明限制运行 action 的资源数量
action:声明对满足条件资源进行的操作
condition 字段提供了 14 种条件类型,同时 ruby 字段还可以执行 ruby 表达式来进行判断;action 也提供了多种操作,还可以在 comment 中配合 极狐 GitLab quick actions 进行更多的操作,详细内容请参考官方文档。
插件系统
可以使用插件来定制策略。使用 -r 或 --request 在执行操作前加载一个 ruby 文件,在该文件中完成想要进行的操作。如 my_plugin.rb 这个文件:
执行命令
现在就可以在 ruby 中判断 has_severity_label 了
场景推荐
一般情况下,会新建一个 Bot 用户用来完成 Triage 的任务,这样可以做到很精细的管理。
下面是一些比较常见的使用场景:
示例项目: jihulab.com/cloud-nativ...
目前 gitlab-triage 已经是一个比较完备的工具,在极狐GitLab 内部基于该项目孵化了 triage-ops[10] 这样的原型来进行内部 dogfooding,并希望将其整合到极狐GitLab 产品当中。
极狐GitLab Triage 是一个基于 gem 管理的工具,旨在让项目经理和 maintainers 能够通过自定义策略自动处理极狐GitLab 项目或组中的 Issue 和 Merge Request。
安装
使用 gem 进行安装,以二进制可执行文件的形式运行在本地或 CI Pipeline 中。
本地运行
gitlab-triage 本质上是一个 CLI 工具,可以在本地与极狐GitLab CI 或是任何可以运行 CLI 的环境与平台运行。
使用 --all-projects 来指定对于 $JH_GITLAB_API_TOKEN 所有可见的资源。
使用 --host-url 指定需要添加 https 或 http,也可以在策略文件中指定 host_url。
在极狐GitLab CI Pipeline 中运行
可以使用 —init-ci 选项生成示例 .gitlab-ci.yml 文件。
推荐使用极狐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 来保存所有策略。
可以使用 --init 选项命令生成示例策略文件。
支持的资源:
使用 rules (array 类型) 字段来定义所有策略,如:
策略字段
gitlab-triage 提供了丰富的策略字段,描述策略的主体部分由4个字段组成:
name:声明策略名称和用途
condition:声明策略的执行条件
limits:声明限制运行 action 的资源数量
action:声明对满足条件资源进行的操作
condition 字段提供了 14 种条件类型,同时 ruby 字段还可以执行 ruby 表达式来进行判断;action 也提供了多种操作,还可以在 comment 中配合 极狐 GitLab quick actions 进行更多的操作,详细内容请参考官方文档。
插件系统
可以使用插件来定制策略。使用 -r 或 --request 在执行操作前加载一个 ruby 文件,在该文件中完成想要进行的操作。如 my_plugin.rb 这个文件:
执行命令
现在就可以在 ruby 中判断 has_severity_label 了
场景推荐
一般情况下,会新建一个 Bot 用户用来完成 Triage 的任务,这样可以做到很精细的管理。
下面是一些比较常见的使用场景:
示例项目: jihulab.com/cloud-nativ...
目前 gitlab-triage 已经是一个比较完备的工具,在极狐GitLab 内部基于该项目孵化了 triage-ops[10] 这样的原型来进行内部 dogfooding,并希望将其整合到极狐GitLab 产品当中。
温馨提示:答案为网友推荐,仅供参考