From 73700a586d22f7716d2197e96cedff6211edb49c Mon Sep 17 00:00:00 2001 From: Yaraslau Supanitski Date: Mon, 10 Dec 2018 21:37:03 +0300 Subject: [PATCH 1/4] rename Action closed to close State - closed, Action - close --- .../dabsquared/gitlabjenkins/gitlab/hook/model/Action.java | 2 +- .../handler/merge/MergeRequestHookTriggerHandlerFactory.java | 4 +--- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/dabsquared/gitlabjenkins/gitlab/hook/model/Action.java b/src/main/java/com/dabsquared/gitlabjenkins/gitlab/hook/model/Action.java index eb108d263..78deaab91 100644 --- a/src/main/java/com/dabsquared/gitlabjenkins/gitlab/hook/model/Action.java +++ b/src/main/java/com/dabsquared/gitlabjenkins/gitlab/hook/model/Action.java @@ -4,5 +4,5 @@ * @author Robin Müller */ public enum Action { - open, update, approved, merge, closed, reopen + open, update, approved, merge, close, reopen } diff --git a/src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerFactory.java b/src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerFactory.java index 0066b54fb..4e0819c3c 100644 --- a/src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerFactory.java +++ b/src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerFactory.java @@ -5,8 +5,6 @@ import com.dabsquared.gitlabjenkins.gitlab.hook.model.State; import com.dabsquared.gitlabjenkins.trigger.TriggerOpenMergeRequest; -import static com.dabsquared.gitlabjenkins.trigger.handler.merge.StateAndActionConfig.notEqual; -import static com.dabsquared.gitlabjenkins.trigger.handler.merge.StateAndActionConfig.nullOrContains; import static java.util.EnumSet.of; /** @@ -29,7 +27,7 @@ public static MergeRequestHookTriggerHandler newMergeRequestHookTriggerHandler(b .acceptOnlyIf(triggerOnApprovedMergeRequest, null, of(Action.approved)) .acceptIf(triggerOnMergeRequest, of(State.opened, State.reopened), null) .acceptIf(triggerOnAcceptedMergeRequest, null, of(Action.merge)) - .acceptIf(triggerOnClosedMergeRequest, null, of(Action.closed)) + .acceptIf(triggerOnClosedMergeRequest, null, of(Action.close)) .acceptIf(triggerOpenMergeRequest != TriggerOpenMergeRequest.never, of(State.updated), null) ; From de6bfb0f22baf8533a87d0c20944c6cbd0e03be2 Mon Sep 17 00:00:00 2001 From: Yaraslau Supanitski Date: Mon, 10 Dec 2018 21:38:15 +0300 Subject: [PATCH 2/4] fix logic for close and closed MR --- .../handler/merge/MergeRequestHookTriggerHandlerFactory.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerFactory.java b/src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerFactory.java index 4e0819c3c..7ed7f9f10 100644 --- a/src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerFactory.java +++ b/src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerFactory.java @@ -28,6 +28,7 @@ public static MergeRequestHookTriggerHandler newMergeRequestHookTriggerHandler(b .acceptIf(triggerOnMergeRequest, of(State.opened, State.reopened), null) .acceptIf(triggerOnAcceptedMergeRequest, null, of(Action.merge)) .acceptIf(triggerOnClosedMergeRequest, null, of(Action.close)) + .acceptIf(triggerOnClosedMergeRequest, of(State.closed), null) .acceptIf(triggerOpenMergeRequest != TriggerOpenMergeRequest.never, of(State.updated), null) ; From 1dd1b5c3bce6be75bf746713f91028fd796fbb78 Mon Sep 17 00:00:00 2001 From: Yaraslau Supanitski Date: Mon, 10 Dec 2018 21:40:25 +0300 Subject: [PATCH 3/4] fix logic for update action into MR and flag never we set it on 1st place because the more important type of hook than flag approved or not. Also update action often came with opened state. --- .../handler/merge/MergeRequestHookTriggerHandlerFactory.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerFactory.java b/src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerFactory.java index 7ed7f9f10..e177361a1 100644 --- a/src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerFactory.java +++ b/src/main/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerFactory.java @@ -24,12 +24,12 @@ public static MergeRequestHookTriggerHandler newMergeRequestHookTriggerHandler(b TriggerConfigChain chain = new TriggerConfigChain(); chain + .acceptOnlyIf(triggerOpenMergeRequest != TriggerOpenMergeRequest.never, of(State.opened, State.updated), of(Action.update)) .acceptOnlyIf(triggerOnApprovedMergeRequest, null, of(Action.approved)) .acceptIf(triggerOnMergeRequest, of(State.opened, State.reopened), null) .acceptIf(triggerOnAcceptedMergeRequest, null, of(Action.merge)) .acceptIf(triggerOnClosedMergeRequest, null, of(Action.close)) .acceptIf(triggerOnClosedMergeRequest, of(State.closed), null) - .acceptIf(triggerOpenMergeRequest != TriggerOpenMergeRequest.never, of(State.updated), null) ; return new MergeRequestHookTriggerHandlerImpl(chain, skipWorkInProgressMergeRequest, cancelPendingBuildsOnUpdate); From 90d6c97c77a9f3f4e6cc63f4959f7ac89afa7489 Mon Sep 17 00:00:00 2001 From: Yaraslau Supanitski Date: Mon, 10 Dec 2018 21:42:04 +0300 Subject: [PATCH 4/4] update tests --- ...ergeRequestHookTriggerHandlerImplTest.java | 45 ++++++++++++++++--- 1 file changed, 38 insertions(+), 7 deletions(-) diff --git a/src/test/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerImplTest.java b/src/test/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerImplTest.java index f23b8540f..11e500d1a 100644 --- a/src/test/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerImplTest.java +++ b/src/test/java/com/dabsquared/gitlabjenkins/trigger/handler/merge/MergeRequestHookTriggerHandlerImplTest.java @@ -30,7 +30,6 @@ import java.io.IOException; import java.util.Arrays; -import java.util.EnumSet; import java.util.concurrent.ExecutionException; import static com.dabsquared.gitlabjenkins.gitlab.hook.model.builder.generated.CommitBuilder.commit; @@ -80,13 +79,35 @@ public void mergeRequest_ciSkip() throws IOException, InterruptedException { } @Test - public void mergeRequest_build_when_opened() throws IOException, InterruptedException, GitAPIException, ExecutionException { - MergeRequestHookTriggerHandler mergeRequestHookTriggerHandler = withConfig().build(); + public void mergeRequest_build_when_opened_with_source() throws IOException, InterruptedException, GitAPIException, ExecutionException { + MergeRequestHookTriggerHandler mergeRequestHookTriggerHandler = withConfig() + .setTriggerOpenMergeRequest(TriggerOpenMergeRequest.source) + .build(); OneShotEvent buildTriggered = doHandle(mergeRequestHookTriggerHandler, State.opened); assertThat(buildTriggered.isSignaled(), is(true)); } + @Test + public void mergeRequest_build_when_opened_with_both() throws IOException, InterruptedException, GitAPIException, ExecutionException { + MergeRequestHookTriggerHandler mergeRequestHookTriggerHandler = withConfig() + .setTriggerOpenMergeRequest(TriggerOpenMergeRequest.source) + .build(); + OneShotEvent buildTriggered = doHandle(mergeRequestHookTriggerHandler, State.opened); + + assertThat(buildTriggered.isSignaled(), is(true)); + } + + @Test + public void mergeRequest_build_when_opened_with_never() throws IOException, InterruptedException, GitAPIException, ExecutionException { + MergeRequestHookTriggerHandler mergeRequestHookTriggerHandler = withConfig() + .setTriggerOpenMergeRequest(TriggerOpenMergeRequest.never) + .build(); + OneShotEvent buildTriggered = doHandle(mergeRequestHookTriggerHandler, State.opened, Action.update); + + assertThat(buildTriggered.isSignaled(), is(false)); + } + @Test public void mergeRequest_build_when_reopened() throws IOException, InterruptedException, GitAPIException, ExecutionException { MergeRequestHookTriggerHandler mergeRequestHookTriggerHandler = withConfig() @@ -100,6 +121,7 @@ public void mergeRequest_build_when_reopened() throws IOException, InterruptedEx public void mergeRequest_build_when_opened_with_approved_action_enabled() throws IOException, InterruptedException, GitAPIException, ExecutionException { MergeRequestHookTriggerHandler mergeRequestHookTriggerHandler = withConfig() .setTriggerOnApprovedMergeRequest(true) + .setTriggerOpenMergeRequest(TriggerOpenMergeRequest.source) .build(); OneShotEvent buildTriggered = doHandle(mergeRequestHookTriggerHandler, State.opened); @@ -133,7 +155,17 @@ public void mergeRequest_build_when_closed() throws IOException, InterruptedExce MergeRequestHookTriggerHandler mergeRequestHookTriggerHandler = withConfig() .setTriggerOnClosedMergeRequest(true) .build(); - OneShotEvent buildTriggered = doHandle(mergeRequestHookTriggerHandler, State.closed, Action.closed); + OneShotEvent buildTriggered = doHandle(mergeRequestHookTriggerHandler, State.closed, Action.close); + + assertThat(buildTriggered.isSignaled(), is(true)); + } + + @Test + public void mergeRequest_build_when_close() throws IOException, InterruptedException, GitAPIException, ExecutionException { + MergeRequestHookTriggerHandler mergeRequestHookTriggerHandler = withConfig() + .setTriggerOnClosedMergeRequest(true) + .build(); + OneShotEvent buildTriggered = doHandle(mergeRequestHookTriggerHandler, Action.close); assertThat(buildTriggered.isSignaled(), is(true)); } @@ -144,7 +176,7 @@ public void mergeRequest_build_when_closed_with_actions_enabled() throws IOExcep .setTriggerOnClosedMergeRequest(true) .setTriggerOnApprovedMergeRequest(true) .build(); - OneShotEvent buildTriggered = doHandle(mergeRequestHookTriggerHandler, State.closed, Action.closed); + OneShotEvent buildTriggered = doHandle(mergeRequestHookTriggerHandler, State.closed, Action.close); assertThat(buildTriggered.isSignaled(), is(true)); } @@ -205,7 +237,6 @@ public void mergeRequest_do_not_build_when_closed() throws IOException, Interrup @Test public void mergeRequest_do_not_build_for_updated_state_and_approved_action_when_both_not_enabled() throws IOException, InterruptedException, GitAPIException { MergeRequestHookTriggerHandler mergeRequestHookTriggerHandler = withConfig() - .setTriggerOpenMergeRequest(TriggerOpenMergeRequest.source) .build(); OneShotEvent buildTriggered = doHandle(mergeRequestHookTriggerHandler, State.updated, Action.approved); @@ -392,7 +423,7 @@ public boolean perform(AbstractBuild build, Launcher launcher, BuildListen private MergeRequestObjectAttributesBuilder defaultMergeRequestObjectAttributes() { return mergeRequestObjectAttributes() .withIid(1) - .withAction(Action.update) + .withAction(Action.open) .withState(State.opened) .withTitle("test") .withTargetProjectId(1)