parent
ba9dc1aa7b
commit
78b74b6563
|
@ -28,6 +28,7 @@ Gitee Jenkins Plugin 是码云基于 [GitLab Plugin](https://github.com/jenkinsc
|
||||||
|
|
||||||
## 目前支持特性:
|
## 目前支持特性:
|
||||||
- 推送代码到码云时,由配置的 WebHook 触发 Jenkins 任务构建。
|
- 推送代码到码云时,由配置的 WebHook 触发 Jenkins 任务构建。
|
||||||
|
- 评论提交记录触发提交记录对应版本 Jenkins 任务构建
|
||||||
- 提交 Pull Request 到码云项目时,由配置的 WebHook 触发 Jenkins 任务构建,支持PR动作:新建,更新,接受,关闭,审查通过,测试通过。
|
- 提交 Pull Request 到码云项目时,由配置的 WebHook 触发 Jenkins 任务构建,支持PR动作:新建,更新,接受,关闭,审查通过,测试通过。
|
||||||
- 支持 [ci-skip] 指令过滤 或者 [ci-build] 指令触发构建。
|
- 支持 [ci-skip] 指令过滤 或者 [ci-build] 指令触发构建。
|
||||||
- 过滤已经构建的 Commit 版本,若是分支 Push,则相同分支Push才过滤,若是 PR,则是同一个PR才过滤。
|
- 过滤已经构建的 Commit 版本,若是分支 Push,则相同分支Push才过滤,若是 PR,则是同一个PR才过滤。
|
||||||
|
@ -121,17 +122,22 @@ Gitee Jenkins Plugin 是码云基于 [GitLab Plugin](https://github.com/jenkinsc
|
||||||
|
|
||||||
1. ``Enabled Gitee triggers`` 勾选您所需要的构建触发规则,如 `Push Event`, `Opened Merge Request Events`,勾选的事件会接受WebHook,触发构建。目前支持触发事件有:
|
1. ``Enabled Gitee triggers`` 勾选您所需要的构建触发规则,如 `Push Event`, `Opened Merge Request Events`,勾选的事件会接受WebHook,触发构建。目前支持触发事件有:
|
||||||
- Push Events :推送代码事件
|
- Push Events :推送代码事件
|
||||||
|
- Commit Comment Events :评论提交记录事件
|
||||||
- Opened Merge Request Events :提交 PR 事件
|
- Opened Merge Request Events :提交 PR 事件
|
||||||
- Updated Merge Request Events :更新 PR 事件
|
- Updated Merge Request Events :更新 PR 事件
|
||||||
- Accepted Merge Request Events :接受/合并 PR 事件
|
- Accepted Merge Request Events :接受/合并 PR 事件
|
||||||
- Closed Merge Request Events :关闭 PR 事件
|
- Closed Merge Request Events :关闭 PR 事件
|
||||||
- Approved Pull Requests : 审查通过 PR 事件
|
- Approved Pull Requests : 审查通过 PR 事件
|
||||||
- Tested Pull Requests :测试通过 PR 事件
|
- Tested Pull Requests :测试通过 PR 事件
|
||||||
2. `Enable [ci-skip]` 该选项可以开启支持 `[ci-skip]` 指令,只要commit message 中包含 `[ci-skip]`,当前commit 即可跳过构建触发。
|
2. `Build Instruction Filter` :
|
||||||
|
- `None` : 无过滤
|
||||||
|
- `[ci-skip] skip build` :commit message 或者 PR 说明包含 `[ci-skip]` 时,跳过构建触发。
|
||||||
|
- `[ci-build] trigger build` :commit message 或者 PR 说明包含 `[ci-build]` 时,触发构建。
|
||||||
3. `Ignore last commit has build` 该选项可以跳过已经构建过的 Commit 版本。
|
3. `Ignore last commit has build` 该选项可以跳过已经构建过的 Commit 版本。
|
||||||
4. `Allowed branches` 可以配置允许构建的分支,目前支持分支名和正则表达式的方式进行过滤。
|
4. `Cancel incomplete build on same Pull Requests` 该选项在 PR 触发构建时,会判断是否存在相同 PR 且未完成的构建,有则取消未完成构建,再进行当前构建。
|
||||||
5. `Secret Token for Gitee WebHook` 该选项可以配置 WebHook 的密码,该密码需要与码云 WebHook配置的密码一致方可触发构建。
|
5. `Allowed branches` 可以配置允许构建的分支,目前支持分支名和正则表达式的方式进行过滤。
|
||||||
6. 注意:若 PR 状态为不可自动合并,则不触发构建。
|
6. `Secret Token for Gitee WebHook` 该选项可以配置 WebHook 的密码,该密码需要与码云 WebHook配置的密码一致方可触发构建。
|
||||||
|
7. 注意:若 PR 状态为不可自动合并,则不触发构建。
|
||||||
|
|
||||||
![触发器配置](https://images.gitee.com/uploads/images/2018/0724/120539_106f7480_58426.png "屏幕截图.png")
|
![触发器配置](https://images.gitee.com/uploads/images/2018/0724/120539_106f7480_58426.png "屏幕截图.png")
|
||||||
|
|
||||||
|
|
|
@ -65,6 +65,7 @@ public class GiteePushTrigger extends Trigger<Job<?, ?>> {
|
||||||
private static final SecureRandom RANDOM = new SecureRandom();
|
private static final SecureRandom RANDOM = new SecureRandom();
|
||||||
|
|
||||||
private boolean triggerOnPush = true;
|
private boolean triggerOnPush = true;
|
||||||
|
private boolean triggerOnCommitComment = false;
|
||||||
private boolean triggerOnOpenPullRequest = true;
|
private boolean triggerOnOpenPullRequest = true;
|
||||||
private boolean triggerOnPipelineEvent = false;
|
private boolean triggerOnPipelineEvent = false;
|
||||||
private boolean triggerOnAcceptedPullRequest = false;
|
private boolean triggerOnAcceptedPullRequest = false;
|
||||||
|
@ -109,6 +110,7 @@ public class GiteePushTrigger extends Trigger<Job<?, ?>> {
|
||||||
@Deprecated
|
@Deprecated
|
||||||
@GeneratePojoBuilder(intoPackage = "*.builder.generated", withFactoryMethod = "*")
|
@GeneratePojoBuilder(intoPackage = "*.builder.generated", withFactoryMethod = "*")
|
||||||
public GiteePushTrigger(boolean triggerOnPush,
|
public GiteePushTrigger(boolean triggerOnPush,
|
||||||
|
boolean triggerOnCommitComment,
|
||||||
boolean triggerOnOpenPullRequest,
|
boolean triggerOnOpenPullRequest,
|
||||||
String triggerOnUpdatePullRequest,
|
String triggerOnUpdatePullRequest,
|
||||||
boolean triggerOnAcceptedPullRequest,
|
boolean triggerOnAcceptedPullRequest,
|
||||||
|
@ -123,6 +125,7 @@ public class GiteePushTrigger extends Trigger<Job<?, ?>> {
|
||||||
boolean triggerOnApprovedPullRequest, String pendingBuildName, boolean cancelPendingBuildsOnUpdate,
|
boolean triggerOnApprovedPullRequest, String pendingBuildName, boolean cancelPendingBuildsOnUpdate,
|
||||||
boolean cancelIncompleteBuildOnSamePullRequest) {
|
boolean cancelIncompleteBuildOnSamePullRequest) {
|
||||||
this.triggerOnPush = triggerOnPush;
|
this.triggerOnPush = triggerOnPush;
|
||||||
|
this.triggerOnCommitComment = triggerOnCommitComment;
|
||||||
this.triggerOnOpenPullRequest = triggerOnOpenPullRequest;
|
this.triggerOnOpenPullRequest = triggerOnOpenPullRequest;
|
||||||
this.triggerOnUpdatePullRequest = triggerOnUpdatePullRequest;
|
this.triggerOnUpdatePullRequest = triggerOnUpdatePullRequest;
|
||||||
this.triggerOnAcceptedPullRequest = triggerOnAcceptedPullRequest;
|
this.triggerOnAcceptedPullRequest = triggerOnAcceptedPullRequest;
|
||||||
|
@ -225,6 +228,10 @@ public class GiteePushTrigger extends Trigger<Job<?, ?>> {
|
||||||
return triggerOnPush;
|
return triggerOnPush;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isTriggerOnCommitComment() {
|
||||||
|
return triggerOnCommitComment;
|
||||||
|
}
|
||||||
|
|
||||||
public boolean getTriggerOnOpenPullRequest() {
|
public boolean getTriggerOnOpenPullRequest() {
|
||||||
return triggerOnOpenPullRequest;
|
return triggerOnOpenPullRequest;
|
||||||
}
|
}
|
||||||
|
@ -332,6 +339,11 @@ public class GiteePushTrigger extends Trigger<Job<?, ?>> {
|
||||||
this.triggerOnPush = triggerOnPush;
|
this.triggerOnPush = triggerOnPush;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@DataBoundSetter
|
||||||
|
public void setTriggerOnCommitComment(boolean triggerOnCommitComment) {
|
||||||
|
this.triggerOnCommitComment = triggerOnCommitComment;
|
||||||
|
}
|
||||||
|
|
||||||
@DataBoundSetter
|
@DataBoundSetter
|
||||||
public void setTriggerOnApprovedPullRequest(boolean triggerOnApprovedPullRequest) {
|
public void setTriggerOnApprovedPullRequest(boolean triggerOnApprovedPullRequest) {
|
||||||
this.triggerOnApprovedPullRequest = triggerOnApprovedPullRequest;
|
this.triggerOnApprovedPullRequest = triggerOnApprovedPullRequest;
|
||||||
|
@ -535,7 +547,7 @@ public class GiteePushTrigger extends Trigger<Job<?, ?>> {
|
||||||
skipWorkInProgressPullRequest, triggerOnApprovedPullRequest, triggerOnTestedPullRequest, cancelPendingBuildsOnUpdate, ciSkipFroTestNotRequired,
|
skipWorkInProgressPullRequest, triggerOnApprovedPullRequest, triggerOnTestedPullRequest, cancelPendingBuildsOnUpdate, ciSkipFroTestNotRequired,
|
||||||
cancelIncompleteBuildOnSamePullRequest
|
cancelIncompleteBuildOnSamePullRequest
|
||||||
);
|
);
|
||||||
noteHookTriggerHandler = newNoteHookTriggerHandler(triggerOnNoteRequest, noteRegex, ciSkipFroTestNotRequired, cancelIncompleteBuildOnSamePullRequest);
|
noteHookTriggerHandler = newNoteHookTriggerHandler(triggerOnCommitComment, triggerOnNoteRequest, noteRegex, ciSkipFroTestNotRequired, cancelIncompleteBuildOnSamePullRequest);
|
||||||
pushHookTriggerHandler = newPushHookTriggerHandler(triggerOnPush, skipWorkInProgressPullRequest);
|
pushHookTriggerHandler = newPushHookTriggerHandler(triggerOnPush, skipWorkInProgressPullRequest);
|
||||||
pipelineTriggerHandler = newPipelineHookTriggerHandler(triggerOnPipelineEvent);
|
pipelineTriggerHandler = newPipelineHookTriggerHandler(triggerOnPipelineEvent);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,9 +7,9 @@ public final class NoteHookTriggerHandlerFactory {
|
||||||
|
|
||||||
private NoteHookTriggerHandlerFactory() {}
|
private NoteHookTriggerHandlerFactory() {}
|
||||||
|
|
||||||
public static NoteHookTriggerHandler newNoteHookTriggerHandler(boolean triggerOnNoteRequest, String noteRegex, boolean ciSkipFroTestNotRequired, boolean cancelIncompleteBuildOnSamePullRequest) {
|
public static NoteHookTriggerHandler newNoteHookTriggerHandler(boolean triggerOnCommitComment, boolean triggerOnNoteRequest, String noteRegex, boolean ciSkipFroTestNotRequired, boolean cancelIncompleteBuildOnSamePullRequest) {
|
||||||
if (triggerOnNoteRequest) {
|
if (triggerOnCommitComment || triggerOnNoteRequest) {
|
||||||
return new NoteHookTriggerHandlerImpl(noteRegex, ciSkipFroTestNotRequired, cancelIncompleteBuildOnSamePullRequest);
|
return new NoteHookTriggerHandlerImpl(triggerOnCommitComment, triggerOnNoteRequest, noteRegex, ciSkipFroTestNotRequired, cancelIncompleteBuildOnSamePullRequest);
|
||||||
} else {
|
} else {
|
||||||
return new NopNoteHookTriggerHandler();
|
return new NopNoteHookTriggerHandler();
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
package com.gitee.jenkins.trigger.handler.note;
|
package com.gitee.jenkins.trigger.handler.note;
|
||||||
|
|
||||||
import com.gitee.jenkins.cause.CauseData;
|
import com.gitee.jenkins.cause.CauseData;
|
||||||
|
import com.gitee.jenkins.cause.GiteeWebHookCause;
|
||||||
import com.gitee.jenkins.gitee.api.GiteeClient;
|
import com.gitee.jenkins.gitee.api.GiteeClient;
|
||||||
import com.gitee.jenkins.gitee.api.model.PullRequest;
|
import com.gitee.jenkins.gitee.api.model.PullRequest;
|
||||||
import com.gitee.jenkins.gitee.hook.model.*;
|
import com.gitee.jenkins.gitee.hook.model.*;
|
||||||
|
@ -10,18 +11,13 @@ import com.gitee.jenkins.trigger.filter.BranchFilter;
|
||||||
import com.gitee.jenkins.trigger.filter.BuildInstructionFilter;
|
import com.gitee.jenkins.trigger.filter.BuildInstructionFilter;
|
||||||
import com.gitee.jenkins.trigger.filter.PullRequestLabelFilter;
|
import com.gitee.jenkins.trigger.filter.PullRequestLabelFilter;
|
||||||
import com.gitee.jenkins.trigger.handler.AbstractWebHookTriggerHandler;
|
import com.gitee.jenkins.trigger.handler.AbstractWebHookTriggerHandler;
|
||||||
import hudson.model.AbstractBuild;
|
import hudson.model.*;
|
||||||
import hudson.model.Job;
|
|
||||||
import hudson.model.Run;
|
|
||||||
import hudson.plugins.git.GitSCM;
|
import hudson.plugins.git.GitSCM;
|
||||||
import hudson.plugins.git.RevisionParameterAction;
|
import hudson.plugins.git.RevisionParameterAction;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.eclipse.jgit.lib.Config;
|
|
||||||
import org.eclipse.jgit.transport.RemoteConfig;
|
|
||||||
|
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URISyntaxException;
|
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
@ -38,11 +34,15 @@ class NoteHookTriggerHandlerImpl extends AbstractWebHookTriggerHandler<NoteHook>
|
||||||
|
|
||||||
private static final Logger LOGGER = Logger.getLogger(NoteHookTriggerHandlerImpl.class.getName());
|
private static final Logger LOGGER = Logger.getLogger(NoteHookTriggerHandlerImpl.class.getName());
|
||||||
|
|
||||||
|
private final boolean triggerOnCommitComment;
|
||||||
|
private final boolean triggerOnNoteRequest;
|
||||||
private final String noteRegex;
|
private final String noteRegex;
|
||||||
private final boolean ciSkipFroTestNotRequired;
|
private final boolean ciSkipFroTestNotRequired;
|
||||||
private final boolean cancelIncompleteBuildOnSamePullRequest;
|
private final boolean cancelIncompleteBuildOnSamePullRequest;
|
||||||
|
|
||||||
NoteHookTriggerHandlerImpl(String noteRegex, boolean ciSkipFroTestNotRequired, boolean cancelIncompleteBuildOnSamePullRequest) {
|
NoteHookTriggerHandlerImpl(boolean triggerOnCommitComment, boolean triggerOnNoteRequest, String noteRegex, boolean ciSkipFroTestNotRequired, boolean cancelIncompleteBuildOnSamePullRequest) {
|
||||||
|
this.triggerOnCommitComment = triggerOnCommitComment;
|
||||||
|
this.triggerOnNoteRequest = triggerOnNoteRequest;
|
||||||
this.noteRegex = noteRegex;
|
this.noteRegex = noteRegex;
|
||||||
this.ciSkipFroTestNotRequired = ciSkipFroTestNotRequired;
|
this.ciSkipFroTestNotRequired = ciSkipFroTestNotRequired;
|
||||||
this.cancelIncompleteBuildOnSamePullRequest = cancelIncompleteBuildOnSamePullRequest;
|
this.cancelIncompleteBuildOnSamePullRequest = cancelIncompleteBuildOnSamePullRequest;
|
||||||
|
@ -101,20 +101,27 @@ class NoteHookTriggerHandlerImpl extends AbstractWebHookTriggerHandler<NoteHook>
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
RevisionParameterAction revisionParameterAction = build.getAction(RevisionParameterAction.class);
|
CauseAction causeAction = build.getAction(CauseAction.class);
|
||||||
if (revisionParameterAction != null) {
|
GiteeWebHookCause giteeWebHookCause = null;
|
||||||
Config config = new Config();
|
for (Cause cause : causeAction.getCauses()) {
|
||||||
config.setString("remote", hook.getRepository().getName(), "url", hook.getRepository().getGitHttpUrl());
|
if (cause instanceof GiteeWebHookCause) {
|
||||||
|
giteeWebHookCause = (GiteeWebHookCause) cause;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (giteeWebHookCause == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
CauseData causeData = giteeWebHookCause.getData();
|
||||||
|
if (causeData.getSourceRepoHttpUrl().equals(hook.getPullRequest().getSource().getGitHttpUrl())
|
||||||
|
&& causeData.getTargetRepoHttpUrl().equals(hook.getPullRequest().getTarget().getGitHttpUrl())
|
||||||
|
&& causeData.getRef().equals(hook.getPullRequest().getMergeReferenceName())) {
|
||||||
try {
|
try {
|
||||||
if (revisionParameterAction.canOriginateFrom(RemoteConfig.getAllRemoteConfigs(config))
|
if (build.isBuilding()) {
|
||||||
&& revisionParameterAction.commit.equals(hook.getPullRequest().getMergeReferenceName())) {
|
((AbstractBuild) build).doStop();
|
||||||
if (build.isBuilding()) {
|
LOGGER.log(Level.WARNING, "Abort incomplete build");
|
||||||
((AbstractBuild) build).doStop();
|
|
||||||
LOGGER.log(Level.WARNING, "Abort incomplete build");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} catch (URISyntaxException e) {
|
|
||||||
LOGGER.log(Level.WARNING, "Parsing repo url error", e);
|
|
||||||
} catch (ServletException | IOException e) {
|
} catch (ServletException | IOException e) {
|
||||||
LOGGER.log(Level.WARNING, "Unable to abort incomplete build", e);
|
LOGGER.log(Level.WARNING, "Unable to abort incomplete build", e);
|
||||||
}
|
}
|
||||||
|
@ -232,7 +239,9 @@ class NoteHookTriggerHandlerImpl extends AbstractWebHookTriggerHandler<NoteHook>
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isValidTrigger(NoteHook hook) {
|
private boolean isValidTrigger(NoteHook hook) {
|
||||||
return (isValidTriggerPhrase(hook.getComment().getBody()) && isValidTriggerAction(hook.getAction()));
|
// commit评论pullRequest为null
|
||||||
|
return ((triggerOnCommitComment && hook.getPullRequest() == null) || (triggerOnNoteRequest && hook.getPullRequest() != null))
|
||||||
|
&& (isValidTriggerPhrase(hook.getComment().getBody()) && isValidTriggerAction(hook.getAction()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean isValidTriggerAction(NoteAction action) {
|
private boolean isValidTriggerAction(NoteAction action) {
|
||||||
|
|
|
@ -5,6 +5,7 @@ import com.gitee.jenkins.cause.GiteeWebHookCause;
|
||||||
import com.gitee.jenkins.gitee.api.GiteeClient;
|
import com.gitee.jenkins.gitee.api.GiteeClient;
|
||||||
import com.gitee.jenkins.gitee.api.model.PullRequest;
|
import com.gitee.jenkins.gitee.api.model.PullRequest;
|
||||||
import com.gitee.jenkins.gitee.hook.model.*;
|
import com.gitee.jenkins.gitee.hook.model.*;
|
||||||
|
import com.gitee.jenkins.gitee.hook.model.Action;
|
||||||
import com.gitee.jenkins.gitee.hook.model.PullRequestHook;
|
import com.gitee.jenkins.gitee.hook.model.PullRequestHook;
|
||||||
import com.gitee.jenkins.publisher.GiteeMessagePublisher;
|
import com.gitee.jenkins.publisher.GiteeMessagePublisher;
|
||||||
import com.gitee.jenkins.trigger.exception.NoRevisionToBuildException;
|
import com.gitee.jenkins.trigger.exception.NoRevisionToBuildException;
|
||||||
|
@ -13,18 +14,13 @@ import com.gitee.jenkins.trigger.filter.BuildInstructionFilter;
|
||||||
import com.gitee.jenkins.trigger.filter.PullRequestLabelFilter;
|
import com.gitee.jenkins.trigger.filter.PullRequestLabelFilter;
|
||||||
import com.gitee.jenkins.trigger.handler.AbstractWebHookTriggerHandler;
|
import com.gitee.jenkins.trigger.handler.AbstractWebHookTriggerHandler;
|
||||||
import com.gitee.jenkins.util.BuildUtil;
|
import com.gitee.jenkins.util.BuildUtil;
|
||||||
import hudson.model.AbstractBuild;
|
import hudson.model.*;
|
||||||
import hudson.model.Job;
|
|
||||||
import hudson.model.Run;
|
|
||||||
import hudson.plugins.git.GitSCM;
|
import hudson.plugins.git.GitSCM;
|
||||||
import hudson.plugins.git.RevisionParameterAction;
|
import hudson.plugins.git.RevisionParameterAction;
|
||||||
import org.apache.commons.lang.StringUtils;
|
import org.apache.commons.lang.StringUtils;
|
||||||
import org.eclipse.jgit.lib.Config;
|
|
||||||
import org.eclipse.jgit.transport.RemoteConfig;
|
|
||||||
|
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URISyntaxException;
|
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
@ -160,24 +156,32 @@ class PullRequestHookTriggerHandlerImpl extends AbstractWebHookTriggerHandler<Pu
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
RevisionParameterAction revisionParameterAction = build.getAction(RevisionParameterAction.class);
|
CauseAction causeAction = build.getAction(CauseAction.class);
|
||||||
if (revisionParameterAction != null) {
|
GiteeWebHookCause giteeWebHookCause = null;
|
||||||
Config config = new Config();
|
for (Cause cause : causeAction.getCauses()) {
|
||||||
config.setString("remote", hook.getRepo().getName(), "url", hook.getRepo().getGitHttpUrl());
|
if (cause instanceof GiteeWebHookCause) {
|
||||||
|
giteeWebHookCause = (GiteeWebHookCause) cause;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (giteeWebHookCause == null) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
CauseData causeData = giteeWebHookCause.getData();
|
||||||
|
if (causeData.getSourceRepoHttpUrl().equals(hook.getPullRequest().getSource().getGitHttpUrl())
|
||||||
|
&& causeData.getTargetRepoHttpUrl().equals(hook.getPullRequest().getTarget().getGitHttpUrl())
|
||||||
|
&& causeData.getRef().equals(hook.getPullRequest().getMergeReferenceName())) {
|
||||||
try {
|
try {
|
||||||
if (revisionParameterAction.canOriginateFrom(RemoteConfig.getAllRemoteConfigs(config))
|
if (build.isBuilding()) {
|
||||||
&& revisionParameterAction.commit.equals(hook.getPullRequest().getMergeReferenceName())) {
|
((AbstractBuild) build).doStop();
|
||||||
if (build.isBuilding()) {
|
LOGGER.log(Level.WARNING, "Abort incomplete build");
|
||||||
((AbstractBuild) build).doStop();
|
|
||||||
LOGGER.log(Level.WARNING, "Abort incomplete build");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} catch (URISyntaxException e) {
|
|
||||||
LOGGER.log(Level.WARNING, "Parsing repo url error", e);
|
|
||||||
} catch (ServletException | IOException e) {
|
} catch (ServletException | IOException e) {
|
||||||
LOGGER.log(Level.WARNING, "Unable to abort incomplete build", e);
|
LOGGER.log(Level.WARNING, "Unable to abort incomplete build", e);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,6 +6,11 @@
|
||||||
<f:entry title="${%Push}" field="triggerOnPush">
|
<f:entry title="${%Push}" field="triggerOnPush">
|
||||||
<f:checkbox default="true"/>
|
<f:checkbox default="true"/>
|
||||||
</f:entry>
|
</f:entry>
|
||||||
|
|
||||||
|
<f:entry title="${%Commit.Comment}" field="triggerOnCommitComment">
|
||||||
|
<f:checkbox default="false"/>
|
||||||
|
</f:entry>
|
||||||
|
|
||||||
<f:entry title="${%Opened.Pull.Request}" field="triggerOnOpenPullRequest">
|
<f:entry title="${%Opened.Pull.Request}" field="triggerOnOpenPullRequest">
|
||||||
<f:checkbox default="true"/>
|
<f:checkbox default="true"/>
|
||||||
</f:entry>
|
</f:entry>
|
||||||
|
|
|
@ -2,6 +2,7 @@ Secret.Token=Secret Token for Gitee WebHook
|
||||||
Generate=Generate
|
Generate=Generate
|
||||||
Clear=Clear
|
Clear=Clear
|
||||||
Push=Push Events
|
Push=Push Events
|
||||||
|
Commit.Comment=Commit Comment Events
|
||||||
Enable.CI.Skip=Enable [ci-skip]
|
Enable.CI.Skip=Enable [ci-skip]
|
||||||
Build.Instruction.Filter=Build instruction filter
|
Build.Instruction.Filter=Build instruction filter
|
||||||
Build.Instruction.Filter.None=None
|
Build.Instruction.Filter.None=None
|
||||||
|
|
|
@ -2,6 +2,7 @@ Secret.Token=Gitee WebHook \u5BC6\u7801
|
||||||
Generate=\u751F\u6210
|
Generate=\u751F\u6210
|
||||||
Clear=\u6E05\u9664
|
Clear=\u6E05\u9664
|
||||||
Push=\u63A8\u9001\u4EE3\u7801
|
Push=\u63A8\u9001\u4EE3\u7801
|
||||||
|
Commit.Comment=\u8BC4\u8BBA\u63D0\u4EA4\u8BB0\u5F55
|
||||||
Enable.CI.Skip=\u652F\u6301 [ci-skip] \u6307\u4EE4\u8FC7\u6EE4\u6784\u5EFA
|
Enable.CI.Skip=\u652F\u6301 [ci-skip] \u6307\u4EE4\u8FC7\u6EE4\u6784\u5EFA
|
||||||
Enable.CI.SkipFroTestNotRequired=PR \u4E0D\u8981\u6C42\u5FC5\u987B\u6D4B\u8BD5\u65F6\u8FC7\u6EE4\u6784\u5EFA
|
Enable.CI.SkipFroTestNotRequired=PR \u4E0D\u8981\u6C42\u5FC5\u987B\u6D4B\u8BD5\u65F6\u8FC7\u6EE4\u6784\u5EFA
|
||||||
Build.Instruction.Filter=\u6784\u5EFA\u6307\u4EE4\u8FC7\u6EE4
|
Build.Instruction.Filter=\u6784\u5EFA\u6307\u4EE4\u8FC7\u6EE4
|
||||||
|
|
Loading…
Reference in New Issue