monitorjbl / pr-harmony

Extra pull request workflows for Stash
GNU General Public License v3.0
33 stars 17 forks source link

If Required Reviewers is not specified, PR can't be merged at all even it is approved by member of RequiredReviewerGroups #43

Open indrgun opened 8 years ago

indrgun commented 8 years ago

If Required Reviewers field is empty, and the Required Reviewers Group(s) is specified, Pull Request can't be merged even if a user in Required Reviewers Group approves it regardless of the specified number of reviews required.

This:

public Set<String> missingRevieiwers(PullRequest pr) {
    Map<String, PullRequestParticipant> map = transformReviewers(pr);
    Set<String> missingReviewers = newHashSet();

    for(String req : concat(config.getRequiredReviewers(), utils.dereferenceGroups(config.getRequiredReviewerGroups()))) {
      if(reviewerIsMissing(map.get(req)) && !(submitterIsRequiredReviewer(pr, req) && exactlyEnoughRequiredReviewers())) {
        missingReviewers.add(req);
      }
    }
    return missingReviewers;
 }

The

!(submitterIsRequiredReviewer(pr, req) && exactlyEnoughRequiredReviewers())

will always be true because exactlyEnoughRequiredReviewers() is always false.

Boolean exactlyEnoughRequiredReviewers() {
    return Objects.equals(config.getRequiredReviewers().size(), config.getRequiredReviews());
  }

it is always false because the size of Required Reviewers is 0 (empty vs. the specified number of reviews required.)

Stash version : v3.11.2