2016-04-19 28 views

回答

2

此代碼工作按照以下方案

1-當詹金斯用戶給予-1投票,這將禁用提交按鈕

2-當詹金斯用戶給予+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]). 
+0

感謝您與我們分享您的解決方案!您可以稍微簡化一下:'X = .. [submit | Ls]'與'X = submit(Ls)'完全相同。同樣,'S =提交(R)'。 – mat

+0

@mat我是新的prolog。感謝您強調這些優化。 –

+0

你可以對你的答案做出這些改變! – mat