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

Method UnLock

component/git_http.go:544–586  ·  view source on GitHub ↗
(ctx context.Context, req types.UnlockLFSReq)

Source from the content-addressed store, hash-verified

542}
543
544func (c *GitHTTPComponent) UnLock(ctx context.Context, req types.UnlockLFSReq) (*database.LfsLock, error) {
545 var (
546 lock *database.LfsLock
547 err error
548 )
549 _, err = c.repo.FindByPath(ctx, req.RepoType, req.Namespace, req.Name)
550 if err != nil {
551 return nil, fmt.Errorf("failed to find repo, error: %w", err)
552 }
553
554 user, err := c.user.FindByUsername(ctx, req.CurrentUser)
555 if err != nil {
556 return nil, ErrUnauthorized
557 }
558
559 allowed, err := c.AllowWriteAccess(ctx, req.RepoType, req.Namespace, req.Name, req.CurrentUser)
560 if err != nil {
561 slog.Error("Unable to check user write access:", slog.Any("error", err))
562 return nil, err
563 }
564
565 if !allowed {
566 return nil, ErrUnauthorized
567 }
568
569 lock, err = c.lfsLockStore.FindByID(ctx, req.ID)
570 if err != nil {
571 if errors.Is(err, sql.ErrNoRows) {
572 return nil, ErrNotFound
573 }
574 return nil, err
575 }
576
577 if !req.Force && lock.UserID != user.ID {
578 return nil, ErrPermissionDenied
579 }
580 err = c.lfsLockStore.RemoveByID(ctx, req.ID)
581 if err != nil {
582 return nil, err
583 }
584
585 return lock, nil
586}
587
588func (c *GitHTTPComponent) VerifyLock(ctx context.Context, req types.VerifyLFSLockReq) (*types.LFSLockListVerify, error) {
589 var (

Callers

nothing calls this directly

Calls 6

FindByUsernameMethod · 0.80
AllowWriteAccessMethod · 0.80
ErrorMethod · 0.80
RemoveByIDMethod · 0.80
FindByPathMethod · 0.45
FindByIDMethod · 0.45

Tested by

no test coverage detected