in pkg/testutil/bldr/git_smart_http_server.go [60:85]
func (s *GitSmartHTTPServer) handleAdvertizedRefs(w http.ResponseWriter, r *http.Request) {
if r.URL.Query().Get("service") != "git-upload-pack" {
http.Error(w, `"Dumb" HTTP Git clients are not supported`, http.StatusNotImplemented)
return
}
session, err := s.establishUploadPackSession()
if err != nil {
http.Error(w, fmt.Sprintf("Failed to establish git-upload-pack session: %v", err), http.StatusInternalServerError)
return
}
advRefs, err := session.AdvertisedReferencesContext(r.Context())
if err != nil {
http.Error(w, fmt.Sprintf("Failed to retrieve the advertised references: %v", err), http.StatusInternalServerError)
return
}
w.Header().Add("Content-Type", "application/x-git-upload-pack-advertisement")
w.Header().Add("Cache-Control", "no-cache")
advRefs.Prefix = append(advRefs.Prefix, []byte("# service=git-upload-pack"), pktline.Flush)
err = advRefs.Encode(w)
if err != nil {
panic(err) // too late to write the error to the response
}
}