From 03864f78c51d5f4c42401f7de9ba9e0575ee1d0d Mon Sep 17 00:00:00 2001 From: Yarden Shoham Date: Tue, 21 Feb 2023 19:35:14 +0200 Subject: [PATCH] Return empty url for submodule tree entries (#23043) (#23048) Backport #23043 Close #22614. Refer to [Github's API](https://docs.github.com/en/rest/git/trees?apiVersion=2022-11-28#get-a-tree), if a tree entry is a submodule, its url will be an empty string. Co-authored-by: Zettat123 Co-authored-by: delvh Co-authored-by: John Olheiser (cherry picked from commit 8f5b2f1ddf8e7dad04958f2190e1d717fdc9c177) --- services/repository/files/tree.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/services/repository/files/tree.go b/services/repository/files/tree.go index 513b8a2274..1df1cb582b 100644 --- a/services/repository/files/tree.go +++ b/services/repository/files/tree.go @@ -86,6 +86,11 @@ func GetTreeBySHA(ctx context.Context, repo *repo_model.Repository, gitRepo *git if entries[e].IsDir() { copy(treeURL[copyPos:], entries[e].ID.String()) tree.Entries[i].URL = string(treeURL) + } else if entries[e].IsSubModule() { + // In Github Rest API Version=2022-11-28, if a tree entry is a submodule, + // its url will be returned as an empty string. + // So the URL will be set to "" here. + tree.Entries[i].URL = "" } else { copy(blobURL[copyPos:], entries[e].ID.String()) tree.Entries[i].URL = string(blobURL)