MCPcopy Create free account
hub / github.com/gogs/gogs / serveVerify

Method serveVerify

internal/route/lfs/basic.go:120–159  ·  view source on GitHub ↗

POST /{owner}/{repo}.git/info/lfs/object/basic/verify

(c *macaron.Context, repo *database.Repository)

Source from the content-addressed store, hash-verified

118
119// POST /{owner}/{repo}.git/info/lfs/object/basic/verify
120func (h *basicHandler) serveVerify(c *macaron.Context, repo *database.Repository) {
121 var request basicVerifyRequest
122 defer func() { _ = c.Req.Request.Body.Close() }()
123
124 err := json.NewDecoder(c.Req.Request.Body).Decode(&request)
125 if err != nil {
126 responseJSON(c.Resp, http.StatusBadRequest, responseError{
127 Message: strutil.ToUpperFirst(err.Error()),
128 })
129 return
130 }
131
132 if !lfsutil.ValidOID(request.Oid) {
133 responseJSON(c.Resp, http.StatusBadRequest, responseError{
134 Message: "Invalid oid",
135 })
136 return
137 }
138
139 object, err := h.store.GetLFSObjectByOID(c.Req.Context(), repo.ID, request.Oid)
140 if err != nil {
141 if database.IsErrLFSObjectNotExist(err) {
142 responseJSON(c.Resp, http.StatusNotFound, responseError{
143 Message: "Object does not exist",
144 })
145 } else {
146 internalServerError(c.Resp)
147 log.Error("Failed to get object [repo_id: %d, oid: %s]: %v", repo.ID, request.Oid, err)
148 }
149 return
150 }
151
152 if object.Size != request.Size {
153 responseJSON(c.Resp, http.StatusBadRequest, responseError{
154 Message: "Object size mismatch",
155 })
156 return
157 }
158 c.Status(http.StatusOK)
159}
160
161type basicVerifyRequest struct {
162 Oid lfsutil.OID `json:"oid"`

Callers

nothing calls this directly

Calls 7

ToUpperFirstFunction · 0.92
ValidOIDFunction · 0.92
IsErrLFSObjectNotExistFunction · 0.92
responseJSONFunction · 0.85
internalServerErrorFunction · 0.85
GetLFSObjectByOIDMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected