实现机制:
在工程 refs/meta/config 分支下新增 rules.pl文件
步骤:
1. 拉取工程代码
git clone $project_url
cd $project
2.切换分支
#此步骤 执行者必须有访问refs/meta/config权限
git fetch origin +refs/meta/config:refs/meta/config
git checkout refs/meta/config
3.新增文件rules.pl
此规则脚本实现的是 codeviwer 总值必须 >= 3;
其他规则可参照官方文档(http://gerriturl/Documentation/prolog-cookbook.html)
cat rules.pl
sum_list([], 0).
sum_list([H | Rest], Sum) :- sum_list(Rest,Tmp), Sum is H + Tmp.
add_category_min_score(In, Category, Min, P) :-
findall(X, gerrit:commit_label(label(Category,X),R),Z),
sum_list(Z, Sum),
Sum >= Min, !,
gerrit:commit_label(label(Category, V), U),
V >= 1,
!,
P = [label(Category,ok(U)) | In].
add_category_min_score(In, Category,Min,P) :-
P = [label(Category,need(Min)) | In].
submit_rule(S) :-
gerrit:default_submit(X),
X =.. [submit | Ls],
gerrit:remove_label(Ls,label('Code-Review',_),NoCR),
add_category_min_score(NoCR,'Code-Review', 3, Labels),
S =.. [submit | Labels].
4.提交
git add .
git commit -m 'xxx'
git push origin HEAD:refs/meta/config
网友评论