aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/alm/setting/ALM.java3
-rw-r--r--server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsDbTester.java11
-rw-r--r--server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsTesting.java17
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/AlmSettingsService.java42
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/CreateGitlabRequest.java59
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/SetGitlabBindingRequest.java59
-rw-r--r--sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/UpdateGitlabRequest.java71
-rw-r--r--sonar-ws/src/main/protobuf/ws-alm_settings.proto7
8 files changed, 266 insertions, 3 deletions
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/setting/ALM.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/setting/ALM.java
index e99482e3ed8..e653dd33827 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/setting/ALM.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/setting/ALM.java
@@ -24,7 +24,8 @@ import java.util.Locale;
public enum ALM {
GITHUB,
BITBUCKET,
- AZURE_DEVOPS;
+ AZURE_DEVOPS,
+ GITLAB;
public static ALM fromId(String almId) {
return ALM.valueOf(almId.toUpperCase(Locale.ENGLISH));
diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsDbTester.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsDbTester.java
index aedee5b7d89..7f536f63f62 100644
--- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsDbTester.java
+++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsDbTester.java
@@ -32,6 +32,8 @@ import static org.sonar.db.almsettings.AlmSettingsTesting.newBitbucketAlmSetting
import static org.sonar.db.almsettings.AlmSettingsTesting.newBitbucketProjectAlmSettingDto;
import static org.sonar.db.almsettings.AlmSettingsTesting.newGithubAlmSettingDto;
import static org.sonar.db.almsettings.AlmSettingsTesting.newGithubProjectAlmSettingDto;
+import static org.sonar.db.almsettings.AlmSettingsTesting.newGitlabAlmSettingDto;
+import static org.sonar.db.almsettings.AlmSettingsTesting.newGitlabProjectAlmSettingDto;
public class AlmSettingsDbTester {
@@ -52,6 +54,11 @@ public class AlmSettingsDbTester {
}
@SafeVarargs
+ public final AlmSettingDto insertGitlabAlmSetting(Consumer<AlmSettingDto>... populators) {
+ return insert(newGitlabAlmSettingDto(), populators);
+ }
+
+ @SafeVarargs
public final AlmSettingDto insertBitbucketAlmSetting(Consumer<AlmSettingDto>... populators) {
return insert(newBitbucketAlmSettingDto(), populators);
}
@@ -65,6 +72,10 @@ public class AlmSettingsDbTester {
return insertProjectAlmSetting(newAzureProjectAlmSettingDto(azureAlmSetting, project));
}
+ public ProjectAlmSettingDto insertGitlabProjectAlmSetting(AlmSettingDto gitlabAlmSetting, ComponentDto project) {
+ return insertProjectAlmSetting(newGitlabProjectAlmSettingDto(gitlabAlmSetting, project));
+ }
+
@SafeVarargs
public final ProjectAlmSettingDto insertBitbucketProjectAlmSetting(AlmSettingDto bitbucketAlmSetting, ComponentDto project, Consumer<ProjectAlmSettingDto>... populators) {
return insertProjectAlmSetting(newBitbucketProjectAlmSettingDto(bitbucketAlmSetting, project), populators);
diff --git a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsTesting.java b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsTesting.java
index 13513e49bb8..f9defd29ab4 100644
--- a/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsTesting.java
+++ b/server/sonar-db-dao/src/testFixtures/java/org/sonar/db/almsettings/AlmSettingsTesting.java
@@ -44,6 +44,13 @@ public class AlmSettingsTesting {
.setAlm(ALM.AZURE_DEVOPS);
}
+ public static AlmSettingDto newGitlabAlmSettingDto() {
+ return new AlmSettingDto()
+ .setKey(randomAlphanumeric(200))
+ .setPersonalAccessToken(randomAlphanumeric(2000))
+ .setAlm(ALM.GITLAB);
+ }
+
public static AlmSettingDto newBitbucketAlmSettingDto() {
return new AlmSettingDto()
.setKey(randomAlphanumeric(200))
@@ -59,9 +66,15 @@ public class AlmSettingsTesting {
.setAlmRepo(randomAlphanumeric(256));
}
- static ProjectAlmSettingDto newAzureProjectAlmSettingDto(AlmSettingDto githubAlmSetting, ComponentDto project) {
+ static ProjectAlmSettingDto newAzureProjectAlmSettingDto(AlmSettingDto azureAlmSetting, ComponentDto project) {
return new ProjectAlmSettingDto()
- .setAlmSettingUuid(githubAlmSetting.getUuid())
+ .setAlmSettingUuid(azureAlmSetting.getUuid())
+ .setProjectUuid(project.uuid());
+ }
+
+ static ProjectAlmSettingDto newGitlabProjectAlmSettingDto(AlmSettingDto gitlabAlmSetting, ComponentDto project) {
+ return new ProjectAlmSettingDto()
+ .setAlmSettingUuid(gitlabAlmSetting.getUuid())
.setProjectUuid(project.uuid());
}
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/AlmSettingsService.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/AlmSettingsService.java
index 7cd7ca89474..d9f9a20137e 100644
--- a/sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/AlmSettingsService.java
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/AlmSettingsService.java
@@ -67,6 +67,20 @@ public class AlmSettingsService extends BaseService {
/**
*
* This is a POST request.
+ * @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/alm_settings/create_gitlab">Further information about this action online (including a response example)</a>
+ * @since 8.1
+ */
+ public void createGitlab(CreateGitlabRequest request) {
+ call(
+ new PostRequest(path("create_gitlab"))
+ .setParam("key", request.getKey())
+ .setParam("personalAccessToken", request.getPersonalAccessToken())
+ .setMediaType(MediaTypes.JSON)).content();
+ }
+
+ /**
+ *
+ * This is a POST request.
* @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/alm_settings/create_bitbucket">Further information about this action online (including a response example)</a>
* @since 8.1
*/
@@ -172,6 +186,19 @@ public class AlmSettingsService extends BaseService {
/**
* This is a POST request.
+ * @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/alm_settings/set_gitlab_binding">Further information about this action online (including a response example)</a>
+ * @since 8.1
+ */
+ public void setGitlabBinding(SetGitlabBindingRequest request) {
+ call(
+ new PostRequest(path("set_gitlab_binding"))
+ .setParam("almSetting", request.getAlmSetting())
+ .setParam("project", request.getProject())
+ .setMediaType(MediaTypes.JSON)).content();
+ }
+
+ /**
+ * This is a POST request.
* @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/alm_settings/set_bitbucket_binding">Further information about this action online (including a response example)</a>
* @since 8.1
*/
@@ -217,6 +244,21 @@ public class AlmSettingsService extends BaseService {
/**
*
* This is a POST request.
+ * @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/alm_settings/update_gitlab">Further information about this action online (including a response example)</a>
+ * @since 8.1
+ */
+ public void updateGitlab(UpdateGitlabRequest request) {
+ call(
+ new PostRequest(path("update_gitlab"))
+ .setParam("key", request.getKey())
+ .setParam("newKey", request.getNewKey())
+ .setParam("personalAccessToken", request.getPersonalAccessToken())
+ .setMediaType(MediaTypes.JSON)).content();
+ }
+
+ /**
+ *
+ * This is a POST request.
* @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/alm_settings/update_bitbucket">Further information about this action online (including a response example)</a>
* @since 8.1
*/
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/CreateGitlabRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/CreateGitlabRequest.java
new file mode 100644
index 00000000000..0196e627225
--- /dev/null
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/CreateGitlabRequest.java
@@ -0,0 +1,59 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2019 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+package org.sonarqube.ws.client.almsettings;
+
+import javax.annotation.Generated;
+
+/**
+ * This is a POST request.
+ * @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/alm_settings/create_gitlab">Further information about this action online (including a response example)</a>
+ * @since 8.1
+ */
+@Generated("sonar-ws-generator")
+public class CreateGitlabRequest {
+
+ private String key;
+ private String personalAccessToken;
+
+ /**
+ * This is a mandatory parameter.
+ */
+ public CreateGitlabRequest setKey(String key) {
+ this.key = key;
+ return this;
+ }
+
+ public String getKey() {
+ return key;
+ }
+
+ /**
+ * This is a mandatory parameter.
+ */
+ public CreateGitlabRequest setPersonalAccessToken(String personalAccessToken) {
+ this.personalAccessToken = personalAccessToken;
+ return this;
+ }
+
+ public String getPersonalAccessToken() {
+ return personalAccessToken;
+ }
+
+}
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/SetGitlabBindingRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/SetGitlabBindingRequest.java
new file mode 100644
index 00000000000..3bcd1b1afa4
--- /dev/null
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/SetGitlabBindingRequest.java
@@ -0,0 +1,59 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2019 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+package org.sonarqube.ws.client.almsettings;
+
+import javax.annotation.Generated;
+
+/**
+ * This is a POST request.
+ * @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/alm_settings/set_gitlab_binding">Further information about this action online (including a response example)</a>
+ * @since 8.1
+ */
+@Generated("sonar-ws-generator")
+public class SetGitlabBindingRequest {
+
+ private String almSetting;
+ private String project;
+
+ /**
+ * This is a mandatory parameter.
+ */
+ public SetGitlabBindingRequest setAlmSetting(String almSetting) {
+ this.almSetting = almSetting;
+ return this;
+ }
+
+ public String getAlmSetting() {
+ return almSetting;
+ }
+
+ /**
+ * This is a mandatory parameter.
+ */
+ public SetGitlabBindingRequest setProject(String project) {
+ this.project = project;
+ return this;
+ }
+
+ public String getProject() {
+ return project;
+ }
+
+}
diff --git a/sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/UpdateGitlabRequest.java b/sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/UpdateGitlabRequest.java
new file mode 100644
index 00000000000..e282158901b
--- /dev/null
+++ b/sonar-ws/src/main/java/org/sonarqube/ws/client/almsettings/UpdateGitlabRequest.java
@@ -0,0 +1,71 @@
+/*
+ * SonarQube
+ * Copyright (C) 2009-2019 SonarSource SA
+ * mailto:info AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+package org.sonarqube.ws.client.almsettings;
+
+import javax.annotation.Generated;
+
+/**
+ * This is a POST request.
+ * @see <a href="https://next.sonarqube.com/sonarqube/web_api/api/alm_settings/update_gitlab">Further information about this action online (including a response example)</a>
+ * @since 8.1
+ */
+@Generated("sonar-ws-generator")
+public class UpdateGitlabRequest {
+
+ private String key;
+ private String newKey;
+ private String personalAccessToken;
+
+ public String getKey() {
+ return key;
+ }
+
+ /**
+ * This is a mandatory parameter.
+ */
+ public UpdateGitlabRequest setKey(String key) {
+ this.key = key;
+ return this;
+ }
+
+ public String getNewKey() {
+ return newKey;
+ }
+
+ /**
+ */
+ public UpdateGitlabRequest setNewKey(String newKey) {
+ this.newKey = newKey;
+ return this;
+ }
+
+ public String getPersonalAccessToken() {
+ return personalAccessToken;
+ }
+
+ /**
+ * This is a mandatory parameter.
+ */
+ public UpdateGitlabRequest setPersonalAccessToken(String personalAccessToken) {
+ this.personalAccessToken = personalAccessToken;
+ return this;
+ }
+
+}
diff --git a/sonar-ws/src/main/protobuf/ws-alm_settings.proto b/sonar-ws/src/main/protobuf/ws-alm_settings.proto
index abbae3a99b8..13c5403a335 100644
--- a/sonar-ws/src/main/protobuf/ws-alm_settings.proto
+++ b/sonar-ws/src/main/protobuf/ws-alm_settings.proto
@@ -29,6 +29,7 @@ message ListDefinitionsWsResponse {
repeated AlmSettingGithub github = 1;
repeated AlmSettingAzure azure = 2;
repeated AlmSettingBitbucket bitbucket = 3;
+ repeated AlmSettingGitlab gitlab = 4;
}
message AlmSettingGithub {
@@ -49,6 +50,11 @@ message AlmSettingBitbucket {
optional string personalAccessToken = 3;
}
+message AlmSettingGitlab {
+ optional string key = 1;
+ optional string personalAccessToken = 2;
+}
+
// WS api/alm_settings/get_binding
message GetBindingWsResponse {
optional string key = 1;
@@ -62,6 +68,7 @@ enum Alm {
github = 0;
azure = 1;
bitbucket = 2;
+ gitlab = 3;
}
// WS api/alm_settings/list