:- package find_owners.
'$init'.

%:- public add_may_label/2.
%:- public remove_may_label/2.
%:- public remove_need_label/2.
%:- public submit_filter/2.
%:- public submit_filter/3.
%:- public submit_rule/1.
%:- public submit_rule/2.

% Default required vote value is set in Checker,
% by reading the gerrit.config and project config files.
submit_rule(S) :- submit_rule(S, 0).
submit_filter(In, Out) :- submit_filter(In, Out, 0).

submit_rule(S, N) :-
  gerrit:default_submit(D),
  submit_filter(D, S, N).

submit_filter(In, Out, N) :-
  add_owner_approval_label(In, Out, N), !.

% Do nothing if add_owner_approval_label fails.
submit_filter(X, X, _).

owner_approved('Owner-Approved').

owner_approval_missing('Owner-Review-Vote').

owner_approval_label(X) :- owner_approved(X).
owner_approval_label(X) :- owner_approval_missing(X).

% Do nothing if X contains owner_approval_label.
add_owner_approval_label(In, Out, _) :-
  In =.. [submit|L],
  has_owner_approval_label(L), !,
  Out =.. [submit|L],
  !.

add_owner_approval_label(In, Out, N) :-
  In =.. [submit|L],
  % check_owner_approval(n, R) checks Code-Review votes with value >= n,
  % then set R to -1/0/1 to mean owner approval is missing/unneeded/complete.
  check_owner_approval(N, R), !,
  create_owner_approval_label(R, Label),
  Out =.. [submit|[Label|L]].

create_owner_approval_label(0, label(X, may(_))) :-
  owner_approved(X), !.
create_owner_approval_label(N, label(X, ok(user(1)))) :-
  N > 0, owner_approved(X), !.
create_owner_approval_label(_, label(X, need(_))) :-
  owner_approval_missing(X).

has_owner_approval_label([label(X, _)|_]) :- owner_approval_label(X).
has_owner_approval_label([_|L]) :- has_owner_approval_label(L).

% Remove the grey label('Owner-Approval',may(_)) to avoid confusion.
remove_may_label(In, Out) :-
  In =.. [submit|L1],
  owner_approved(N),
  cleanup_label(label(N, may(_)), L1, L2),
  Out =.. [submit|L2],
  !.
remove_may_label(X, X).

% Remove label('Owner-Review-Vote',need(_)) for special changes.
remove_need_label(In, Out) :-
  In =.. [submit|L1],
  owner_approval_missing(N),
  cleanup_label(label(N, need(_)), L1, L2),
  Out =.. [submit|L2],
  !.
remove_need_label(X, X).

cleanup_label(_, [], []).
cleanup_label(N, [X|L1], L2) :- N = X, !, cleanup_label(N, L1, L2).
cleanup_label(N, [X|L1], [X|L2]) :- cleanup_label(N, L1, L2).

% Add label('Owner-Approval',may(_)) to skip owner approval check.
add_may_label(In, Out) :-
  remove_may_label(In, Tmp1),
  remove_need_label(Tmp1, Tmp2),
  Tmp2 =.. [submit|L],
  owner_approved(N),
  Out =.. [submit|[label(N, may(_))|L]],
  !.
add_may_label(X, X).
