From 7c598014a2f4c1cd34ff5f95d62dfd5c8eeb1e3a Mon Sep 17 00:00:00 2001 From: Anatolii Bazko Date: Thu, 8 Jun 2023 12:44:06 +0300 Subject: [PATCH] fix: Cloning projects from Azure DevOps (#522) Signed-off-by: Anatolii Bazko --- .../server/azure/devops/AzureDevOpsURLParser.java | 14 ++++++++------ .../server/azure/devops/AzureDevOpsUrl.java | 6 +----- .../azure/devops/AzureDevOpsURLParserTest.java | 2 +- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/wsmaster/che-core-api-factory-azure-devops/src/main/java/org/eclipse/che/api/factory/server/azure/devops/AzureDevOpsURLParser.java b/wsmaster/che-core-api-factory-azure-devops/src/main/java/org/eclipse/che/api/factory/server/azure/devops/AzureDevOpsURLParser.java index 5cad6fda72..6bfd60016c 100644 --- a/wsmaster/che-core-api-factory-azure-devops/src/main/java/org/eclipse/che/api/factory/server/azure/devops/AzureDevOpsURLParser.java +++ b/wsmaster/che-core-api-factory-azure-devops/src/main/java/org/eclipse/che/api/factory/server/azure/devops/AzureDevOpsURLParser.java @@ -70,17 +70,19 @@ public class AzureDevOpsURLParser { throw new IllegalArgumentException(format("The given url %s is not a valid.", url)); } - String project = null; - try { - project = matcher.group("project"); - } catch (IllegalArgumentException e) { - } - String repoName = matcher.group("repoName"); if (repoName.endsWith(".git")) { repoName = repoName.substring(0, repoName.length() - 4); } + String project = matcher.group("project"); + if (project == null) { + // if project is not specified, repo name must be equal to project name + // https://dev.azure.com///_git/ == + // https://dev.azure.com//_git/ + project = repoName; + } + String organization = matcher.group("organization"); String branch = matcher.group("branch"); String tag = matcher.group("tag"); diff --git a/wsmaster/che-core-api-factory-azure-devops/src/main/java/org/eclipse/che/api/factory/server/azure/devops/AzureDevOpsUrl.java b/wsmaster/che-core-api-factory-azure-devops/src/main/java/org/eclipse/che/api/factory/server/azure/devops/AzureDevOpsUrl.java index e69d102bf8..ac25cf9655 100644 --- a/wsmaster/che-core-api-factory-azure-devops/src/main/java/org/eclipse/che/api/factory/server/azure/devops/AzureDevOpsUrl.java +++ b/wsmaster/che-core-api-factory-azure-devops/src/main/java/org/eclipse/che/api/factory/server/azure/devops/AzureDevOpsUrl.java @@ -149,11 +149,7 @@ public class AzureDevOpsUrl extends DefaultFactoryUrl { } private StringJoiner getRepoPathJoiner() { - StringJoiner repoPath = new StringJoiner("/").add(hostName).add(organization); - if (project != null) { - repoPath.add("_git"); - } - return repoPath; + return new StringJoiner("/").add(hostName).add(organization).add(project); } @Override diff --git a/wsmaster/che-core-api-factory-azure-devops/src/test/java/org/eclipse/che/api/factory/server/azure/devops/AzureDevOpsURLParserTest.java b/wsmaster/che-core-api-factory-azure-devops/src/test/java/org/eclipse/che/api/factory/server/azure/devops/AzureDevOpsURLParserTest.java index cbe43a6206..3ef9faade6 100644 --- a/wsmaster/che-core-api-factory-azure-devops/src/test/java/org/eclipse/che/api/factory/server/azure/devops/AzureDevOpsURLParserTest.java +++ b/wsmaster/che-core-api-factory-azure-devops/src/test/java/org/eclipse/che/api/factory/server/azure/devops/AzureDevOpsURLParserTest.java @@ -133,7 +133,7 @@ public class AzureDevOpsURLParserTest { null, "MyTag" }, - {"https://MyOrg@dev.azure.com/MyOrg/_git/MyRepo", "MyOrg", null, "MyRepo", null, null}, + {"https://MyOrg@dev.azure.com/MyOrg/_git/MyRepo", "MyOrg", "MyRepo", "MyRepo", null, null}, }; }