diff --git a/src/main/java/com/nerdwin15/stash/webhook/Notifier.java b/src/main/java/com/nerdwin15/stash/webhook/Notifier.java index c07ddb4..ca49ea2 100644 --- a/src/main/java/com/nerdwin15/stash/webhook/Notifier.java +++ b/src/main/java/com/nerdwin15/stash/webhook/Notifier.java @@ -261,7 +261,7 @@ protected String getUrl(final Repository repository, final String jenkinsBase, if(strRef != null && !omitBranchName) url.append(String.format(BRANCH_URL_PARAMETER, urlEncode(strRef))); - if(!omitHashCode) + if(strSha1 != null && !omitHashCode) url.append(String.format(HASH_URL_PARAMETER, strSha1)); return url.toString(); diff --git a/src/test/java/com/nerdwin15/stash/webhook/NotifierTest.java b/src/test/java/com/nerdwin15/stash/webhook/NotifierTest.java index 697524e..a0e2c3e 100644 --- a/src/test/java/com/nerdwin15/stash/webhook/NotifierTest.java +++ b/src/test/java/com/nerdwin15/stash/webhook/NotifierTest.java @@ -396,4 +396,25 @@ public void shouldCallTheCorrectURLWithOmitBranchNameOff() captor.getValue().getURI().toString()); } + /** + * Validates that the correct path is used when the sha1 is null + * @throws Exception + */ + @Test + public void shouldCallTheCorrectURLWhenSha1IsNull() + throws Exception { + when(settings.getBoolean(Notifier.OMIT_BRANCH_NAME, false)).thenReturn(false); + notifier.notify(repo, "refs/heads/master", null); + + ArgumentCaptor captor = ArgumentCaptor.forClass(HttpGet.class); + + verify(httpClientFactory, times(1)).getHttpClient(false, false); + verify(httpClient, times(1)).execute(captor.capture()); + verify(connectionManager, times(1)).shutdown(); + + assertEquals("http://localhost.jenkins/git/notifyCommit?" + + "url=http%3A%2F%2Fsome.stash.com%2Fscm%2Ffoo%2Fbar.git" + + "&branches=refs%2Fheads%2Fmaster", + captor.getValue().getURI().toString()); + } }