public boolean checkMergeable() { try { int r = 5; Boolean isMergeable = pr.getMergeable(); while (isMergeable == null && r-- > 0) { try { Thread.sleep(1000); } catch (InterruptedException ex) { break; } // If the mergeability state was unknown, we need // to grab the mergeability state from the server. this.getPullRequest(true); isMergeable = pr.getMergeable(); } mergeable = isMergeable != null && isMergeable; } catch (Error e) { LOGGER.log(Level.SEVERE, "Couldn't obtain mergeable status.", e); } catch (IOException e) { LOGGER.log(Level.SEVERE, "Couldn't obtain mergeable status.", e); } return mergeable; }
@Override public void record(@NonNull PullRequestSCMHead head, PullRequestSCMRevision revision, boolean isMatch) { if (isMatch) { Boolean mergeable; try { mergeable = pr.getMergeable(); } catch (IOException e) { throw new GitHubSCMSource.WrappedException(e); } if (Boolean.FALSE.equals(mergeable)) { switch (strategy) { case MERGE: listener.getLogger().format(" Not mergeable, build likely to fail%n"); break; default: listener.getLogger().format(" Not mergeable, but will be built anyway%n"); break; } } } } }
public static Boolean waitForPullRequestToHaveMergable(GHPullRequest pullRequest, long sleepMS, long maximumTimeMS) throws IOException { long end = System.currentTimeMillis() + maximumTimeMS; while (true) { Boolean mergeable = pullRequest.getMergeable(); if (mergeable == null) { GHRepository repository = pullRequest.getRepository(); int number = pullRequest.getNumber(); pullRequest = repository.getPullRequest(number); mergeable = pullRequest.getMergeable(); } if (mergeable != null) { return mergeable; } if (System.currentTimeMillis() > end) { return null; } try { Thread.sleep(sleepMS); } catch (InterruptedException e) { // ignore } } } }
public static boolean isMergeable(GHPullRequest pullRequest) throws IOException { boolean canMerge = false; Boolean mergeable = pullRequest.getMergeable(); GHPullRequest single = null; if (mergeable == null) { single = pullRequest.getRepository().getPullRequest(pullRequest.getNumber()); mergeable = single.getMergeable(); } if (mergeable == null) { LOG.warn("Mergeable flag is still null on pull request " + pullRequest.getHtmlUrl() + " assuming its still mergable. Probably a caching issue and this flag may appear again later"); return true; } if (mergeable != null && mergeable.booleanValue()) { canMerge = true; } return canMerge; }
public static Boolean waitForPullRequestToHaveMergable(GHPullRequest pullRequest, long sleepMS, long maximumTimeMS) throws IOException { long end = System.currentTimeMillis() + maximumTimeMS; while (true) { Boolean mergeable = pullRequest.getMergeable(); if (mergeable == null) { GHRepository repository = pullRequest.getRepository(); int number = pullRequest.getNumber(); pullRequest = repository.getPullRequest(number); mergeable = pullRequest.getMergeable(); } if (mergeable != null) { return mergeable; } if (System.currentTimeMillis() > end) { return null; } try { Thread.sleep(sleepMS); } catch (InterruptedException e) { // ignore } } } }
public static boolean isMergeable(GHPullRequest pullRequest) throws IOException { boolean canMerge = false; Boolean mergeable = pullRequest.getMergeable(); GHPullRequest single = null; if (mergeable == null) { single = pullRequest.getRepository().getPullRequest(pullRequest.getNumber()); mergeable = single.getMergeable(); } if (mergeable == null) { LOG.warn("Mergeable flag is still null on pull request " + pullRequest.getHtmlUrl() + " assuming its still mergable. Probably a caching issue and this flag may appear again later"); return true; } if (mergeable != null && mergeable.booleanValue()) { canMerge = true; } return canMerge; }
@Override public GitHubPRCause check(@Nonnull GitHubPRDecisionContext prDecisionContext) throws IOException { TaskListener listener = prDecisionContext.getListener(); GHPullRequest remotePR = prDecisionContext.getRemotePR(); final PrintStream logger = listener.getLogger(); Boolean mergeable; try { mergeable = remotePR.getMergeable(); } catch (IOException e) { listener.error(DISPLAY_NAME + ": can't get mergeable status {}", e); LOGGER.warn("Can't get mergeable status: {}", e); mergeable = false; } mergeable = mergeable != null ? mergeable : false; if (!mergeable) { return prDecisionContext.newCause(DISPLAY_NAME, isSkip()); } return null; }
int counter = 0; Boolean isMergeable = pr.getMergeable(); boolean isMerged = pr.isMerged(); while (isMergeable == null && !isMerged && counter++ < WAIT_COUNTER) { Thread.sleep(WAIT_TIMEOUT); isMergeable = pr.getMergeable(); isMerged = pr.isMerged();