Skip to content

Latest commit

 

History

History
306 lines (289 loc) · 8.7 KB

File metadata and controls

306 lines (289 loc) · 8.7 KB


CI-BOT 功能移植之与prow功能异同调研

CLA

CI-BOT PROW
检查一个Pull Request的CLA状态。提供强制检测CLA状态指令 具备同等功能

处理方案:无

CI-BOT PROW
1. 根据触发指令的人在仓库的权限执行:admin ,write
2. 获取owners文件,触发评论者在owner文件中即具备执行条件
3. 如果为community仓库则需判断PR修改的文件是否包含sig/开头的文件夹
并获取该path下owners文件中是否存在评论者存则具备执行条件
4.隐含触发合入PR功能
prow根据项目配置的owners文件,以及PR改变的文件所在目录的
以及父目录来选择approvers,并且当且仅当涵盖所有文件修改的
目录一个或多个approver执行了approve指令,该PR才会打上approve标签。文档链接
具备/reject指令,表示approver不接受该PR,PR需要修改。

处理方案:approve 插件prow的现有机制更具备优势,处理方案为应用当前prow的机制而不移植CI-BOT机制。

CI-BOT PROW
1.为一个Pull Request添加或者删除lgtm标签;
2.可指定lgtm标签数量,多个则添加lgtm-[login]标签并支持单独为组织或仓库进行数量配置;
3.添加标签的同时判断是否达到合入条件,达到则合入。
1.所有人可以使用/lgtm指令,根据owners文件来确定对PR合入流程有效的/lgtm指令的人
2. 只会存在一个lgtm标签
3. 提供/lbtm指令(look bad to me)

处理方案:prow LGTM插件的现有机制处理方式更优,处理方案为使用当前prow的机制而不移植CI-BOT机制。

CI-BOT PROW
1.支持如/kind bug之类的分类指令并打上如 kind/bug标签
2.支持如/sig kernel之类的sig分组指令并打上如 sig/kernel标签
3.支持如/priority hight之类的优先级标签并打上 priority/hight标签
4.支持/remove-[sig|kind|proiority] *指令移除对应标签
5.任何人在PR或issue上都可以使用上述指令
label插件包含BOT所有功能,且使用方式和结果于CI-BOT一致。

**处理方案:无 **

CI-BOT PROW
1.为仓库的协作者提供/close指令关闭issue或者PR
2.为作者和协作者提供/reopen指令重新开启一个已关闭的issue
lifecycle 插件为issue和PR提供了CI-BOT现有功能。

处理方案:无

CI-BOT PROW
在打上lgtm、approve标签以及手动使用checkPR时会
尝试检测PR合入的条件 是否具备对应标签等 ;合入或给出失败提示
tide 组件会定期检测PR 根据状态触发测试或合并PR,并提供合并的方式配置。

处理方案:使用tide组件。

CI-BOT PROW
支持为issue指定/取消责任人 /[un]assign @xxxx指定责任人 assign插件支持为PR与issue手动触发指定责任人,

**处理方案:无

CI-BOT PROW
希望在版本冻结期内对码云代码合入做权限控制。在仓库中配置需冻结的分支信息
以及冻结分支可合并的owner名字,当在使用/lgtm /approve /check-pr时触发合入PR时
需检测PR的基础分支是否为冻结状态,冻结状态则只有配置的owners可触发合并
无相关功能

处理方案:prow需开发并提供相应功能。

CI-BOT PROW
检测PR commit的数量,判断配置的阈值是否小于commit的数量,符合条件则打上 stat/need-squash 待确认

处理方案:需确认

CI-BOT PROW
根据配置项配置要清除的标签,当PR发生source_branch_change事件时移除对应的标签 支持清除可配置的标签

处理方案:无

CI-BOT PROW
/retest指令在CI-BOT源码中无相关实现 trigger插件会触发测试任务,并给出测试结果反馈;
并支持/retest指令触发测试任务

解决方案:已支持

CI-BOT PROW
在PR创建时根据仓库所属sig组添加sig/* 标签 无相关功能

处理方案:需确认

CI-BOT PROW
CI-BOT 会定时轮询或监听webhook事件检测openEuler/communtiy中仓库配置相关的yaml文件是否有更新,根据跟新的内容创建仓库,创建仓库分支,指定仓库所属sig组管理员。 无相关功能

处理方案:待确认

功能 需移植/开发 优先级 计划用时
CLA签署 —— ——
approve —— ——
LGTM —— ——
label标签
close&reopen
PR合入 —— ——
ASSIGN issue or PR —— ——
冻结期PR合入权限
NEED-SQUASH
清除PR标签
测试用例 —— ——
自动打sig/*标签
自动创仓