Skip to content

Commit

Permalink
fallback to build if gitscm not found in job
Browse files Browse the repository at this point in the history
  • Loading branch information
LeoQuote committed Apr 3, 2023
1 parent b39eda4 commit fbfc326
Showing 1 changed file with 15 additions and 1 deletion.
16 changes: 15 additions & 1 deletion src/main/java/io/jenkins/plugins/checks/github/SCMFacade.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

import com.cloudbees.plugins.credentials.CredentialsMatchers;
import com.cloudbees.plugins.credentials.CredentialsProvider;
import com.cloudbees.plugins.credentials.domains.DomainRequirement;
import com.cloudbees.plugins.credentials.domains.URIRequirementBuilder;
import edu.umd.cs.findbugs.annotations.CheckForNull;
import hudson.model.AbstractProject;
Expand Down Expand Up @@ -123,16 +124,29 @@ UserRemoteConfig getUserRemoteConfig(final GitSCM scm) {
* @return the found GitHub App credentials or empty
*/
public Optional<GitHubAppCredentials> findGitHubAppCredentials(final Job<?, ?> job, final String credentialsId) {
List<DomainRequirement> repoUrl = getDomainRequirements(job);
List<GitHubAppCredentials> credentials = Collections.singletonList(CredentialsProvider.findCredentialById(
credentialsId,
GitHubAppCredentials.class,
job.getLastBuild(),
URIRequirementBuilder.fromUri(getUserRemoteConfig((GitSCM) this.getScm(job)).getUrl()).build()));
repoUrl));
GitHubAppCredentials appCredentials =
CredentialsMatchers.firstOrNull(credentials, CredentialsMatchers.withId(credentialsId));
return Optional.ofNullable(appCredentials);
}

private List<DomainRequirement> getDomainRequirements(Job<?, ?> job) {
Optional<GitSCM> scmFromJob = findGitSCM(job);
Optional<GitSCM> scmFromBuild = findGitSCM(job.getLastBuild());
List<DomainRequirement> repoUrl = null;
if (scmFromJob.isPresent()) {
repoUrl = URIRequirementBuilder.fromUri(getUserRemoteConfig(scmFromJob.get()).getUrl()).build();
} else if (scmFromBuild.isPresent()) {
repoUrl = URIRequirementBuilder.fromUri(getUserRemoteConfig(scmFromBuild.get()).getUrl()).build();
}
return repoUrl;
}

/**
* Find {@link SCMHead} (or branch) used by the {@code job}.
*
Expand Down

0 comments on commit fbfc326

Please sign in to comment.