diff --git a/routers/web/web.go b/routers/web/web.go index 0ab25fd7e3..a65994c246 100644 --- a/routers/web/web.go +++ b/routers/web/web.go @@ -57,6 +57,8 @@ import ( "github.com/prometheus/client_golang/prometheus" ) +var GzipMinSize = gzhttp.DefaultMinSize + // optionsCorsHandler return a http handler which sets CORS options if enabled by config, it blocks non-CORS OPTIONS requests. func optionsCorsHandler() func(next http.Handler) http.Handler { var corsHandler func(next http.Handler) http.Handler @@ -242,7 +244,7 @@ func Routes() *web.Route { var mid []any if setting.EnableGzip { - wrapper, err := gzhttp.NewWrapper(gzhttp.RandomJitter(32, 0, false)) + wrapper, err := gzhttp.NewWrapper(gzhttp.RandomJitter(32, 0, false), gzhttp.MinSize(GzipMinSize)) if err != nil { log.Fatal("gzhttp.NewWrapper failed: %v", err) } diff --git a/tests/integration/repo_archive_test.go b/tests/integration/repo_archive_test.go index ebc6467378..664b04baf7 100644 --- a/tests/integration/repo_archive_test.go +++ b/tests/integration/repo_archive_test.go @@ -11,6 +11,7 @@ import ( "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/test" "code.gitea.io/gitea/routers" + "code.gitea.io/gitea/routers/web" "code.gitea.io/gitea/tests" "github.com/stretchr/testify/assert" @@ -19,6 +20,7 @@ import ( func TestRepoDownloadArchive(t *testing.T) { defer tests.PrepareTestEnv(t)() defer test.MockVariableValue(&setting.EnableGzip, true)() + defer test.MockVariableValue(&web.GzipMinSize, 10)() defer test.MockVariableValue(&testWebRoutes, routers.NormalRoutes())() req := NewRequest(t, "GET", "/user2/repo1/archive/master.zip")