支持pr审查通过,测试通过触发构建
This commit is contained in:
parent
c2a0d84136
commit
190c634f6c
|
@ -4,5 +4,5 @@ package com.gitee.jenkins.gitee.hook.model;
|
|||
* @author Robin Müller
|
||||
*/
|
||||
public enum Action {
|
||||
open, update, approved, close, merge
|
||||
open, update, approved, close, merge, tested
|
||||
}
|
||||
|
|
|
@ -76,6 +76,7 @@ public class GiteePushTrigger extends Trigger<Job<?, ?>> {
|
|||
private boolean triggerOnUpdateMergeRequest = false;
|
||||
private boolean triggerOnClosedMergeRequest = false;
|
||||
private boolean triggerOnApprovedMergeRequest = false;
|
||||
private boolean triggerOnTestedMergeRequest = false;
|
||||
private boolean triggerOnNoteRequest = true;
|
||||
private String noteRegex = "";
|
||||
private boolean ciSkip = true;
|
||||
|
@ -201,6 +202,10 @@ public class GiteePushTrigger extends Trigger<Job<?, ?>> {
|
|||
return triggerOnOpenMergeRequest;
|
||||
}
|
||||
|
||||
public boolean getTriggerOnTestedMergeRequest() {
|
||||
return triggerOnTestedMergeRequest;
|
||||
}
|
||||
|
||||
public boolean getTriggerOnUpdateMergeRequest() {
|
||||
return triggerOnUpdateMergeRequest;
|
||||
}
|
||||
|
@ -281,6 +286,11 @@ public class GiteePushTrigger extends Trigger<Job<?, ?>> {
|
|||
this.triggerOnApprovedMergeRequest = triggerOnApprovedMergeRequest;
|
||||
}
|
||||
|
||||
@DataBoundSetter
|
||||
public void setTriggerOnTestedMergeRequest(boolean triggerOnTestedMergeRequest) {
|
||||
this.triggerOnTestedMergeRequest = triggerOnTestedMergeRequest;
|
||||
}
|
||||
|
||||
@DataBoundSetter
|
||||
public void setTriggerOnOpenMergeRequest(boolean triggerOnOpenMergeRequest) {
|
||||
this.triggerOnOpenMergeRequest = triggerOnOpenMergeRequest;
|
||||
|
@ -448,7 +458,7 @@ public class GiteePushTrigger extends Trigger<Job<?, ?>> {
|
|||
private void initializeTriggerHandler() {
|
||||
mergeRequestHookTriggerHandler = newMergeRequestHookTriggerHandler(triggerOnOpenMergeRequest,
|
||||
triggerOnUpdateMergeRequest, triggerOnAcceptedMergeRequest, triggerOnClosedMergeRequest,
|
||||
skipWorkInProgressMergeRequest, triggerOnApprovedMergeRequest, cancelPendingBuildsOnUpdate);
|
||||
skipWorkInProgressMergeRequest, triggerOnApprovedMergeRequest, triggerOnTestedMergeRequest, cancelPendingBuildsOnUpdate);
|
||||
noteHookTriggerHandler = newNoteHookTriggerHandler(triggerOnNoteRequest, noteRegex);
|
||||
pushHookTriggerHandler = newPushHookTriggerHandler(triggerOnPush, skipWorkInProgressMergeRequest);
|
||||
pipelineTriggerHandler = newPipelineHookTriggerHandler(triggerOnPipelineEvent);
|
||||
|
|
|
@ -21,20 +21,41 @@ public final class MergeRequestHookTriggerHandlerFactory {
|
|||
boolean triggerOnClosedMergeRequest,
|
||||
boolean skipWorkInProgressMergeRequest,
|
||||
boolean triggerOnApprovedMergeRequest,
|
||||
boolean triggerOnTestedMergeRequest,
|
||||
boolean cancelPendingBuildsOnUpdate) {
|
||||
if (triggerOnOpenMergeRequest || triggerOnUpdateMergeRequest || triggerOnAcceptedMergeRequest || triggerOnClosedMergeRequest || triggerOnApprovedMergeRequest) {
|
||||
return new MergeRequestHookTriggerHandlerImpl(retrieveAllowedStates(triggerOnOpenMergeRequest, triggerOnUpdateMergeRequest, triggerOnAcceptedMergeRequest, triggerOnClosedMergeRequest),
|
||||
retrieveAllowedActions(triggerOnOpenMergeRequest, triggerOnUpdateMergeRequest, triggerOnAcceptedMergeRequest, triggerOnClosedMergeRequest),
|
||||
skipWorkInProgressMergeRequest, cancelPendingBuildsOnUpdate);
|
||||
if (triggerOnOpenMergeRequest
|
||||
|| triggerOnUpdateMergeRequest
|
||||
|| triggerOnAcceptedMergeRequest
|
||||
|| triggerOnClosedMergeRequest
|
||||
|| triggerOnApprovedMergeRequest
|
||||
|| triggerOnTestedMergeRequest) {
|
||||
|
||||
return new MergeRequestHookTriggerHandlerImpl(
|
||||
retrieveAllowedStates(triggerOnOpenMergeRequest,
|
||||
triggerOnUpdateMergeRequest,
|
||||
triggerOnAcceptedMergeRequest,
|
||||
triggerOnClosedMergeRequest,
|
||||
triggerOnApprovedMergeRequest,
|
||||
triggerOnTestedMergeRequest),
|
||||
retrieveAllowedActions(triggerOnOpenMergeRequest,
|
||||
triggerOnUpdateMergeRequest,
|
||||
triggerOnAcceptedMergeRequest,
|
||||
triggerOnClosedMergeRequest,
|
||||
triggerOnApprovedMergeRequest,
|
||||
triggerOnTestedMergeRequest),
|
||||
skipWorkInProgressMergeRequest,
|
||||
cancelPendingBuildsOnUpdate);
|
||||
} else {
|
||||
return new NopMergeRequestHookTriggerHandler();
|
||||
}
|
||||
}
|
||||
|
||||
private static List<Action> retrieveAllowedActions(boolean triggerOnOpenMergeRequest,
|
||||
boolean triggerOnUpdateMergeRequest,
|
||||
boolean triggerOnAcceptedMergeRequest,
|
||||
boolean triggerOnClosedMergeRequest) {
|
||||
boolean triggerOnUpdateMergeRequest,
|
||||
boolean triggerOnAcceptedMergeRequest,
|
||||
boolean triggerOnClosedMergeRequest,
|
||||
boolean triggerOnApprovedMergeRequest,
|
||||
boolean triggerOnTestedMergeRequest) {
|
||||
List<Action> allowedActions =new ArrayList<>();
|
||||
|
||||
if (triggerOnOpenMergeRequest) {
|
||||
|
@ -53,15 +74,29 @@ public final class MergeRequestHookTriggerHandlerFactory {
|
|||
allowedActions.add(Action.close);
|
||||
}
|
||||
|
||||
if (triggerOnApprovedMergeRequest) {
|
||||
allowedActions.add(Action.approved);
|
||||
}
|
||||
|
||||
if (triggerOnTestedMergeRequest) {
|
||||
allowedActions.add(Action.tested);
|
||||
}
|
||||
|
||||
return allowedActions;
|
||||
}
|
||||
|
||||
private static List<State> retrieveAllowedStates(boolean triggerOnOpenMergeRequest,
|
||||
boolean triggerOnUpdateMergeRequest,
|
||||
boolean triggerOnAcceptedMergeRequest,
|
||||
boolean triggerOnClosedMergeRequest) {
|
||||
boolean triggerOnUpdateMergeRequest,
|
||||
boolean triggerOnAcceptedMergeRequest,
|
||||
boolean triggerOnClosedMergeRequest,
|
||||
boolean triggerOnApprovedMergeRequest,
|
||||
boolean triggerOnTestedMergeRequest) {
|
||||
List<State> result = new ArrayList<>();
|
||||
if (triggerOnOpenMergeRequest || triggerOnUpdateMergeRequest) {
|
||||
if (triggerOnOpenMergeRequest
|
||||
|| triggerOnUpdateMergeRequest
|
||||
|| triggerOnApprovedMergeRequest
|
||||
|| triggerOnTestedMergeRequest) {
|
||||
|
||||
result.add(State.opened);
|
||||
result.add(State.open);
|
||||
result.add(State.reopened);
|
||||
|
|
|
@ -18,50 +18,54 @@
|
|||
<f:entry title="${%Closed.Pull.Request}" field="triggerOnClosedMergeRequest">
|
||||
<f:checkbox default="false"/>
|
||||
</f:entry>
|
||||
<f:entry title="${%Approved.Pull.Request}" field="triggerOnApprovedMergeRequest">
|
||||
<f:checkbox default="false"/>
|
||||
</f:entry>
|
||||
<f:entry title="${%Tested.Pull.Request}" field="triggerOnTestedMergeRequest">
|
||||
<f:checkbox default="false"/>
|
||||
</f:entry>
|
||||
</table>
|
||||
</f:entry>
|
||||
<f:advanced>
|
||||
<f:entry title="${%Enable.CI.Skip}" field="ciSkip">
|
||||
<f:checkbox default="true"/>
|
||||
</f:entry>
|
||||
<f:entry title="${%Ignore.WIP.Merge.Requests}" field="skipWorkInProgressMergeRequest">
|
||||
<f:checkbox default="true"/>
|
||||
</f:entry>
|
||||
<f:entry title="${%Set.Build.Desctiption}" field="setBuildDescription">
|
||||
<f:checkbox default="true"/>
|
||||
</f:entry>
|
||||
<f:entry title="${%Allowed.branches}">
|
||||
<table>
|
||||
<!--<f:section title="">-->
|
||||
<f:radioBlock name="branchFilterType" value="All" title="${%Allow.all.branches}"
|
||||
checked="${instance.branchFilterType == null || instance.branchFilterType == 'All'}"
|
||||
inline="true" help="/plugin/gitee-plugin/help/help-noBranchFiltering.html"/>
|
||||
<f:radioBlock name="branchFilterType" value="NameBasedFilter" title="${%Filter.branches.by.name}"
|
||||
checked="${instance.branchFilterType == 'NameBasedFilter'}" inline="true"
|
||||
help="/plugin/gitee-plugin/help/help-allowedBranches.html">
|
||||
<f:entry title="${%Include}">
|
||||
<f:textbox name="includeBranchesSpec" field="includeBranchesSpec" autoCompleteDelimChar=","/>
|
||||
</f:entry>
|
||||
<f:entry title="${%Exclude}">
|
||||
<f:textbox name="excludeBranchesSpec" field="excludeBranchesSpec" autoCompleteDelimChar=","/>
|
||||
</f:entry>
|
||||
</f:radioBlock>
|
||||
<f:entry title="${%Enable.CI.Skip}" field="ciSkip">
|
||||
<f:checkbox default="true"/>
|
||||
</f:entry>
|
||||
<f:entry title="${%Ignore.WIP.Merge.Requests}" field="skipWorkInProgressMergeRequest">
|
||||
<f:checkbox default="true"/>
|
||||
</f:entry>
|
||||
<f:entry title="${%Set.Build.Desctiption}" field="setBuildDescription">
|
||||
<f:checkbox default="true"/>
|
||||
</f:entry>
|
||||
<f:entry title="${%Allowed.branches}">
|
||||
<table>
|
||||
<!--<f:section title="">-->
|
||||
<f:radioBlock name="branchFilterType" value="All" title="${%Allow.all.branches}"
|
||||
checked="${instance.branchFilterType == null || instance.branchFilterType == 'All'}"
|
||||
inline="true" help="/plugin/gitee-plugin/help/help-noBranchFiltering.html"/>
|
||||
<f:radioBlock name="branchFilterType" value="NameBasedFilter" title="${%Filter.branches.by.name}"
|
||||
checked="${instance.branchFilterType == 'NameBasedFilter'}" inline="true"
|
||||
help="/plugin/gitee-plugin/help/help-allowedBranches.html">
|
||||
<f:entry title="${%Include}">
|
||||
<f:textbox name="includeBranchesSpec" field="includeBranchesSpec" autoCompleteDelimChar=","/>
|
||||
</f:entry>
|
||||
<f:entry title="${%Exclude}">
|
||||
<f:textbox name="excludeBranchesSpec" field="excludeBranchesSpec" autoCompleteDelimChar=","/>
|
||||
</f:entry>
|
||||
</f:radioBlock>
|
||||
|
||||
<f:radioBlock name="branchFilterType" value="RegexBasedFilter" title="${%Filter.branches.by.regex}"
|
||||
checked="${instance.branchFilterType == 'RegexBasedFilter'}" inline="true"
|
||||
help="/plugin/gitee-plugin/help/help-filterBranchesByRegex.html">
|
||||
<f:entry title="${%Target.Branch.Regex}">
|
||||
<f:textbox name="targetBranchRegex" field="targetBranchRegex"/>
|
||||
</f:entry>
|
||||
</f:radioBlock>
|
||||
</table>
|
||||
</f:entry>
|
||||
<f:entry title="${%Secret.Token}" help="/plugin/gitee-plugin/help/help-secretToken.html">
|
||||
<table>
|
||||
<f:readOnlyTextbox field="secretToken" id="secretToken"/>
|
||||
<f:validateButton title="${%Generate}" method="generateSecretToken"/>
|
||||
<f:validateButton title="${%Clear}" method="clearSecretToken"/>
|
||||
</table>
|
||||
</f:entry>
|
||||
</f:advanced>
|
||||
<f:radioBlock name="branchFilterType" value="RegexBasedFilter" title="${%Filter.branches.by.regex}"
|
||||
checked="${instance.branchFilterType == 'RegexBasedFilter'}" inline="true"
|
||||
help="/plugin/gitee-plugin/help/help-filterBranchesByRegex.html">
|
||||
<f:entry title="${%Target.Branch.Regex}">
|
||||
<f:textbox name="targetBranchRegex" field="targetBranchRegex"/>
|
||||
</f:entry>
|
||||
</f:radioBlock>
|
||||
</table>
|
||||
</f:entry>
|
||||
<f:entry title="${%Secret.Token}" help="/plugin/gitee-plugin/help/help-secretToken.html">
|
||||
<table>
|
||||
<f:readOnlyTextbox field="secretToken" id="secretToken"/>
|
||||
<f:validateButton title="${%Generate}" method="generateSecretToken"/>
|
||||
<f:validateButton title="${%Clear}" method="clearSecretToken"/>
|
||||
</table>
|
||||
</f:entry>
|
||||
</j:jelly>
|
||||
|
|
|
@ -4,7 +4,8 @@ Clear=Clear
|
|||
Push=Push Events
|
||||
Enable.CI.Skip=Enable [ci-skip]
|
||||
Enabled.Gitee.Triggers=Enabled Gitee triggers
|
||||
Approved.Pull.Requests=Approved Pull Requests
|
||||
Approved.Pull.Request=Approved Pull Requests
|
||||
Tested.Pull.Request=Tested Pull Requests
|
||||
Closed.Pull.Request=Closed Merge Request Events
|
||||
Accepted.Pull.Request=Accepted Merge Request Events
|
||||
Opened.Pull.Request=Opened Merge Request Events
|
||||
|
|
|
@ -2,9 +2,10 @@ Secret.Token=Gitee WebHook \u5BC6\u7801
|
|||
Generate=\u751F\u6210
|
||||
Clear=\u6E05\u9664
|
||||
Push=\u63A8\u9001\u4EE3\u7801
|
||||
Enable.CI.Skip=\u5F00\u542F [ci-skip]
|
||||
Enable.CI.Skip=\u652F\u6301 [ci-skip] \u6307\u4EE4
|
||||
Enabled.Gitee.Triggers=Gitee \u89E6\u53D1\u6784\u5EFA\u7B56\u7565
|
||||
Approved.Pull.Requests=Pull Requests \u5BA1\u67E5\u901A\u8FC7
|
||||
Approved.Pull.Request=Pull Requests \u5BA1\u67E5\u901A\u8FC7
|
||||
Tested.Pull.Request=Pull Requests \u6D4B\u8BD5\u901A\u8FC7
|
||||
Closed.Pull.Request=\u5173\u95ED Pull Request
|
||||
Accepted.Pull.Request=\u63A5\u53D7 Pull Request
|
||||
Opened.Pull.Request=\u65B0\u5EFA Pull Request
|
||||
|
|
Loading…
Reference in New Issue