diff --git a/pom.xml b/pom.xml index 2f74603..312a66c 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ gitee-jenkins-plugin - 1.0.1-SNAPSHOT + 1.0.3-SNAPSHOT Gitee Jenkins Plugin https://wiki.jenkins-ci.org/display/JENKINS/Gitee+Jenkins+Plugin hpi diff --git a/src/main/java/com/gitee/jenkins/trigger/handler/AbstractWebHookTriggerHandler.java b/src/main/java/com/gitee/jenkins/trigger/handler/AbstractWebHookTriggerHandler.java index d47df2d..a8e5af8 100644 --- a/src/main/java/com/gitee/jenkins/trigger/handler/AbstractWebHookTriggerHandler.java +++ b/src/main/java/com/gitee/jenkins/trigger/handler/AbstractWebHookTriggerHandler.java @@ -16,10 +16,12 @@ import hudson.scm.SCM; import jenkins.model.ParameterizedJobMixIn; import jenkins.triggers.SCMTriggerItem; import net.karneim.pojobuilder.GeneratePojoBuilder; +import org.eclipse.jgit.transport.RemoteConfig; import org.eclipse.jgit.transport.URIish; import java.net.URISyntaxException; import java.util.ArrayList; +import java.util.List; import java.util.logging.Level; import java.util.logging.Logger; @@ -76,11 +78,24 @@ public abstract class AbstractWebHookTriggerHandler implement protected abstract BuildStatusUpdate retrieveBuildStatusUpdate(H hook); - protected URIish retrieveUrIish(WebHook hook) { + protected URIish retrieveUrIish(WebHook hook, GitSCM gitSCM) { + List uris = new ArrayList(); try { if (hook.getRepository() != null) { - return new URIish(hook.getRepository().getUrl()); + uris.add(new URIish(hook.getRepository().getGitSshUrl())); + uris.add(new URIish(hook.getRepository().getGitHttpUrl())); } + // uri 需与当前项目仓库个url一致,避免触发多个构建 + for (RemoteConfig remote : gitSCM.getRepositories()) { + for (URIish remoteURL : remote.getURIs()) { + for (URIish uri : uris) { + if (remoteURL.equals(uri)) { + return uri; + } + } + } + } + } catch (URISyntaxException e) { LOGGER.log(Level.WARNING, "could not parse URL"); } diff --git a/src/main/java/com/gitee/jenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerImpl.java b/src/main/java/com/gitee/jenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerImpl.java index f647cd7..26cd195 100644 --- a/src/main/java/com/gitee/jenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerImpl.java +++ b/src/main/java/com/gitee/jenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerImpl.java @@ -17,6 +17,8 @@ import hudson.model.Run; import hudson.plugins.git.GitSCM; import hudson.plugins.git.RevisionParameterAction; import org.apache.commons.lang.StringUtils; +import org.eclipse.jgit.transport.RemoteConfig; +import org.eclipse.jgit.transport.URIish; import java.util.Collection; import java.util.ArrayList; @@ -150,7 +152,7 @@ class MergeRequestHookTriggerHandlerImpl extends AbstractWebHookTriggerHandler @Override protected RevisionParameterAction createRevisionParameter(NoteHook hook, GitSCM gitSCM) throws NoRevisionToBuildException { - return new RevisionParameterAction(retrieveRevisionToBuild(hook), retrieveUrIish(hook)); + return new RevisionParameterAction(retrieveRevisionToBuild(hook), retrieveUrIish(hook, gitSCM)); } @Override diff --git a/src/main/java/com/gitee/jenkins/trigger/handler/pipeline/PipelineHookTriggerHandlerImpl.java b/src/main/java/com/gitee/jenkins/trigger/handler/pipeline/PipelineHookTriggerHandlerImpl.java index 22088f4..06e83b5 100644 --- a/src/main/java/com/gitee/jenkins/trigger/handler/pipeline/PipelineHookTriggerHandlerImpl.java +++ b/src/main/java/com/gitee/jenkins/trigger/handler/pipeline/PipelineHookTriggerHandlerImpl.java @@ -124,7 +124,7 @@ class PipelineHookTriggerHandlerImpl extends AbstractWebHookTriggerHandler @Override protected RevisionParameterAction createRevisionParameter(PushHook hook, GitSCM gitSCM) throws NoRevisionToBuildException { - return new RevisionParameterAction(retrieveRevisionToBuild(hook, gitSCM), retrieveUrIish(hook)); + return new RevisionParameterAction(retrieveRevisionToBuild(hook, gitSCM), retrieveUrIish(hook, gitSCM)); } @Override