Bläddra i källkod

SONAR-21119 Support Gitlab API url from config

tags/10.4.0.87286
Antoine Vigneau 5 månader sedan
förälder
incheckning
0b634fb2bf

+ 5
- 7
server/sonar-auth-gitlab/src/main/java/org/sonar/auth/gitlab/GitLabRestClient.java Visa fil

@@ -28,16 +28,14 @@ import org.sonar.auth.OAuthRestClient;

public class GitLabRestClient {

private static final String API_SUFFIX = "/api/v4";
private final GitLabSettings gitLabSettings;

private final GitLabSettings settings;

public GitLabRestClient(GitLabSettings settings) {
this.settings = settings;
public GitLabRestClient(GitLabSettings gitLabSettings) {
this.gitLabSettings = gitLabSettings;
}

GsonUser getUser(OAuth20Service scribe, OAuth2AccessToken accessToken) {
try (Response response = OAuthRestClient.executeRequest(settings.url() + API_SUFFIX + "/user", scribe, accessToken)) {
try (Response response = OAuthRestClient.executeRequest(gitLabSettings.apiUrl() + "/user", scribe, accessToken)) {
String responseBody = response.getBody();
return GsonUser.parse(responseBody);
} catch (IOException e) {
@@ -46,6 +44,6 @@ public class GitLabRestClient {
}

List<GsonGroup> getGroups(OAuth20Service scribe, OAuth2AccessToken accessToken) {
return OAuthRestClient.executePaginatedRequest(settings.url() + API_SUFFIX + "/groups?min_access_level=10", scribe, accessToken, GsonGroup::parse);
return OAuthRestClient.executePaginatedRequest(gitLabSettings.apiUrl() + "/groups?min_access_level=10", scribe, accessToken, GsonGroup::parse);
}
}

+ 5
- 1
server/sonar-auth-gitlab/src/main/java/org/sonar/auth/gitlab/GitLabSettings.java Visa fil

@@ -63,6 +63,10 @@ public class GitLabSettings implements DevOpsPlatformSettings {
return url;
}

public String apiUrl() {
return url() + "/api/v4";
}

public String applicationId() {
return configuration.get(GITLAB_AUTH_APPLICATION_ID).orElse(null);
}
@@ -119,7 +123,7 @@ public class GitLabSettings implements DevOpsPlatformSettings {
.build(),
PropertyDefinition.builder(GITLAB_AUTH_URL)
.name("GitLab URL")
.description("URL to access GitLab.")
.description("Base URL to access GitLab. https://gitlab.com for Gitlab SaaS")
.category(CATEGORY)
.subCategory(SUBCATEGORY)
.defaultValue("https://gitlab.com")

+ 7
- 4
server/sonar-auth-gitlab/src/test/java/org/sonar/auth/gitlab/GitLabSettingsTest.java Visa fil

@@ -50,12 +50,15 @@ public class GitLabSettingsTest {
@Test
public void test_settings() {
assertThat(config.url()).isEqualTo("https://gitlab.com");
assertThat(config.apiUrl()).isEqualTo("https://gitlab.com/api/v4");

settings.setProperty(GITLAB_AUTH_URL, "https://gitlab.com/api/");
assertThat(config.url()).isEqualTo("https://gitlab.com/api");
settings.setProperty(GITLAB_AUTH_URL, "https://onpremise.gitlab.com/");
assertThat(config.url()).isEqualTo("https://onpremise.gitlab.com");
assertThat(config.apiUrl()).isEqualTo("https://onpremise.gitlab.com/api/v4");

settings.setProperty(GITLAB_AUTH_URL, "https://gitlab.com/api");
assertThat(config.url()).isEqualTo("https://gitlab.com/api");
settings.setProperty(GITLAB_AUTH_URL, "https://onpremise.gitlab.com");
assertThat(config.url()).isEqualTo("https://onpremise.gitlab.com");
assertThat(config.apiUrl()).isEqualTo("https://onpremise.gitlab.com/api/v4");

assertThat(config.isEnabled()).isFalse();
settings.setProperty(GITLAB_AUTH_ENABLED, "true");

Laddar…
Avbryt
Spara