MCPcopy Create free account
hub / github.com/OpenCSGs/csghub-server / LfsVerify

Method LfsVerify

component/git_http.go:405–437  ·  view source on GitHub ↗
(ctx context.Context, req types.VerifyRequest, p types.Pointer)

Source from the content-addressed store, hash-verified

403}
404
405func (c *GitHTTPComponent) LfsVerify(ctx context.Context, req types.VerifyRequest, p types.Pointer) error {
406 repo, err := c.repo.FindByPath(ctx, req.RepoType, req.Namespace, req.Name)
407 if err != nil {
408 return fmt.Errorf("failed to find repo, error: %w", err)
409 }
410
411 // _, err = c.lfsMetaObjectStore.FindByOID(ctx, repo.ID, p.Oid)
412 // if err != nil {
413 // return fmt.Errorf("failed to find lfs meta object, error: %w", err)
414 // }
415 objectKey := path.Join("lfs", p.RelativePath())
416 fileInfo, err := c.s3Client.StatObject(ctx, c.config.S3.Bucket, objectKey, minio.StatObjectOptions{})
417 if err != nil {
418 slog.Error("failed to stat object in s3", slog.Any("error", err))
419 return fmt.Errorf("failed to stat object in s3, error: %w", err)
420 }
421
422 if fileInfo.Size != p.Size {
423 return types.ErrSizeMismatch
424 }
425
426 _, err = c.lfsMetaObjectStore.Create(ctx, database.LfsMetaObject{
427 Oid: p.Oid,
428 Size: p.Size,
429 RepositoryID: repo.ID,
430 Existing: true,
431 })
432 if err != nil {
433 return fmt.Errorf("failed to create lfs meta object in database: %w", err)
434 }
435
436 return nil
437}
438
439func (c *GitHTTPComponent) CreateLock(ctx context.Context, req types.LfsLockReq) (*database.LfsLock, error) {
440 var (

Callers

nothing calls this directly

Calls 4

ErrorMethod · 0.80
FindByPathMethod · 0.45
RelativePathMethod · 0.45
CreateMethod · 0.45

Tested by

no test coverage detected