route all user-facing Gitea issue, pull, notification, comment, attachment, dependency, and review URLs through the configured-origin/subpath boundary
reject cross-origin and scheme-downgraded URLs while canonicalizing valid relative URLs
align mocked upstream fixtures with the configured test forge and document GITEA_URL as a browser-link trust boundary
Verification
RED: new global-search origin test failed by retaining the attacker URL and dropping the valid relative URL
focused: 196 passed
full: 2017 passed, 7 skipped
dependency audit: no known vulnerabilities
deterministic release bundle checksum: OK
Closes #1072
## What changed
- route all user-facing Gitea issue, pull, notification, comment, attachment, dependency, and review URLs through the configured-origin/subpath boundary
- reject cross-origin and scheme-downgraded URLs while canonicalizing valid relative URLs
- align mocked upstream fixtures with the configured test forge and document `GITEA_URL` as a browser-link trust boundary
## Verification
- RED: new global-search origin test failed by retaining the attacker URL and dropping the valid relative URL
- focused: `196 passed`
- full: `2017 passed, 7 skipped`
- dependency audit: no known vulnerabilities
- deterministic release bundle checksum: OK
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Closes #1072
What changed
GITEA_URLas a browser-link trust boundaryVerification
196 passed2017 passed, 7 skipped