test: add writeLFSError() helper
This commit is contained in:
parent
b73674e5f8
commit
3621b987e5
@ -152,6 +152,20 @@ type lfsError struct {
|
||||
Message string `json:"message"`
|
||||
}
|
||||
|
||||
func writeLFSError(w http.ResponseWriter, code int, msg string) {
|
||||
by, err := json.Marshal(&lfsError{Message: msg})
|
||||
if err != nil {
|
||||
w.Header().Set("Content-Type", "text/plain")
|
||||
w.WriteHeader(500)
|
||||
w.Write([]byte("json encoding error: " + err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
w.Header().Set("Content-Type", "application/vnd.git-lfs+json")
|
||||
w.WriteHeader(code)
|
||||
w.Write(by)
|
||||
}
|
||||
|
||||
// handles any requests with "{name}.server.git/info/lfs" in the path
|
||||
func lfsHandler(w http.ResponseWriter, r *http.Request, id string) {
|
||||
repo, err := repoFromLfsUrl(r.URL.Path)
|
||||
@ -443,13 +457,7 @@ func storageHandler(w http.ResponseWriter, r *http.Request) {
|
||||
w.WriteHeader(500)
|
||||
return
|
||||
case "status-storage-503":
|
||||
w.Header().Set("Content-Type", "application/vnd.git-lfs+json")
|
||||
w.WriteHeader(503)
|
||||
|
||||
json.NewEncoder(w).Encode(&struct {
|
||||
Message string `json:"message"`
|
||||
}{"LFS is temporarily unavailable"})
|
||||
|
||||
writeLFSError(w, 503, "LFS is temporarily unavailable")
|
||||
return
|
||||
case "object-authenticated":
|
||||
if len(r.Header.Get("Authorization")) > 0 {
|
||||
@ -937,15 +945,12 @@ func missingRequiredCreds(w http.ResponseWriter, r *http.Request, repo string) b
|
||||
auth := r.Header.Get("Authorization")
|
||||
user, pass, err := extractAuth(auth)
|
||||
if err != nil {
|
||||
w.WriteHeader(403)
|
||||
w.Write([]byte(`{"message":"` + err.Error() + `"}`))
|
||||
writeLFSError(w, 403, err.Error())
|
||||
return true
|
||||
}
|
||||
|
||||
if user != "requirecreds" || pass != "pass" {
|
||||
errmsg := fmt.Sprintf("Got: '%s' => '%s' : '%s'", auth, user, pass)
|
||||
w.WriteHeader(403)
|
||||
w.Write([]byte(`{"message":"` + errmsg + `"}`))
|
||||
writeLFSError(w, 403, fmt.Sprintf("Got: '%s' => '%s' : '%s'", auth, user, pass))
|
||||
return true
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user