Files
forge/modules/structs/lfs_lock.go
zeekayandHanzo Dev aa87442fdd Record upstream authorship centrally in NOTICE instead of in every file header
Source files keep their SPDX-License-Identifier and Hanzo copyright line; the
Gitea, Gogs and LFS Test Server copyrights they used to repeat now live once in
NOTICE, alongside LICENSE. The header lint accepts any copyright line above the
SPDX line, so it no longer demands an upstream one.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-10 17:50:35 -07:00

82 lines
2.5 KiB
Go

// Copyright 2026 Hanzo AI, Inc. All rights reserved.
// SPDX-License-Identifier: MIT
package structs
import (
"time"
)
// LFSLock represent a lock
// for use with the locks API.
type LFSLock struct {
// The unique identifier of the lock
ID string `json:"id"`
// The file path that is locked
Path string `json:"path"`
// The timestamp when the lock was created
LockedAt time.Time `json:"locked_at"`
// The owner of the lock
Owner *LFSLockOwner `json:"owner"`
}
// LFSLockOwner represent a lock owner
// for use with the locks API.
type LFSLockOwner struct {
// The name of the lock owner
Name string `json:"name"`
}
// LFSLockRequest contains the path of the lock to create
// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#create-lock
type LFSLockRequest struct {
// The file path to lock
Path string `json:"path"`
}
// LFSLockResponse represent a lock created
// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#create-lock
type LFSLockResponse struct {
// The created lock
Lock *LFSLock `json:"lock"`
}
// LFSLockList represent a list of lock requested
// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#list-locks
type LFSLockList struct {
// The list of locks
Locks []*LFSLock `json:"locks"`
// The cursor for pagination to the next set of results
Next string `json:"next_cursor,omitempty"`
}
// LFSLockListVerify represent a list of lock verification requested
// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#list-locks-for-verification
type LFSLockListVerify struct {
// Locks owned by the requesting user
Ours []*LFSLock `json:"ours"`
// Locks owned by other users
Theirs []*LFSLock `json:"theirs"`
// The cursor for pagination to the next set of results
Next string `json:"next_cursor,omitempty"`
}
// LFSLockError contains information on the error that occurs
type LFSLockError struct {
// The error message
Message string `json:"message"`
// The lock related to the error, if any
Lock *LFSLock `json:"lock,omitempty"`
// URL to documentation about the error
Documentation string `json:"documentation_url,omitempty"`
// The request ID for debugging purposes
RequestID string `json:"request_id,omitempty"`
}
// LFSLockDeleteRequest contains params of a delete request
// https://github.com/git-lfs/git-lfs/blob/master/docs/api/locking.md#delete-lock
type LFSLockDeleteRequest struct {
// Whether to force delete the lock even if not owned by the requester
Force bool `json:"force"`
}