Browse Source

SONAR-14916 Add URL to BitbucketCloud instances

tags/9.0.0.45539
Jeremy Davis 3 years ago
parent
commit
0cd8882fb7

+ 9
- 1
server/sonar-webserver-webapi/src/main/java/org/sonar/server/almsettings/ws/ListAction.java View File

@@ -28,6 +28,7 @@ import org.sonar.api.server.ws.Response;
import org.sonar.api.server.ws.WebService;
import org.sonar.db.DbClient;
import org.sonar.db.DbSession;
import org.sonar.db.alm.setting.ALM;
import org.sonar.db.alm.setting.AlmSettingDto;
import org.sonar.db.project.ProjectDto;
import org.sonar.server.component.ComponentFinder;
@@ -43,6 +44,7 @@ import static org.sonar.server.ws.WsUtils.writeProtobuf;
public class ListAction implements AlmSettingsWsAction {

private static final String PARAM_PROJECT = "project";
private static final String BITBUCKETCLOUD_ROOT_URL = "https://bitbucket.org/";

private final DbClient dbClient;
private final UserSession userSession;
@@ -98,7 +100,13 @@ public class ListAction implements AlmSettingsWsAction {
AlmSetting.Builder almSettingBuilder = AlmSetting.newBuilder()
.setKey(almSetting.getKey())
.setAlm(AlmSettingsSupport.toAlmWs(almSetting.getAlm()));
ofNullable(almSetting.getUrl()).ifPresent(almSettingBuilder::setUrl);

if (almSetting.getAlm() == ALM.BITBUCKET_CLOUD) {
almSettingBuilder.setUrl(BITBUCKETCLOUD_ROOT_URL + almSetting.getAppId() + "/");
} else {
ofNullable(almSetting.getUrl()).ifPresent(almSettingBuilder::setUrl);
}

return almSettingBuilder.build();
})
.collect(Collectors.toList());

+ 3
- 2
server/sonar-webserver-webapi/src/test/java/org/sonar/server/almsettings/ws/ListActionTest.java View File

@@ -84,7 +84,8 @@ public class ListActionTest {
tuple(AlmSettings.Alm.gitlab, gitlabAlmSetting.getKey(), true, gitlabAlmSetting.getUrl()),
tuple(AlmSettings.Alm.gitlab, gitlabAlmSettingWithoutUrl.getKey(), false, ""),
tuple(AlmSettings.Alm.bitbucket, bitbucketAlmSetting.getKey(), true, bitbucketAlmSetting.getUrl()),
tuple(AlmSettings.Alm.bitbucketcloud, bitbucketCloudAlmSetting.getKey(), false, ""));
tuple(AlmSettings.Alm.bitbucketcloud, bitbucketCloudAlmSetting.getKey(), true,
"https://bitbucket.org/" + bitbucketCloudAlmSetting.getAppId() + "/"));
}

@Test
@@ -194,7 +195,7 @@ public class ListActionTest {
db.almSettings().insertBitbucketCloudAlmSetting(
almSettingDto -> almSettingDto
.setKey("Bitbucket Cloud - Dev Team")
.setUrl("https://bitbucket.org"));
.setAppId("workspace"));
db.almSettings().insertGitlabAlmSetting(
almSettingDto -> almSettingDto
.setKey("GitLab - Dev Team")

+ 1
- 1
server/sonar-webserver-webapi/src/test/resources/org/sonar/server/almsettings/ws/list-example.json View File

@@ -17,7 +17,7 @@
{
"key": "Bitbucket Cloud - Dev Team",
"alm": "bitbucketcloud",
"url": "https://bitbucket.org"
"url": "https://bitbucket.org/workspace/"
},
{
"key": "GitLab - Dev Team",

Loading…
Cancel
Save