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
}