From 3b3eaec840386663c2d1035d267df613820c1547 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Mon, 23 Dec 2024 22:08:53 -0800 Subject: [PATCH 1/2] Fix todo --- routers/web/repo/tree.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/routers/web/repo/tree.go b/routers/web/repo/tree.go index 9388d65480..92dd2bfdf2 100644 --- a/routers/web/repo/tree.go +++ b/routers/web/repo/tree.go @@ -8,6 +8,7 @@ import ( "code.gitea.io/gitea/modules/base" "code.gitea.io/gitea/modules/git" + "code.gitea.io/gitea/modules/gitrepo" "code.gitea.io/gitea/services/context" files_service "code.gitea.io/gitea/services/repository/files" @@ -59,10 +60,18 @@ func Tree(ctx *context.Context) { ref := ctx.FormTrim("ref") recursive := ctx.FormBool("recursive") - // TODO: Only support branch for now - results, err := files_service.GetTreeList(ctx, ctx.Repo.Repository, dir, git.RefNameFromBranch(ref), recursive) + gitRepo, closer, err := gitrepo.RepositoryFromContextOrOpen(ctx, ctx.Repo.Repository) if err != nil { - ctx.ServerError("guessRefInfoAndDir", err) + ctx.ServerError("RepositoryFromContextOrOpen", err) + return + } + defer closer.Close() + + refName := gitRepo.UnstableGuessRefByShortName(ref) + + results, err := files_service.GetTreeList(ctx, ctx.Repo.Repository, dir, refName, recursive) + if err != nil { + ctx.ServerError("GetTreeList", err) return } From f2b1da53925a686e9ebe7e3a01e51708334bf1a7 Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Mon, 23 Dec 2024 22:30:21 -0800 Subject: [PATCH 2/2] Fix bug --- services/repository/files/tree.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/repository/files/tree.go b/services/repository/files/tree.go index 3b31275bde..b292b5e549 100644 --- a/services/repository/files/tree.go +++ b/services/repository/files/tree.go @@ -140,7 +140,7 @@ func GetTreeList(ctx context.Context, repo *repo_model.Repository, treePath stri // Check that the path given in opts.treePath is valid (not a git path) cleanTreePath := CleanUploadFileName(treePath) if cleanTreePath == "" && treePath != "" { - return nil, models.ErrFilenameInvalid{ + return nil, ErrFilenameInvalid{ Path: treePath, } }