aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-db-dao
diff options
context:
space:
mode:
authorJulien Lancelot <julien.lancelot@sonarsource.com>2018-10-15 11:55:35 +0200
committerSonarTech <sonartech@sonarsource.com>2018-11-16 20:21:03 +0100
commitf61d654f7d74036f50f2a1ca6b380a437ec911a2 (patch)
tree9a89718368daa1b60d5547ef606fbd00ebca59fc /server/sonar-db-dao
parentf8694e7d8b50651cba439fb5847ffde2d3bd013c (diff)
downloadsonarqube-f61d654f7d74036f50f2a1ca6b380a437ec911a2.tar.gz
sonarqube-f61d654f7d74036f50f2a1ca6b380a437ec911a2.zip
SONAR-11321 Create organization from GitHub organization or BitBucket team
* Create api/alm_integration/show_organization and handle only GitHub installation * Add import from ALM tab in Create Org page * Do not show error while validating detail input * Add step to create organization from ALM * Display a warning if the installation id was not found * Add Alm link to remote organization in org context * Create GET api/alm_integration/show_app_info
Diffstat (limited to 'server/sonar-db-dao')
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmAppInstallDao.java5
-rw-r--r--server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmAppInstallMapper.java3
-rw-r--r--server/sonar-db-dao/src/main/resources/org/sonar/db/alm/AlmAppInstallMapper.xml10
-rw-r--r--server/sonar-db-dao/src/test/java/org/sonar/db/alm/AlmAppInstallDaoTest.java13
4 files changed, 29 insertions, 2 deletions
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmAppInstallDao.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmAppInstallDao.java
index 03361e5b586..04302fe6f06 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmAppInstallDao.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmAppInstallDao.java
@@ -52,6 +52,11 @@ public class AlmAppInstallDao implements Dao {
return Optional.ofNullable(mapper.selectByOwner(alm.getId(), ownerId));
}
+ public Optional<String> getOwerId(DbSession dbSession, ALM alm, String installationId) {
+ AlmAppInstallMapper mapper = getMapper(dbSession);
+ return Optional.ofNullable(mapper.selectOwnerId(alm.getId(), installationId));
+ }
+
public List<AlmAppInstallDto> findAllWithNoOwnerType(DbSession dbSession) {
return getMapper(dbSession).selectAllWithNoOwnerType();
}
diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmAppInstallMapper.java b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmAppInstallMapper.java
index 809a054ca26..cb979c2217f 100644
--- a/server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmAppInstallMapper.java
+++ b/server/sonar-db-dao/src/main/java/org/sonar/db/alm/AlmAppInstallMapper.java
@@ -29,6 +29,9 @@ public interface AlmAppInstallMapper {
@CheckForNull
AlmAppInstallDto selectByOwner(@Param("almId") String almId, @Param("ownerId") String ownerId);
+ @CheckForNull
+ String selectOwnerId(@Param("almId") String almId, @Param("installId") String installId);
+
List<AlmAppInstallDto> selectAllWithNoOwnerType();
void insert(@Param("uuid") String uuid, @Param("almId") String almId, @Param("ownerId") String ownerId,
diff --git a/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/AlmAppInstallMapper.xml b/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/AlmAppInstallMapper.xml
index 2454efde08c..d96a33dfe13 100644
--- a/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/AlmAppInstallMapper.xml
+++ b/server/sonar-db-dao/src/main/resources/org/sonar/db/alm/AlmAppInstallMapper.xml
@@ -22,6 +22,16 @@
and owner_id = #{ownerId, jdbcType=VARCHAR}
</select>
+ <select id="selectOwnerId" parameterType="Map" resultType="String">
+ select
+ owner_id as ownerId
+ from
+ alm_app_installs
+ where
+ alm_id = #{almId, jdbcType=VARCHAR}
+ and install_id = #{installId, jdbcType=VARCHAR}
+ </select>
+
<select id="selectAllWithNoOwnerType" parameterType="Map" resultType="org.sonar.db.alm.AlmAppInstallDto">
select <include refid="sqlColumns" />
from
diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/alm/AlmAppInstallDaoTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/alm/AlmAppInstallDaoTest.java
index 5a15a5a04ab..00955915f03 100644
--- a/server/sonar-db-dao/src/test/java/org/sonar/db/alm/AlmAppInstallDaoTest.java
+++ b/server/sonar-db-dao/src/test/java/org/sonar/db/alm/AlmAppInstallDaoTest.java
@@ -72,7 +72,6 @@ public class AlmAppInstallDaoTest {
assertThat(underTest.selectByOwner(dbSession, BITBUCKETCLOUD, A_OWNER)).isEmpty();
}
-
@Test
public void selectByOwner_throws_NPE_when_alm_is_null() {
expectAlmNPE();
@@ -95,6 +94,16 @@ public class AlmAppInstallDaoTest {
}
@Test
+ public void getOwnerId() {
+ when(uuidFactory.create()).thenReturn(A_UUID);
+ underTest.insertOrUpdate(dbSession, GITHUB, A_OWNER, true, AN_INSTALL);
+
+ assertThat(underTest.getOwerId(dbSession, GITHUB, AN_INSTALL)).contains(A_OWNER);
+ assertThat(underTest.getOwerId(dbSession, GITHUB, "unknown")).isEmpty();
+ assertThat(underTest.getOwerId(dbSession, BITBUCKETCLOUD, AN_INSTALL)).isEmpty();
+ }
+
+ @Test
public void insert_throws_NPE_if_alm_is_null() {
expectAlmNPE();
@@ -170,7 +179,7 @@ public class AlmAppInstallDaoTest {
underTest.insertOrUpdate(dbSession, GITHUB, A_OWNER, true, AN_INSTALL);
when(system2.now()).thenReturn(DATE_LATER);
- underTest.insertOrUpdate(dbSession, GITHUB, A_OWNER, true, OTHER_INSTALL);
+ underTest.insertOrUpdate(dbSession, GITHUB, A_OWNER,true, OTHER_INSTALL);
assertThatAlmAppInstall(GITHUB, A_OWNER)
.hasInstallId(OTHER_INSTALL)