Fix file path of weblinks for code owner config files
When creating weblinks we need to pass in the file path without any
leading slash.
Bug: Google b/345161989
Change-Id: I63981d439c4a4cff569e7a32ba7b2ee7640c243e
Signed-off-by: Edwin Kempin <ekempin@google.com>
diff --git a/java/com/google/gerrit/plugins/codeowners/restapi/CodeOwnerConfigFileJson.java b/java/com/google/gerrit/plugins/codeowners/restapi/CodeOwnerConfigFileJson.java
index ed59a8e..9dedada 100644
--- a/java/com/google/gerrit/plugins/codeowners/restapi/CodeOwnerConfigFileJson.java
+++ b/java/com/google/gerrit/plugins/codeowners/restapi/CodeOwnerConfigFileJson.java
@@ -24,6 +24,7 @@
import com.google.gerrit.plugins.codeowners.backend.CodeOwnerConfig;
import com.google.gerrit.plugins.codeowners.backend.CodeOwnerConfigImport;
import com.google.gerrit.plugins.codeowners.backend.UnresolvedImportFormatter;
+import com.google.gerrit.plugins.codeowners.util.JgitPath;
import com.google.gerrit.server.WebLinks;
import com.google.inject.Inject;
import java.util.List;
@@ -63,7 +64,10 @@
ImmutableList<WebLinkInfo> fileLinks =
webLinks.getFileLinks(
- info.project, info.branch, codeOwnerConfig.revision().getName(), info.path);
+ info.project,
+ info.branch,
+ codeOwnerConfig.revision().getName(),
+ JgitPath.of(info.path).get());
info.webLinks = !fileLinks.isEmpty() ? fileLinks : null;
return info;
diff --git a/javatests/com/google/gerrit/plugins/codeowners/restapi/CodeOwnerConfigFileJsonIT.java b/javatests/com/google/gerrit/plugins/codeowners/restapi/CodeOwnerConfigFileJsonIT.java
index fa1d9c8..615a3dd 100644
--- a/javatests/com/google/gerrit/plugins/codeowners/restapi/CodeOwnerConfigFileJsonIT.java
+++ b/javatests/com/google/gerrit/plugins/codeowners/restapi/CodeOwnerConfigFileJsonIT.java
@@ -557,11 +557,16 @@
}
private WebLinkInfo createWebLink(CodeOwnerConfig codeOwnerConfig) {
+ String path = codeOwnerConfigOperations.codeOwnerConfig(codeOwnerConfig.key()).getFilePath();
+ if (path.startsWith("/")) {
+ path = path.substring(1);
+ }
+
return createWebLink(
codeOwnerConfig.key().project().get(),
codeOwnerConfig.key().branchNameKey().branch(),
codeOwnerConfig.revision().getName(),
- codeOwnerConfigOperations.codeOwnerConfig(codeOwnerConfig.key()).getFilePath());
+ path);
}
private WebLinkInfo createWebLink(