func()

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
	}
}