func()

in internal/command/lfstransfer/gitlab_backend.go [331:358]


func (b *gitlabLockBackend) FromPath(path string) (transfer.Lock, error) {
	res, err := b.client.ListLocksVerify(path, "", "", 1, "")
	if err != nil {
		return nil, err
	}
	var lock *lfstransfer.Lock
	var owner string
	switch {
	case len(res.Ours) == 1 && len(res.Theirs) == 0:
		lock = res.Ours[0]
		owner = "ours"
	case len(res.Ours) == 0 && len(res.Theirs) == 1:
		lock = res.Theirs[0]
		owner = "theirs"
	case len(res.Ours) == 0 && len(res.Theirs) == 0:
		return nil, nil
	default:
		return nil, errors.New("internal error")
	}
	return &gitlabLock{
		gitlabLockBackend: b,
		id:                lock.ID,
		path:              lock.Path,
		timestamp:         lock.LockedAt,
		owner:             lock.Owner.Name,
		ownerid:           owner,
	}, nil
}