package se.bjurr.prnfb.listener; import com.atlassian.bitbucket.event.pull.PullRequestEvent; import com.atlassian.bitbucket.event.pull.PullRequestRescopedEvent; import se.bjurr.prnfb.settings.PrnfbNotification; public enum PrnfbPullRequestAction { APPROVED, // BUTTON_TRIGGER, // COMMENTED, // DECLINED, // MERGED, // OPENED, // REOPENED, // RESCOPED, // RESCOPED_FROM, // RESCOPED_TO, // UNAPPROVED, // UPDATED, REVIEWED; // public static PrnfbPullRequestAction fromPullRequestEvent( PullRequestEvent event, PrnfbNotification notification) { if (event instanceof PullRequestRescopedEvent) { PullRequestRescopedEvent rescopedEvent = (PullRequestRescopedEvent) event; boolean toChanged = !rescopedEvent .getPreviousToHash() .equals(rescopedEvent.getPullRequest().getToRef().getLatestCommit()); boolean fromChanged = !rescopedEvent .getPreviousFromHash() .equals(rescopedEvent.getPullRequest().getFromRef().getLatestCommit()); if (fromChanged && !toChanged) { return RESCOPED_FROM; } else if (toChanged && !fromChanged) { return RESCOPED_TO; } else { if (notification.getTriggers().contains(RESCOPED_FROM)) { return RESCOPED_FROM; } else if (notification.getTriggers().contains(RESCOPED_TO)) { return RESCOPED_TO; } } } return PrnfbPullRequestAction.valueOf(event.getAction().name()); } }