change context.Context to hertz *app.RequestContext

This commit is contained in:
wjqserver 2025-04-21 13:57:52 +08:00
parent 809032a970
commit 3d7559bd66
2 changed files with 11 additions and 12 deletions

18
main.go
View file

@ -410,46 +410,46 @@ func main() {
setupPages(cfg, r)
r.GET("/github.com/:username/:repo/releases/*filepath", func(ctx context.Context, c *app.RequestContext) {
ctx = context.WithValue(ctx, "matcher", "release")
c.Set("matcher", "release")
proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c)
})
r.GET("/github.com/:username/:repo/archive/*filepath", func(ctx context.Context, c *app.RequestContext) {
ctx = context.WithValue(ctx, "matcher", "release")
c.Set("matcher", "release")
proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c)
})
r.GET("/github.com/:username/:repo/blob/*filepath", func(ctx context.Context, c *app.RequestContext) {
ctx = context.WithValue(ctx, "matcher", "blob")
c.Set("matcher", "blob")
proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c)
})
r.GET("/github.com/:username/:repo/raw/*filepath", func(ctx context.Context, c *app.RequestContext) {
ctx = context.WithValue(ctx, "matcher", "raw")
c.Set("matcher", "raw")
proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c)
})
r.GET("/github.com/:username/:repo/info/*filepath", func(ctx context.Context, c *app.RequestContext) {
ctx = context.WithValue(ctx, "matcher", "gitclone")
c.Set("matcher", "gitclone")
proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c)
})
r.GET("/github.com/:username/:repo/git-upload-pack", func(ctx context.Context, c *app.RequestContext) {
ctx = context.WithValue(ctx, "matcher", "gitclone")
c.Set("matcher", "gitclone")
proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c)
})
r.GET("/raw.githubusercontent.com/:username/:repo/*filepath", func(ctx context.Context, c *app.RequestContext) {
ctx = context.WithValue(ctx, "matcher", "raw")
c.Set("matcher", "raw")
proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c)
})
r.GET("/gist.githubusercontent.com/:username/*filepath", func(ctx context.Context, c *app.RequestContext) {
ctx = context.WithValue(ctx, "matcher", "gist")
c.Set("matcher", "gist")
proxy.NoRouteHandler(cfg, limiter, iplimiter)(ctx, c)
})
r.GET("/api.github.com/repos/:username/:repo/*filepath", func(ctx context.Context, c *app.RequestContext) {
ctx = context.WithValue(ctx, "matcher", "api")
c.Set("matcher", "api")
proxy.RoutingHandler(cfg, limiter, iplimiter)(ctx, c)
})

View file

@ -151,8 +151,7 @@ func NoRouteHandler(cfg *config.Config, limiter *rate.RateLimiter, iplimiter *ra
func RoutingHandler(cfg *config.Config, limiter *rate.RateLimiter, iplimiter *rate.IPRateLimiter) app.HandlerFunc {
return func(ctx context.Context, c *app.RequestContext) {
// 输出所有传入参数
logDebug("All Request Params: %v", c.Params)
logDebug("Context Params(Matcher): %v", ctx.Value("matcher"))
logDebug("Context Params(Matcher): %v", c.GetString("matcher"))
// 限制访问频率
if cfg.RateLimit.Enabled {
@ -192,7 +191,7 @@ func RoutingHandler(cfg *config.Config, limiter *rate.RateLimiter, iplimiter *ra
user = c.Param("user")
repo = c.Param("repo")
matcher = ctx.Value("matcher").(string)
matcher = c.GetString("matcher")
logInfo("%s %s %s %s %s Matched-Username: %s, Matched-Repo: %s", c.ClientIP(), c.Method(), rawPath, c.Request.Header.UserAgent(), c.Request.Header.GetProtocol(), user, repo)
// dump log 记录详细信息 c.ClientIP(), c.Method(), rawPath,c.Request.Header.UserAgent(), c.Request.Header.GetProtocol(), full Header