diff options
author | Julien Lancelot <julien.lancelot@sonarsource.com> | 2018-10-15 11:55:35 +0200 |
---|---|---|
committer | SonarTech <sonartech@sonarsource.com> | 2018-11-16 20:21:03 +0100 |
commit | f61d654f7d74036f50f2a1ca6b380a437ec911a2 (patch) | |
tree | 9a89718368daa1b60d5547ef606fbd00ebca59fc /server/sonar-db-dao | |
parent | f8694e7d8b50651cba439fb5847ffde2d3bd013c (diff) | |
download | sonarqube-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')
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) |