blob: 55d9a60779eaa8e97208e55aa89efb329ea3ba7a [file] [log] [blame]
% If Bot-Commit+1 vote exists, replace all `need(_)` votes on Code-Review and
% Verified with `may(_)` votes.
% `ok(_)`s and `reject(_)`s are preserved.
% This means that Code-Review and Verified labels are never needed to submit a
% change, but may be approved or rejected.
submit_filter(In, Out) :-
gerrit:commit_label(label('Bot-Commit', 1), _),
!,
In =.. [submit | A],
filter_label('Code-Review', A, B),
filter_label('Verified', B, C),
Out =.. [submit | C].
% If Bot-Commit+1 is not present, do nothing.
submit_filter(In, In).
% Replace instances of `label(Name, need(_))` with `label(Name, may(_))` and
% leave the rest unchanged.
filter_label(_, [], []).
filter_label(Name, [label(Name, need(_)) | Ls], [label(Name, may(_)) | Rs]) :-
!,
filter_label(Name, Ls, Rs).
filter_label(Name, [L | Ls], [L | Rs]) :-
filter_label(Name, Ls, Rs).