Git 如何在Gerrit prolog中不通过rest api获得特定的审阅者投票?

Git 如何在Gerrit prolog中不通过rest api获得特定的审阅者投票?,git,jenkins,prolog,gerrit,Git,Jenkins,Prolog,Gerrit,我有gerrit jenkins的支持。 我无法在gerrit prolog文档中找到解决方案此代码根据以下场景工作 1-当jenkins用户投-1票时,它将禁用提交按钮 2-当jenkins用户投+1票时,它将启用提交按钮 submit_rule(S) :- gerrit:default_submit(X), X =.. [submit | Ls], add_non_author_approval(Ls, R), S =.. [submit | R]. sco

我有gerrit jenkins的支持。
我无法在gerrit prolog文档中找到解决方案

此代码根据以下场景工作

1-当jenkins用户投-1票时,它将禁用提交按钮

2-当jenkins用户投+1票时,它将启用提交按钮

submit_rule(S) :-
    gerrit:default_submit(X),
    X =.. [submit | Ls],
    add_non_author_approval(Ls, R),
    S =.. [submit | R].

score(Category, Score) :-
    gerrit:commit_label(label(Category, Score), user(1000002)).

add_non_author_approval(S1, S2) :-
    gerrit:commit_label(label('Code-Review', 1), user(1000001)),
    A = user(1000002),
    gerrit:commit_label(label('Code-Review', 2), R),
    R \= A, !,
    S2 = [label('Non-Author-Code-Review', ok(R)) | S1].

add_non_author_approval(S1, [label('Non-Author-Code-Review', need(_)) | S1]).

感谢您分享您的解决方案!您可以稍微简化一下:
X=。。[submit | Ls]
与:
X=submit(Ls)
完全相同。类似地,
S=submit(R)
@mat我对prolog是新手。感谢您突出显示这些优化。您可以对答案进行这些更改!