diff options
Diffstat (limited to 'routers/repo/http.go')
-rw-r--r-- | routers/repo/http.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/routers/repo/http.go b/routers/repo/http.go index ec5fbe6c0d..1728a75fcb 100644 --- a/routers/repo/http.go +++ b/routers/repo/http.go @@ -27,6 +27,18 @@ import ( // HTTP implmentation git smart HTTP protocol func HTTP(ctx *context.Context) { + if len(setting.Repository.AccessControlAllowOrigin) > 0 { + // Set CORS headers for browser-based git clients + ctx.Resp.Header().Set("Access-Control-Allow-Origin", setting.Repository.AccessControlAllowOrigin) + ctx.Resp.Header().Set("Access-Control-Allow-Headers", "Content-Type, Authorization, User-Agent") + + // Handle preflight OPTIONS request + if ctx.Req.Method == "OPTIONS" { + ctx.Status(http.StatusOK) + return + } + } + username := ctx.Params(":username") reponame := strings.TrimSuffix(ctx.Params(":reponame"), ".git") |