]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-22807 Implement get and patch gitlab permissions mapping endpoint
authorNolwenn Cadic <98824442+Nolwenn-cadic-sonarsource@users.noreply.github.com>
Fri, 23 Aug 2024 09:39:44 +0000 (11:39 +0200)
committersonartech <sonartech@sonarsource.com>
Fri, 23 Aug 2024 20:02:33 +0000 (20:02 +0000)
server/sonar-db-dao/src/it/java/org/sonar/db/provisioning/DevOpsPermissionsMappingDaoIT.java
server/sonar-db-dao/src/main/java/org/sonar/db/provisioning/DevOpsPermissionsMappingDao.java
server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v107/AddDevopsPlatformColumnInDevopsPermsMappingIT.java
server/sonar-db-migration/src/it/java/org/sonar/server/platform/db/migration/version/v107/PopulateGitlabDevopsPermissionsMappingIT.java
server/sonar-db-migration/src/main/java/org/sonar/server/platform/db/migration/version/v107/DropPrimaryKeyOnDevopsPermsMappingTable.java
server/sonar-webserver-common/src/main/java/org/sonar/server/common/almsettings/github/GithubProjectCreator.java
server/sonar-webserver-webapi-v2/src/main/java/org/sonar/server/v2/WebApiEndpoints.java

index 12a9ad741b0e24f596207c3051a771e6c9dcf2ba..54378bab827796228311b99d6f5c20bf7e3ce7e2 100644 (file)
@@ -152,7 +152,7 @@ class DevOpsPermissionsMappingDaoIT {
     underTest.insert(dbSession, mapping2);
     underTest.insert(dbSession, mapping3);
 
-    Set<DevOpsPermissionsMappingDto> forRole2 = underTest.findAllForRole(dbSession, DEV_OPS_PLATFORM, "GH_role2");
+    Set<DevOpsPermissionsMappingDto> forRole2 = underTest.findAllForDevopsRole(dbSession, DEV_OPS_PLATFORM, "GH_role2");
     assertThat(forRole2).hasSize(2)
       .containsExactlyInAnyOrder(mapping2, mapping3);
 
index c5737e62910470d1feea772b8eb03bdd2536e212..800ee25003f2fadbf77290eab90e202c6a922fd6 100644 (file)
@@ -37,7 +37,7 @@ public class DevOpsPermissionsMappingDao implements Dao {
     return mapper(dbSession).selectAll(devOpsPlatform);
   }
 
-  public Set<DevOpsPermissionsMappingDto> findAllForRole(DbSession dbSession, String devOpsPlatform, String role) {
+  public Set<DevOpsPermissionsMappingDto> findAllForDevopsRole(DbSession dbSession, String devOpsPlatform, String role) {
     return mapper(dbSession).selectAllForRole(devOpsPlatform, role);
   }
 
index 0c9547dc723bda94a3d43721fae331f8238feea7..c66906c6402f4f9ea46ed130f190790e13a9db63 100644 (file)
@@ -26,7 +26,7 @@ import org.junit.jupiter.api.extension.RegisterExtension;
 import org.sonar.db.MigrationDbTester;
 
 import static java.sql.Types.VARCHAR;
-import static org.assertj.core.api.AssertionsForClassTypes.assertThat;
+import static org.assertj.core.api.Assertions.assertThat;
 import static org.sonar.server.platform.db.migration.version.v107.AddDevopsPlatformColumnInDevopsPermsMapping.DEVOPS_PLATFORM_COLUMN_NAME;
 import static org.sonar.server.platform.db.migration.version.v107.AddDevopsPlatformColumnInDevopsPermsMapping.DEFAULT_COLUMN_VALUE;
 import static org.sonar.server.platform.db.migration.version.v107.RenameGithubPermsMappingTable.DEVOPS_PERMS_MAPPING_TABLE_NAME;
@@ -62,7 +62,7 @@ class AddDevopsPlatformColumnInDevopsPermsMappingIT {
 
   private void assertDevopsPlatformColumnSetToDefault() {
     Map<String, Object> selectResult = db.selectFirst("select devops_platform from devops_perms_mapping where uuid = 'UUID'");
-    assertThat(selectResult.get("devops_platform")).isEqualTo(DEFAULT_COLUMN_VALUE);
+    assertThat(selectResult).containsEntry("devops_platform", DEFAULT_COLUMN_VALUE);
   }
 
   private void assertColumnExists() {
index b3c7e3259ff167fb1acdaa0eabe5331cc41aaa3a..90342d1a9a466e624233746ab2fa486ddd7fb897 100644 (file)
@@ -24,6 +24,7 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.RegisterExtension;
 import org.sonar.api.testfixtures.log.LogTesterJUnit5;
 import org.sonar.core.util.UuidFactoryFast;
+import org.sonar.core.util.UuidFactoryImpl;
 import org.sonar.db.MigrationDbTester;
 
 import static org.assertj.core.api.Assertions.assertThat;
@@ -37,7 +38,7 @@ class PopulateGitlabDevopsPermissionsMappingIT {
   @RegisterExtension
   public final LogTesterJUnit5 logTester = new LogTesterJUnit5();
 
-  private final PopulateGitlabDevOpsPermissionsMapping migration = new PopulateGitlabDevOpsPermissionsMapping(db.database(), UuidFactoryFast.getInstance());
+  private final PopulateGitlabDevOpsPermissionsMapping migration = new PopulateGitlabDevOpsPermissionsMapping(db.database(), UuidFactoryImpl.INSTANCE);
 
   @Test
   void execute_whenTableIsEmpty_shouldPopulate() throws SQLException {
@@ -57,7 +58,7 @@ class PopulateGitlabDevopsPermissionsMappingIT {
   @Test
   void execute_whenTableAlreadyPopulated_doesNothing() throws SQLException {
     db.executeInsert(DEVOPS_PERMS_MAPPING_TABLE_NAME,
-      "UUID", UuidFactoryFast.getInstance().create(),
+      "UUID", UuidFactoryImpl.INSTANCE.create(),
       "devops_platform", "gitlab",
       "devops_platform_role", "role1",
       "sonarqube_permission", "sq_perm");
@@ -72,7 +73,7 @@ class PopulateGitlabDevopsPermissionsMappingIT {
   @Test
   void execute_whenTableAlreadyPopulatedWithGithub_appliesMigration() throws SQLException {
     db.executeInsert(DEVOPS_PERMS_MAPPING_TABLE_NAME,
-      "UUID", UuidFactoryFast.getInstance().create(),
+      "UUID", UuidFactoryImpl.INSTANCE.create(),
       "devops_platform", "github",
       "devops_platform_role", "role1",
       "sonarqube_permission", "sq_perm");
index 6eb6aa7a8034bf1f264f6e8ad8164e4632365180..693893ac1eb93ca8ba22914aa988f04e03099d62 100644 (file)
 package org.sonar.server.platform.db.migration.version.v107;
 
 import com.google.common.annotations.VisibleForTesting;
-import java.sql.Connection;
 import java.sql.SQLException;
 import java.util.List;
 import java.util.Optional;
 import org.sonar.db.Database;
-import org.sonar.db.DatabaseUtils;
 import org.sonar.server.platform.db.migration.sql.DbPrimaryKeyConstraintFinder;
 import org.sonar.server.platform.db.migration.sql.DropPrimaryKeySqlGenerator;
 import org.sonar.server.platform.db.migration.step.DdlChange;
index 63da59976791f80cd19f4f2b1510456d84acc147..e44c0debdb5bd15e26e71ba0e678e75cbba9866d 100644 (file)
@@ -74,7 +74,8 @@ public class GithubProjectCreator extends DefaultDevOpsProjectCreator {
     String organization = orgaAndRepoTokenified[0];
     String repository = orgaAndRepoTokenified[1];
 
-    Set<DevOpsPermissionsMappingDto> permissionsMappingDtos = dbClient.githubPermissionsMappingDao().findAll(dbClient.openSession(false), devOpsPlatformSettings.getDevOpsPlatform());
+    Set<DevOpsPermissionsMappingDto> permissionsMappingDtos = dbClient.githubPermissionsMappingDao()
+      .findAll(dbClient.openSession(false), devOpsPlatformSettings.getDevOpsPlatform());
 
     boolean userHasDirectAccessToRepo = doesUserHaveScanPermission(organization, repository, permissionsMappingDtos);
     if (userHasDirectAccessToRepo) {
index a705491096d234ecfeaf6cf5cd56219f49b06f0b..62304f218b4845b2957326ac11de88d5992de457 100644 (file)
@@ -45,6 +45,7 @@ public class WebApiEndpoints {
   public static final String BOUND_PROJECTS_ENDPOINT = DOP_TRANSLATION_DOMAIN + "/bound-projects";
   public static final String PROJECT_BINDINGS_ENDPOINT = DOP_TRANSLATION_DOMAIN + "/project-bindings";
   public static final String DOP_SETTINGS_ENDPOINT = DOP_TRANSLATION_DOMAIN + "/dop-settings";
+  public static final String GITLAB_PERMISSIONS_MAPPING_ENDPOINT = DOP_TRANSLATION_DOMAIN + "/gitlab-permission-mappings";
 
   public static final String ANALYSIS_DOMAIN = "/analysis";
   public static final String VERSION_ENDPOINT = ANALYSIS_DOMAIN + "/version";