]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-21121 Add POST /dop-translation/gitlab-configurations/
authorWojtek Wajerowicz <115081248+wojciech-wajerowicz-sonarsource@users.noreply.github.com>
Fri, 8 Dec 2023 11:51:20 +0000 (12:51 +0100)
committersonartech <sonartech@sonarsource.com>
Fri, 22 Dec 2023 20:03:02 +0000 (20:03 +0000)
server/sonar-auth-gitlab/src/main/java/org/sonar/auth/gitlab/GitLabSettings.java
server/sonar-auth-gitlab/src/test/java/org/sonar/auth/gitlab/GitLabSettingsTest.java
server/sonar-ce-common/src/main/java/org/sonar/ce/queue/CeQueue.java
server/sonar-ce-common/src/main/java/org/sonar/ce/queue/CeQueueImpl.java
server/sonar-webserver-common/src/main/java/org/sonar/server/common/UpdatedValue.java

index d81e75e3f826f9977ea85b924765d1726e75d76b..ff9ea68ee67b60f6c110face605b55b6a47a1032 100644 (file)
@@ -19,6 +19,7 @@
  */
 package org.sonar.auth.gitlab;
 
+import com.google.common.base.Strings;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
@@ -88,7 +89,7 @@ public class GitLabSettings implements DevOpsPlatformSettings {
   }
 
   public String provisioningToken() {
-    return configuration.get(GITLAB_AUTH_PROVISIONING_TOKEN).orElse(null);
+    return configuration.get(GITLAB_AUTH_PROVISIONING_TOKEN).map(Strings::emptyToNull).orElse(null);
   }
 
   public Set<String> provisioningGroups() {
index ca98c7e80721f3e925b257e0ed507ad77c2d241e..85548241db29f36cbe2c11902efd4f767b24777f 100644 (file)
@@ -41,6 +41,7 @@ public class GitLabSettingsTest {
   private MapSettings settings;
   private GitLabSettings config;
 
+
   @Before
   public void prepare() {
     settings = new MapSettings(new PropertyDefinitions(System2.INSTANCE, GitLabSettings.definitions()));
@@ -92,13 +93,13 @@ public class GitLabSettingsTest {
 
   @Test
   public void isProvisioningEnabled_whenNotSet_returnsFalse() {
-    enableGithubAuthentication();
+    enableGitlabAuthentication();
     assertThat(config.isProvisioningEnabled()).isFalse();
   }
 
   @Test
   public void isProvisioningEnabled_ifProvisioningDisabled_returnsFalse() {
-    enableGithubAuthentication();
+    enableGitlabAuthentication();
     settings.setProperty(GITLAB_AUTH_PROVISIONING_ENABLED, false);
     assertThat(config.isProvisioningEnabled()).isFalse();
   }
@@ -111,16 +112,15 @@ public class GitLabSettingsTest {
 
   @Test
   public void isProvisioningEnabled_ifProvisioningEnabledAndGithubAuthEnabled_returnsTrue() {
-    enableGithubAuthentication();
+    enableGitlabAuthentication();
     settings.setProperty(GITLAB_AUTH_PROVISIONING_ENABLED, true);
     assertThat(config.isProvisioningEnabled()).isTrue();
   }
 
-  private void enableGithubAuthentication() {
+  private void enableGitlabAuthentication() {
     settings.setProperty(GITLAB_AUTH_ENABLED, true);
     settings.setProperty(GITLAB_AUTH_APPLICATION_ID, "on");
     settings.setProperty(GITLAB_AUTH_SECRET, "on");
   }
 
 }
-
index f0333f07beae8839b1b2966839df68a9488c2cc5..9c7a3f7cc84d21e288a1d8a7274c94556f2e4a45 100644 (file)
@@ -32,7 +32,7 @@ import org.sonar.db.ce.CeQueueDto;
  * Queue of pending Compute Engine tasks. Both producer and consumer actions
  * are implemented.
  * <p>
- *   This class is decoupled from the regular task type {@link org.sonar.db.ce.CeTaskTypes#REPORT}.
+ * This class is decoupled from the regular task type {@link org.sonar.db.ce.CeTaskTypes#REPORT}.
  * </p>
  */
 public interface CeQueue {
@@ -60,10 +60,20 @@ public interface CeQueue {
    * This method is equivalent to calling {@code massSubmit(Collections.singletonList(submission))}.
    *
    * @return empty if {@code options} contains {@link SubmitOption#UNIQUE_QUEUE_PER_ENTITY UNIQUE_QUEUE_PER_MAIN_COMPONENT}
-   *         and there's already a queued task, otherwise the created task.
+   * and there's already a queued task, otherwise the created task.
    */
   Optional<CeTask> submit(CeTaskSubmit submission, SubmitOption... options);
 
+  /**
+   * Submits a task to the queue. The task is processed asynchronously.
+   * <p>
+   * This method is equivalent to calling {@code massSubmit(Collections.singletonList(submission))}.
+   *
+   * @return empty if {@code options} contains {@link SubmitOption#UNIQUE_QUEUE_PER_ENTITY UNIQUE_QUEUE_PER_MAIN_COMPONENT}
+   * and there's already a queued task, otherwise the created task.
+   */
+  Optional<CeTask> submit(DbSession dbSession, CeTaskSubmit submission, SubmitOption... options);
+
   /**
    * Submits multiple tasks to the queue at once. All tasks are processed asynchronously.
    * <p>
@@ -93,7 +103,7 @@ public interface CeQueue {
    * exception is thrown if the status is not {@link org.sonar.db.ce.CeQueueDto.Status#IN_PROGRESS}.
    *
    * The {@code dbSession} is committed.
-
+  
    * @throws RuntimeException if the task is concurrently removed from the queue
    */
   void fail(DbSession dbSession, CeQueueDto ceQueueDto, @Nullable String errorType, @Nullable String errorMessage);
index 99c7cfdbd0a923d7a15288b855237bedb6347a1e..7b043ffdf1304b928433210b1a924cfde776aa6f 100644 (file)
@@ -91,6 +91,11 @@ public class CeQueueImpl implements CeQueue {
     return submit(submission, toSet(options));
   }
 
+  @Override
+  public Optional<CeTask> submit(DbSession dbSession, CeTaskSubmit submission, SubmitOption... options) {
+    return submit(dbSession, submission, toSet(options));
+  }
+
   private Optional<CeTask> submit(CeTaskSubmit submission, Set<SubmitOption> submitOptions) {
     try (DbSession dbSession = dbClient.openSession(false)) {
       Optional<CeTask> ceTask = submit(dbSession, submission, submitOptions);
index 7941773c3780bdc2f8c9a8e522c5a7f7e36372a2..10f3d8783c5454458ded093cab91c8195a6904b7 100644 (file)
  */
 package org.sonar.server.common;
 
+import javax.annotation.Nullable;
 import java.util.Objects;
 import java.util.function.Consumer;
 import java.util.function.Function;
-import javax.annotation.Nullable;
 
 public class UpdatedValue<T> {
   final T value;
@@ -77,4 +77,12 @@ public class UpdatedValue<T> {
   public int hashCode() {
     return Objects.hash(value, isDefined);
   }
+
+  public T orElse(@Nullable T defaultValue) {
+    if (isDefined) {
+      return value;
+    } else {
+      return defaultValue;
+    }
+  }
 }