@Override public GHPullRequest apply(GHPullRequest remotePR) { if (remotePR.getState() == OPEN) { localRepo.getPulls().put(remotePR.getNumber(), new GitHubPRPullRequest(remotePR)); } else if (remotePR.getState() == CLOSED) { localRepo.getPulls().remove(remotePR.getNumber()); // don't store } return remotePR; } }
private void closeFailedRequest(TaskListener listener, GhprbCause c) { try { GHPullRequest pr = repo.getActualPullRequest(c.getPullID()); if (pr.getState().equals(GHIssueState.OPEN)) { repo.closePullRequest(c.getPullID()); } } catch (IOException ex) { listener.getLogger().println("Can't close pull request"); ex.printStackTrace(listener.getLogger()); } }
@Override public GitHubPRCause check(@Nonnull GitHubPRDecisionContext prDecisionContext) throws IOException { TaskListener listener = prDecisionContext.getListener(); GitHubPRPullRequest localPR = prDecisionContext.getLocalPR(); GHPullRequest remotePR = prDecisionContext.getRemotePR(); if (remotePR.getState() == CLOSED) { return null; // already closed, nothing to check } GitHubPRCause cause = null; String causeMessage = "PR opened"; if (isNull(localPR)) { // new final PrintStream logger = listener.getLogger(); logger.println(DISPLAY_NAME + ": state has changed (PR was opened)"); cause = prDecisionContext.newCause(causeMessage, false); } return cause; }
@Override public GitHubPRCause check(@Nonnull GitHubPRDecisionContext prDecisionContext) throws IOException { TaskListener listener = prDecisionContext.getListener(); GHPullRequest remotePR = prDecisionContext.getRemotePR(); final PrintStream logger = listener.getLogger(); final GitHubPRPullRequest localPR = prDecisionContext.getLocalPR(); if (isNull(localPR)) { return null; } GitHubPRCause cause = null; // must be closed once if (remotePR.getState().equals(GHIssueState.CLOSED)) { logger.println(DISPLAY_NAME + ": state has changed (PR was closed)"); cause = prDecisionContext.newCause("PR was closed", false); } return cause; }
@Override public GitHubPRCause check(@Nonnull GitHubPRDecisionContext prDecisionContext) throws IOException { TaskListener listener = prDecisionContext.getListener(); GHPullRequest remotePR = prDecisionContext.getRemotePR(); GitHubPRPullRequest localPR = prDecisionContext.getLocalPR(); if (remotePR.getState().equals(GHIssueState.CLOSED)) { //TODO check whether push to closed allowed? return null; // already closed, nothing to check } if (isNull(localPR)) { // new return null; // not interesting for this event } GitHubPRCause cause = null; GHCommitPointer head = remotePR.getHead(); if (!localPR.getHeadSha().equals(head.getSha())) { LOGGER.debug("New commit. Sha: {} => {}", localPR.getHeadSha(), head.getSha()); final PrintStream logger = listener.getLogger(); logger.println(this.getClass().getSimpleName() + ": new commit found, sha " + head.getSha()); // GHUser user = head.getUser(); cause = prDecisionContext.newCause(DISPLAY_NAME, false); } return cause; }
@Override public GitHubPRCause check(@Nonnull GitHubPRDecisionContext prDecisionContext) throws IOException { TaskListener listener = prDecisionContext.getListener(); GHPullRequest remotePR = prDecisionContext.getRemotePR(); if (remotePR.getState().equals(GHIssueState.CLOSED)) { return null; // already closed, skip check? } GitHubPRCause cause = null; Collection<GHLabel> remoteLabels = remotePR.getRepository().getIssue(remotePR.getNumber()).getLabels(); Set<String> existingLabels = new HashSet<>(); for (GHLabel ghLabel : remoteLabels) { existingLabels.add(ghLabel.getName()); } existingLabels.retainAll(label.getLabelsSet()); if (existingLabels.isEmpty()) { final PrintStream logger = listener.getLogger(); LOG.debug("{}:{} not found", DISPLAY_NAME, label.getLabelsSet()); logger.println(DISPLAY_NAME + ": " + label.getLabelsSet() + " not found"); cause = prDecisionContext.newCause(label.getLabelsSet() + " labels not exist", isSkip()); } return cause; }
@Override public GitHubPRCause check(@Nonnull GitHubPRDecisionContext prDecisionContext) throws IOException { TaskListener listener = prDecisionContext.getListener(); GHPullRequest remotePR = prDecisionContext.getRemotePR(); if (remotePR.getState().equals(GHIssueState.CLOSED)) { return null; // already closed, skip check? } GitHubPRCause cause = null; Collection<GHLabel> remoteLabels = remotePR.getRepository().getIssue(remotePR.getNumber()).getLabels(); Set<String> existingLabels = new HashSet<>(); for (GHLabel ghLabel : remoteLabels) { existingLabels.add(ghLabel.getName()); } if (existingLabels.containsAll(label.getLabelsSet())) { final PrintStream logger = listener.getLogger(); logger.println(DISPLAY_NAME + ": " + label.getLabelsSet() + " found"); cause = prDecisionContext.newCause(label.getLabelsSet() + " labels exist", isSkip()); } return cause; }
@Override public GitHubPRCause check(@Nonnull GitHubPRDecisionContext prDecisionContext) throws IOException { TaskListener listener = prDecisionContext.getListener(); GitHubPRPullRequest localPR = prDecisionContext.getLocalPR(); GHPullRequest remotePR = prDecisionContext.getRemotePR(); if (remotePR.getState().equals(GHIssueState.CLOSED)) { return null; // already closed, skip check? } if (isNull(label)) { LOG.error("Label is null. Bad configured event: {}", getDescriptor().getDisplayName()); throw new IllegalStateException("Label is null. Bad configured event: " + getDescriptor().getDisplayName()); } //localPR exists before, checking for changes if (localPR != null && localPR.getLabels().containsAll(label.getLabelsSet())) { return null; // label existed before exiting } GitHubPRCause cause = null; Collection<GHLabel> labels = remotePR.getRepository().getIssue(remotePR.getNumber()).getLabels(); Set<String> existingLabels = new HashSet<String>(); for (GHLabel curLabel : labels) { existingLabels.add(curLabel.getName()); } if (existingLabels.containsAll(label.getLabelsSet())) { final PrintStream logger = listener.getLogger(); logger.println(DISPLAY_NAME + ": state has changed (" + label.getLabelsSet() + " labels were added"); cause = prDecisionContext.newCause(label.getLabelsSet() + " labels were added", false); } return cause; }
GHPullRequest remotePR = prDecisionContext.getRemotePR(); if (remotePR.getState().equals(GHIssueState.CLOSED)) { return null; // already closed, skip check?
state = pr.getState().toString(); body = pr.getBody();