Skip to content

Commit

Permalink
Avoid recursing into sub-sub-sub-docs folders when looking for READMEs.
Browse files Browse the repository at this point in the history
Fixes a bug introduced in go-gitea#22177
which allows finding READMEs like docs/docs/docs/.gitea/.github/docs/README.md
  • Loading branch information
kousu committed Feb 14, 2023
1 parent 6976d70 commit 67aa99c
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions routers/web/repo/view.go
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ const (
// entries == ctx.Repo.Commit.SubTree(ctx.Repo.TreePath).ListEntries()
//
// FIXME: There has to be a more efficient way of doing this
func findReadmeFileInEntries(ctx *context.Context, entries []*git.TreeEntry) (string, *git.TreeEntry, error) {
func findReadmeFileInEntries(ctx *context.Context, entries []*git.TreeEntry, recurse bool) (string, *git.TreeEntry, error) {
// Create a list of extensions in priority order
// 1. Markdown files - with and without localisation - e.g. README.en-us.md or README.md
// 2. Txt files - e.g. README.txt
Expand Down Expand Up @@ -115,7 +115,7 @@ func findReadmeFileInEntries(ctx *context.Context, entries []*git.TreeEntry) (st
}
}

if ctx.Repo.TreePath == "" && readmeFile == nil {
if ctx.Repo.TreePath == "" && recurse && readmeFile == nil {
for _, subTreeEntry := range docsEntries {
if subTreeEntry == nil {
continue
Expand All @@ -131,7 +131,7 @@ func findReadmeFileInEntries(ctx *context.Context, entries []*git.TreeEntry) (st
return "", nil, err
}

subfolder, readmeFile, err := findReadmeFileInEntries(ctx, childEntries)
subfolder, readmeFile, err := findReadmeFileInEntries(ctx, childEntries, false)
if err != nil && !git.IsErrNotExist(err) {
return "", nil, err
}
Expand Down Expand Up @@ -165,7 +165,7 @@ func renderDirectory(ctx *context.Context, treeLink string) {
return
}

subfolder, readmeFile, err := findReadmeFileInEntries(ctx, entries)
subfolder, readmeFile, err := findReadmeFileInEntries(ctx, entries, true)
if err != nil {
ctx.ServerError("findReadmeFileInEntries", err)
return
Expand Down

0 comments on commit 67aa99c

Please sign in to comment.