public Map<String, List<GHCommitStatus>> getCommitStatuses() throws IOException { final GHRepository githubRepository = this.build.getGithubRepository(); final List<GHCommitStatus> commitStatuses = githubRepository.getCommit(this.build.getSha()).listStatuses().asList(); final Map<String, List<GHCommitStatus>> groupedStatuses = new HashMap<>(); for (final GHCommitStatus status : commitStatuses) { final String context = status.getContext(); if (groupedStatuses.get(context) == null) { groupedStatuses.put(context, new ArrayList<>()); } groupedStatuses.get(context).add(status); } groupedStatuses.put("- Latest Status -", Arrays.asList(githubRepository.getLastCommitStatus(this.build.getSha()))); return groupedStatuses; } }
@CheckForNull GHCommitStatus getCommitStatusForContext(GHPullRequest pr, String context) { List<GHCommitStatus> statuses; try { statuses = pr.getRepository().listCommitStatuses(pr.getHead().getSha()).asList(); } catch (IOException e) { throw new IllegalStateException("Unable to retrieve commit statuses.", e); } for (GHCommitStatus status : statuses) { if (context.equals(status.getContext())) { return status; } } return null; } }