···
serviceName := r.URL.Query().Get("service")
42
-
w.Header().Set("content-type", "application/x-git-upload-pack-advertisement")
42
+
w.Header().Set("Content-Type", "application/x-git-upload-pack-advertisement")
43
+
w.Header().Set("Connection", "Keep-Alive")
44
+
w.Header().Set("Cache-Control", "no-cache, max-age=0, must-revalidate")
w.WriteHeader(http.StatusOK)
if err := cmd.InfoRefs(); err != nil {
···
name := chi.URLParam(r, "name")
repo, err := securejoin.SecureJoin(d.c.Repo.ScanPath, filepath.Join(did, name))
62
-
writeError(w, err.Error(), 500)
64
+
gitError(w, err.Error(), http.StatusInternalServerError)
d.l.Error("git: failed to secure join repo path", "handler", "UploadPack", "error", err)
69
+
const expectedContentType = "application/x-git-upload-pack-request"
70
+
contentType := r.Header.Get("Content-Type")
71
+
if contentType != expectedContentType {
72
+
gitError(w, fmt.Sprintf("Expected Content-Type: '%s', but received '%s'.", expectedContentType, contentType), http.StatusUnsupportedMediaType)
var bodyReader io.ReadCloser = r.Body
if r.Header.Get("Content-Encoding") == "gzip" {
gzipReader, err := gzip.NewReader(r.Body)
71
-
writeError(w, err.Error(), 500)
79
+
gitError(w, err.Error(), http.StatusInternalServerError)
d.l.Error("git: failed to create gzip reader", "handler", "UploadPack", "error", err)
···
w.Header().Set("Content-Type", "application/x-git-upload-pack-result")
w.Header().Set("Connection", "Keep-Alive")
89
+
w.Header().Set("Cache-Control", "no-cache, max-age=0, must-revalidate")
d.l.Info("git: executing git-upload-pack", "handler", "UploadPack", "repo", repo)