diff --git a/pom.xml b/pom.xml index 4ce81137..63c2e458 100644 --- a/pom.xml +++ b/pom.xml @@ -25,7 +25,7 @@ true - 0.2.0 + 0.2.2 1.2.2 1.115 2.8.3 diff --git a/src/main/java/io/jenkins/plugins/checks/github/GitHubChecksPublisher.java b/src/main/java/io/jenkins/plugins/checks/github/GitHubChecksPublisher.java index 47f52979..8c209f1c 100644 --- a/src/main/java/io/jenkins/plugins/checks/github/GitHubChecksPublisher.java +++ b/src/main/java/io/jenkins/plugins/checks/github/GitHubChecksPublisher.java @@ -4,6 +4,7 @@ import java.time.Instant; import java.util.Date; +import edu.umd.cs.findbugs.annotations.Nullable; import hudson.model.TaskListener; import org.apache.commons.lang3.StringUtils; @@ -28,6 +29,7 @@ public class GitHubChecksPublisher extends ChecksPublisher { private static final Logger LOGGER = Logger.getLogger(GitHubChecksPublisher.class.getName()); private final GitHubChecksContext context; + @Nullable private final TaskListener listener; /** @@ -36,7 +38,7 @@ public class GitHubChecksPublisher extends ChecksPublisher { * @param context * a context which contains SCM properties */ - public GitHubChecksPublisher(final GitHubChecksContext context, final TaskListener listener) { + public GitHubChecksPublisher(final GitHubChecksContext context, @Nullable final TaskListener listener) { super(); this.context = context; @@ -57,12 +59,16 @@ public void publish(final ChecksDetails details) { credentials); GHCheckRunBuilder builder = createBuilder(gitHub, new GitHubChecksDetails(details)); builder.create(); - listener.getLogger().println("GitHub checks have been published."); + if (listener != null) { + listener.getLogger().println("GitHub checks have been published."); + } } catch (IllegalStateException | IOException e) { String message = "Failed Publishing GitHub checks: "; LOGGER.log(Level.WARN, message, e); - listener.getLogger().println(message + e); + if (listener != null) { + listener.getLogger().println(message + e); + } } } diff --git a/src/main/java/io/jenkins/plugins/checks/github/GitHubChecksPublisherFactory.java b/src/main/java/io/jenkins/plugins/checks/github/GitHubChecksPublisherFactory.java index 30cab1d6..efb0953a 100644 --- a/src/main/java/io/jenkins/plugins/checks/github/GitHubChecksPublisherFactory.java +++ b/src/main/java/io/jenkins/plugins/checks/github/GitHubChecksPublisherFactory.java @@ -3,6 +3,7 @@ import java.util.Optional; import edu.hm.hafner.util.VisibleForTesting; +import edu.umd.cs.findbugs.annotations.Nullable; import hudson.model.Job; import hudson.model.TaskListener; import org.jenkinsci.plugins.github_branch_source.GitHubSCMSource; @@ -45,23 +46,30 @@ protected Optional createPublisher(final Job job, final T } protected Optional createPublisher(final GitHubChecksContext context, - final TaskListener listener) { + @Nullable final TaskListener listener) { Job job = context.getJob(); Optional source = scmFacade.findGitHubSCMSource(job); if (!source.isPresent()) { - listener.getLogger().println("Skipped publishing GitHub checks: no GitHub SCM found."); + if (listener != null) { + listener.getLogger().println("Skipped publishing GitHub checks: no GitHub SCM found."); + } return Optional.empty(); } String credentialsId = source.get().getCredentialsId(); if (credentialsId == null || !scmFacade.findGitHubAppCredentials(job, credentialsId).isPresent()) { - listener.getLogger().println("Skipped publishing GitHub checks: no GitHub APP credentials found, " - + "see https://github.com/jenkinsci/github-branch-source-plugin/blob/master/docs/github-app.adoc"); + if (listener != null) { + listener.getLogger().println("Skipped publishing GitHub checks: no GitHub APP credentials found, " + + "see " + + "https://github.com/jenkinsci/github-branch-source-plugin/blob/master/docs/github-app.adoc"); + } return Optional.empty(); } - listener.getLogger().println("Publishing GitHub checks..."); + if (listener != null) { + listener.getLogger().println("Publishing GitHub checks..."); + } return Optional.of(new GitHubChecksPublisher(context, listener)); } }