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