Skip to content

Fix README symlink resolution in subdirectories like .github#36775

Merged
wxiaoguang merged 6 commits intogo-gitea:mainfrom
jimparis:main
Mar 1, 2026
Merged

Fix README symlink resolution in subdirectories like .github#36775
wxiaoguang merged 6 commits intogo-gitea:mainfrom
jimparis:main

Conversation

@jimparis
Copy link
Copy Markdown
Contributor

@jimparis jimparis commented Feb 27, 2026

Fixes #36774. Made by Gemini. I verified that this resolves the issue for me.

@GiteaBot GiteaBot added the lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. label Feb 27, 2026
@github-actions github-actions bot added the modifies/go Pull requests that update Go code label Feb 27, 2026
@silverwind
Copy link
Copy Markdown
Member

Can you add a test?

The `findReadmeFileInEntries` function recursively searches for a README
file in well-known subdirectories such as `.github/`, `.gitea/`, and `docs/`.
However, the recursive call incorrectly passed the original `parentDir`
(usually the repo root) instead of the path to the subdirectory.

This caused symlinks inside these subdirectories (e.g.,
`.github/README.md` pointing to `../subdir/README.md`) to be resolved
relative to the root of the repository instead of the subdirectory,
resulting in "not found" errors and the README failing to render.

This change correctly appends the subdirectory name to the `parentDir`
when making the recursive call, allowing `git.EntryFollowLinks` to
operate from the correct base path and successfully resolve the symlinks.
@jimparis
Copy link
Copy Markdown
Contributor Author

Added test

@GiteaBot GiteaBot added lgtm/need 1 This PR needs approval from one additional maintainer to be merged. and removed lgtm/need 2 This PR needs two approvals by maintainers to be considered for merging. labels Feb 28, 2026
@GiteaBot GiteaBot added lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. and removed lgtm/need 1 This PR needs approval from one additional maintainer to be merged. labels Feb 28, 2026
@wxiaoguang wxiaoguang enabled auto-merge (squash) March 1, 2026 05:01
@wxiaoguang wxiaoguang merged commit f02f419 into go-gitea:main Mar 1, 2026
26 checks passed
@GiteaBot GiteaBot added this to the 1.26.0 milestone Mar 1, 2026
zjjhot added a commit to zjjhot/gitea that referenced this pull request Mar 2, 2026
* giteaofficial/main: (21 commits)
  Enable docker layer caching for `dry-run` and `nightly` container builds (go-gitea#36738)
  Add admin badge to navbar avatar (go-gitea#36790)
  WorkflowDispatch api optionally return runid (go-gitea#36706)
  upgrade minimatch (go-gitea#36760)
  Add `never` option to `PUBLIC_URL_DETECTION` configuration (go-gitea#36785)
  Refactor avatar package, support default avatar fallback (go-gitea#36788)
  Mark unused&immature activitypub as "not implemented" (go-gitea#36789)
  Add “Copy Source” to markup comment menu (go-gitea#36726)
  Update Nix flake (go-gitea#36787)
  Implements OIDC RP-Initiated Logout (go-gitea#36724)
  Fix README symlink resolution in subdirectories like .github (go-gitea#36775)
  [skip ci] Updated translations via Crowdin
  Correct spelling (go-gitea#36783)
  refactor: replace legacy tw-flex utility classes with flex-text-block/inline (go-gitea#36778)
  Fix `no-content` message not rendering after comment edit (go-gitea#36733)
  Fix typos and grammar in English locale (go-gitea#36751)
  Move Fomantic dropdown CSS to custom module (go-gitea#36530)
  Use "Enable Gravatar" but not "Disable" (go-gitea#36771)
  feat: add branch_count to repository API (go-gitea#35351) (go-gitea#36743)
  Deprecate RenderWithErr (go-gitea#36769)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm/done This PR has enough approvals to get merged. There are no important open reservations anymore. modifies/go Pull requests that update Go code type/bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

README symlinks aren't properly followed in .gitea / .github / docs folders

5 participants