Skip to content

Commit bcfd141

Browse files
authored
Fix URL when server ends with a slash (#330)
1 parent 9241ae4 commit bcfd141

File tree

2 files changed

+34
-2
lines changed

2 files changed

+34
-2
lines changed

src/main/java/io/jenkins/plugins/gitlabbranchsource/helpers/GitLabHelper.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,18 +73,29 @@ public static String getServerUrlFromName(String serverName) {
7373

7474
@NonNull
7575
public static String getServerUrl(GitLabServer server) {
76-
return server != null ? server.getServerUrl() : GitLabServer.GITLAB_SERVER_URL;
76+
if (server == null) {
77+
return GitLabServer.GITLAB_SERVER_URL;
78+
}
79+
String url = server.getServerUrl();
80+
return sanitizeUrlValue(url);
7781
}
7882

7983
@NonNull
8084
private static String getServerUrl(String server) {
8185
if (server.startsWith("http://") || server.startsWith("https://")) {
82-
return server;
86+
return sanitizeUrlValue(server);
8387
} else {
8488
return getServerUrlFromName(server);
8589
}
8690
}
8791

92+
private static String sanitizeUrlValue(String url) {
93+
if (url.endsWith("/")) {
94+
return url.substring(0, url.length() - 1);
95+
}
96+
return url;
97+
}
98+
8899
public static UriTemplateBuilder getUriTemplateFromServer(String server) {
89100
return UriTemplate.buildFromTemplate(getServerUrl(server));
90101
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package io.jenkins.plugins.gitlabbranchsource.helpers;
2+
3+
import static org.hamcrest.MatcherAssert.assertThat;
4+
import static org.hamcrest.Matchers.is;
5+
6+
import io.jenkins.plugins.gitlabserverconfig.servers.GitLabServer;
7+
import org.junit.Test;
8+
9+
public class GitLabHelperTest {
10+
11+
@Test
12+
public void server_url_does_not_have_trailing_slash() {
13+
assertThat(GitLabHelper.getServerUrl(null), is("https://gitlab.com"));
14+
15+
GitLabServer server1 = new GitLabServer("https://company.com/gitlab/", "comp_server", "1245");
16+
assertThat(GitLabHelper.getServerUrl(server1), is("https://company.com/gitlab"));
17+
18+
GitLabServer server2 = new GitLabServer("https://gitlab.example.org", "", "pw-id");
19+
assertThat(GitLabHelper.getServerUrl(server2), is("https://gitlab.example.org"));
20+
}
21+
}

0 commit comments

Comments
 (0)