mirror of
https://github.com/go-gitea/gitea
synced 2025-07-23 02:38:35 +00:00
Improve repo commit view (#33877)
Fix #24623 Major changes: 1. Redirect `/owner/repo/blob/*` requests to `/owner/repo/src/commit/*` (like GitHub) 2. Add a "view file diff" link (see screenshot below) 3. Refactor "AssertHTMLElement" to generic, now we can accurately assert existence or number. 4. Add more tests --------- Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: delvh <dev.lh@web.de>
This commit is contained in:
@@ -429,3 +429,14 @@ func RedirectRepoTreeToSrc(ctx *context.Context) {
|
||||
}
|
||||
ctx.Redirect(redirect)
|
||||
}
|
||||
|
||||
func RedirectRepoBlobToCommit(ctx *context.Context) {
|
||||
// redirect "/owner/repo/blob/*" requests to "/owner/repo/src/commit/*"
|
||||
// just like GitHub: browse files of a commit by "https://github/owner/repo/blob/{CommitID}"
|
||||
// TODO: maybe we could guess more types to redirect to the related pages in the future
|
||||
redirect := ctx.Repo.RepoLink + "/src/commit/" + ctx.PathParamRaw("*")
|
||||
if ctx.Req.URL.RawQuery != "" {
|
||||
redirect += "?" + ctx.Req.URL.RawQuery
|
||||
}
|
||||
ctx.Redirect(redirect)
|
||||
}
|
||||
|
@@ -1595,7 +1595,8 @@ func registerRoutes(m *web.Router) {
|
||||
m.Get("/commit/*", context.RepoRefByType(git.RefTypeCommit), repo.Home)
|
||||
m.Get("/*", context.RepoRefByType(""), repo.Home) // "/*" route is deprecated, and kept for backward compatibility
|
||||
}, repo.SetEditorconfigIfExists)
|
||||
m.Get("/tree/*", repo.RedirectRepoTreeToSrc) // redirect "/owner/repo/tree/*" requests to "/owner/repo/src/*"
|
||||
m.Get("/tree/*", repo.RedirectRepoTreeToSrc) // redirect "/owner/repo/tree/*" requests to "/owner/repo/src/*"
|
||||
m.Get("/blob/*", repo.RedirectRepoBlobToCommit) // redirect "/owner/repo/blob/*" requests to "/owner/repo/src/commit/*"
|
||||
|
||||
m.Get("/forks", context.RepoRef(), repo.Forks)
|
||||
m.Get("/commit/{sha:([a-f0-9]{7,64})}.{ext:patch|diff}", repo.MustBeNotEmpty, repo.RawDiff)
|
||||
|
Reference in New Issue
Block a user