Documentation
¶
Index ¶
- func ApplyDiffPatch(ctx context.Context, repo *repo_model.Repository, doer *user_model.User, ...) (*structs.FileResponse, error)
- func ChangeRepoFiles(ctx context.Context, repo *repo_model.Repository, doer *user_model.User, ...) (*structs.FilesResponse, error)
- func CherryPick(ctx context.Context, repo *repo_model.Repository, doer *user_model.User, ...) (*structs.FileResponse, error)
- func CleanUploadFileName(name string) string
- func CountDivergingCommits(ctx context.Context, repo *repo_model.Repository, branch string) (*git.DivergeObject, error)
- func CreateOrUpdateFile(ctx context.Context, t *TemporaryUploadRepository, file *ChangeRepoFile, ...) error
- func GetBlobBySHA(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository, ...) (*api.GitBlobResponse, error)
- func GetContents(ctx context.Context, repo *repo_model.Repository, refCommit *utils.RefCommit, ...) (*api.ContentsResponse, error)
- func GetContentsListFromTreePaths(ctx context.Context, repo *repo_model.Repository, refCommit *utils.RefCommit, ...) (files []*api.ContentsResponse)
- func GetContentsOrList(ctx context.Context, repo *repo_model.Repository, refCommit *utils.RefCommit, ...) (any, error)
- func GetDiffPreview(ctx context.Context, repo *repo_model.Repository, ...) (*gitdiff.Diff, error)
- func GetFileCommitResponse(repo *repo_model.Repository, commit *git.Commit) (*api.FileCommitResponse, error)
- func GetFileResponseFromFilesResponse(filesResponse *api.FilesResponse, index int) *api.FileResponse
- func GetFilesResponseFromCommit(ctx context.Context, repo *repo_model.Repository, refCommit *utils.RefCommit, ...) (*api.FilesResponse, error)
- func GetPayloadCommitVerification(ctx context.Context, commit *git.Commit) *structs.PayloadCommitVerification
- func GetTreeBySHA(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository, ...) (*api.GitTreeResponse, error)
- func IsErrCommitIDDoesNotMatch(err error) bool
- func IsErrFilePathInvalid(err error) bool
- func IsErrFilenameInvalid(err error) bool
- func IsErrRepoFileAlreadyExists(err error) bool
- func IsErrRepoFileDoesNotExist(err error) bool
- func IsErrSHANotFound(err error) bool
- func IsErrSHAOrCommitIDNotProvided(err error) bool
- func IsErrUserCannotCommit(err error) bool
- func UploadRepoFiles(ctx context.Context, repo *repo_model.Repository, doer *user_model.User, ...) error
- func VerifyBranchProtection(ctx context.Context, repo *repo_model.Repository, doer *user_model.User, ...) error
- type ApplyDiffPatchOptions
- type ChangeRepoFile
- type ChangeRepoFilesOptions
- type CommitDateOptions
- type CommitTreeUserOptions
- type ContentType
- type ErrCommitIDDoesNotMatch
- type ErrFilePathInvalid
- type ErrFilenameInvalid
- type ErrRepoFileAlreadyExists
- type ErrRepoFileDoesNotExist
- type ErrSHANotFound
- type ErrSHAOrCommitIDNotProvided
- type ErrUserCannotCommit
- type IdentityOptions
- type RepoFileOptions
- type TemporaryUploadRepository
- func (t *TemporaryUploadRepository) AddObjectToIndex(ctx context.Context, mode, objectHash, objectPath string) error
- func (t *TemporaryUploadRepository) Clone(ctx context.Context, branch string, bare bool) error
- func (t *TemporaryUploadRepository) Close()
- func (t *TemporaryUploadRepository) CommitTree(ctx context.Context, opts *CommitTreeUserOptions) (string, error)
- func (t *TemporaryUploadRepository) DiffIndex(ctx context.Context) (*gitdiff.Diff, error)
- func (t *TemporaryUploadRepository) GetBranchCommit(branch string) (*git.Commit, error)
- func (t *TemporaryUploadRepository) GetCommit(commitID string) (*git.Commit, error)
- func (t *TemporaryUploadRepository) GetLastCommit(ctx context.Context) (string, error)
- func (t *TemporaryUploadRepository) GetLastCommitByRef(ctx context.Context, ref string) (string, error)
- func (t *TemporaryUploadRepository) HashObject(ctx context.Context, content io.Reader) (string, error)
- func (t *TemporaryUploadRepository) Init(ctx context.Context, objectFormatName string) error
- func (t *TemporaryUploadRepository) LsFiles(ctx context.Context, filenames ...string) ([]string, error)
- func (t *TemporaryUploadRepository) Push(ctx context.Context, doer *user_model.User, commitHash, branch string) error
- func (t *TemporaryUploadRepository) RefreshIndex(ctx context.Context) error
- func (t *TemporaryUploadRepository) RemoveFilesFromIndex(ctx context.Context, filenames ...string) error
- func (t *TemporaryUploadRepository) SetDefaultIndex(ctx context.Context) error
- func (t *TemporaryUploadRepository) WriteTree(ctx context.Context) (string, error)
- type TreeViewNode
- type UploadRepoFileOptions
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ApplyDiffPatch ¶ added in v1.17.0
func ApplyDiffPatch(ctx context.Context, repo *repo_model.Repository, doer *user_model.User, opts *ApplyDiffPatchOptions) (*structs.FileResponse, error)
ApplyDiffPatch applies a patch to the given repository
func ChangeRepoFiles ¶ added in v1.20.0
func ChangeRepoFiles(ctx context.Context, repo *repo_model.Repository, doer *user_model.User, opts *ChangeRepoFilesOptions) (*structs.FilesResponse, error)
ChangeRepoFiles adds, updates or removes multiple files in the given repository
func CherryPick ¶ added in v1.17.0
func CherryPick(ctx context.Context, repo *repo_model.Repository, doer *user_model.User, revert bool, opts *ApplyDiffPatchOptions) (*structs.FileResponse, error)
CherryPick cherry-picks or reverts a commit to the given repository
func CleanUploadFileName ¶
CleanUploadFileName Trims a filename and returns empty string if it is a .git directory
func CountDivergingCommits ¶
func CountDivergingCommits(ctx context.Context, repo *repo_model.Repository, branch string) (*git.DivergeObject, error)
CountDivergingCommits determines how many commits a branch is ahead or behind the repository's base branch
func CreateOrUpdateFile ¶ added in v1.20.0
func CreateOrUpdateFile(ctx context.Context, t *TemporaryUploadRepository, file *ChangeRepoFile, contentStore *lfs.ContentStore, repoID int64, hasOldBranch bool) error
CreateOrUpdateFile handles creating or updating a file for ChangeRepoFiles
func GetBlobBySHA ¶
func GetBlobBySHA(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository, sha string) (*api.GitBlobResponse, error)
GetBlobBySHA get the GitBlobResponse of a repository using a sha hash.
func GetContents ¶
func GetContents(ctx context.Context, repo *repo_model.Repository, refCommit *utils.RefCommit, treePath string, forList bool) (*api.ContentsResponse, error)
GetContents gets the metadata on a file's contents. Ref can be a branch, commit or tag
func GetContentsListFromTreePaths ¶ added in v1.24.0
func GetContentsListFromTreePaths(ctx context.Context, repo *repo_model.Repository, refCommit *utils.RefCommit, treePaths []string) (files []*api.ContentsResponse)
func GetContentsOrList ¶
func GetContentsOrList(ctx context.Context, repo *repo_model.Repository, refCommit *utils.RefCommit, treePath string) (any, error)
GetContentsOrList gets the metadata of a file's contents (*ContentsResponse) if treePath not a tree directory, otherwise a listing of file contents ([]*ContentsResponse). Ref can be a branch, commit or tag
func GetDiffPreview ¶
func GetDiffPreview(ctx context.Context, repo *repo_model.Repository, branch, treePath, content string) (*gitdiff.Diff, error)
GetDiffPreview produces and returns diff result of a file which is not yet committed.
func GetFileCommitResponse ¶
func GetFileCommitResponse(repo *repo_model.Repository, commit *git.Commit) (*api.FileCommitResponse, error)
GetFileCommitResponse Constructs a FileCommitResponse from a Commit object
func GetFileResponseFromFilesResponse ¶ added in v1.20.0
func GetFileResponseFromFilesResponse(filesResponse *api.FilesResponse, index int) *api.FileResponse
constructs a FileResponse with the file at the index from FilesResponse
func GetFilesResponseFromCommit ¶ added in v1.20.0
func GetFilesResponseFromCommit(ctx context.Context, repo *repo_model.Repository, refCommit *utils.RefCommit, treeNames []string) (*api.FilesResponse, error)
func GetPayloadCommitVerification ¶
func GetPayloadCommitVerification(ctx context.Context, commit *git.Commit) *structs.PayloadCommitVerification
GetPayloadCommitVerification returns the verification information of a commit
func GetTreeBySHA ¶
func GetTreeBySHA(ctx context.Context, repo *repo_model.Repository, gitRepo *git.Repository, sha string, page, perPage int, recursive bool) (*api.GitTreeResponse, error)
GetTreeBySHA get the GitTreeResponse of a repository using a sha hash.
func IsErrCommitIDDoesNotMatch ¶ added in v1.24.0
IsErrCommitIDDoesNotMatch checks if an error is a ErrCommitIDDoesNotMatch.
func IsErrFilePathInvalid ¶ added in v1.24.0
IsErrFilePathInvalid checks if an error is an ErrFilePathInvalid.
func IsErrFilenameInvalid ¶ added in v1.24.0
IsErrFilenameInvalid checks if an error is an ErrFilenameInvalid.
func IsErrRepoFileAlreadyExists ¶ added in v1.24.0
IsErrRepoFileAlreadyExists checks if an error is a ErrRepoFileAlreadyExists.
func IsErrRepoFileDoesNotExist ¶ added in v1.24.0
IsErrRepoFileDoesNotExist checks if an error is a ErrRepoDoesNotExist.
func IsErrSHANotFound ¶ added in v1.24.0
IsErrSHANotFound checks if an error is a ErrSHANotFound.
func IsErrSHAOrCommitIDNotProvided ¶ added in v1.24.0
IsErrSHAOrCommitIDNotProvided checks if an error is a ErrSHAOrCommitIDNotProvided.
func IsErrUserCannotCommit ¶ added in v1.24.0
IsErrUserCannotCommit checks if an error is an ErrUserCannotCommit.
func UploadRepoFiles ¶
func UploadRepoFiles(ctx context.Context, repo *repo_model.Repository, doer *user_model.User, opts *UploadRepoFileOptions) error
UploadRepoFiles uploads files to the given repository
func VerifyBranchProtection ¶
func VerifyBranchProtection(ctx context.Context, repo *repo_model.Repository, doer *user_model.User, branchName string, treePaths []string) error
VerifyBranchProtection verify the branch protection for modifying the given treePath on the given branch
Types ¶
type ApplyDiffPatchOptions ¶ added in v1.17.0
type ApplyDiffPatchOptions struct { LastCommitID string OldBranch string NewBranch string Message string Content string SHA string Author *IdentityOptions Committer *IdentityOptions Dates *CommitDateOptions Signoff bool }
ApplyDiffPatchOptions holds the repository diff patch update options
func (*ApplyDiffPatchOptions) Validate ¶ added in v1.17.0
func (opts *ApplyDiffPatchOptions) Validate(ctx context.Context, repo *repo_model.Repository, doer *user_model.User) error
Validate validates the provided options
type ChangeRepoFile ¶ added in v1.20.0
type ChangeRepoFile struct { Operation string TreePath string FromTreePath string ContentReader io.ReadSeeker SHA string Options *RepoFileOptions }
type ChangeRepoFilesOptions ¶ added in v1.20.0
type ChangeRepoFilesOptions struct { LastCommitID string OldBranch string NewBranch string Message string Files []*ChangeRepoFile Author *IdentityOptions Committer *IdentityOptions Dates *CommitDateOptions Signoff bool }
ChangeRepoFilesOptions holds the repository files update options
type CommitDateOptions ¶
CommitDateOptions store dates for GIT_AUTHOR_DATE and GIT_COMMITTER_DATE
type CommitTreeUserOptions ¶ added in v1.24.0
type CommitTreeUserOptions struct { ParentCommitID string TreeHash string CommitMessage string SignOff bool DoerUser *user_model.User AuthorIdentity *IdentityOptions // if nil, use doer AuthorTime *time.Time // if nil, use now CommitterIdentity *IdentityOptions CommitterTime *time.Time }
type ContentType ¶
type ContentType string
ContentType repo content type
const ( ContentTypeRegular ContentType = "file" // regular content type (file) ContentTypeDir ContentType = "dir" // dir content type (dir) ContentTypeLink ContentType = "symlink" // link content type (symlink) ContentTypeSubmodule ContentType = "submodule" // submodule content type (submodule) )
The string representations of different content types
func GetObjectTypeFromTreeEntry ¶ added in v1.17.4
func GetObjectTypeFromTreeEntry(entry *git.TreeEntry) ContentType
GetObjectTypeFromTreeEntry check what content is behind it
func (*ContentType) String ¶
func (ct *ContentType) String() string
String gets the string of ContentType
type ErrCommitIDDoesNotMatch ¶ added in v1.24.0
ErrCommitIDDoesNotMatch represents a "CommitIDDoesNotMatch" kind of error.
func (ErrCommitIDDoesNotMatch) Error ¶ added in v1.24.0
func (err ErrCommitIDDoesNotMatch) Error() string
type ErrFilePathInvalid ¶ added in v1.24.0
ErrFilePathInvalid represents a "FilePathInvalid" kind of error.
func (ErrFilePathInvalid) Error ¶ added in v1.24.0
func (err ErrFilePathInvalid) Error() string
func (ErrFilePathInvalid) Unwrap ¶ added in v1.24.0
func (err ErrFilePathInvalid) Unwrap() error
type ErrFilenameInvalid ¶ added in v1.24.0
type ErrFilenameInvalid struct {
Path string
}
ErrFilenameInvalid represents a "FilenameInvalid" kind of error.
func (ErrFilenameInvalid) Error ¶ added in v1.24.0
func (err ErrFilenameInvalid) Error() string
func (ErrFilenameInvalid) Unwrap ¶ added in v1.24.0
func (err ErrFilenameInvalid) Unwrap() error
type ErrRepoFileAlreadyExists ¶ added in v1.24.0
type ErrRepoFileAlreadyExists struct {
Path string
}
ErrRepoFileAlreadyExists represents a "RepoFileAlreadyExist" kind of error.
func (ErrRepoFileAlreadyExists) Error ¶ added in v1.24.0
func (err ErrRepoFileAlreadyExists) Error() string
func (ErrRepoFileAlreadyExists) Unwrap ¶ added in v1.24.0
func (err ErrRepoFileAlreadyExists) Unwrap() error
type ErrRepoFileDoesNotExist ¶ added in v1.24.0
ErrRepoFileDoesNotExist represents a "RepoFileDoesNotExist" kind of error.
func (ErrRepoFileDoesNotExist) Error ¶ added in v1.24.0
func (err ErrRepoFileDoesNotExist) Error() string
func (ErrRepoFileDoesNotExist) Unwrap ¶ added in v1.24.0
func (err ErrRepoFileDoesNotExist) Unwrap() error
type ErrSHANotFound ¶ added in v1.24.0
type ErrSHANotFound struct {
SHA string
}
ErrSHANotFound represents a "SHADoesNotMatch" kind of error.
func (ErrSHANotFound) Error ¶ added in v1.24.0
func (err ErrSHANotFound) Error() string
func (ErrSHANotFound) Unwrap ¶ added in v1.24.0
func (err ErrSHANotFound) Unwrap() error
type ErrSHAOrCommitIDNotProvided ¶ added in v1.24.0
type ErrSHAOrCommitIDNotProvided struct{}
ErrSHAOrCommitIDNotProvided represents a "SHAOrCommitIDNotProvided" kind of error.
func (ErrSHAOrCommitIDNotProvided) Error ¶ added in v1.24.0
func (err ErrSHAOrCommitIDNotProvided) Error() string
type ErrUserCannotCommit ¶ added in v1.24.0
type ErrUserCannotCommit struct {
UserName string
}
ErrUserCannotCommit represents "UserCannotCommit" kind of error.
func (ErrUserCannotCommit) Error ¶ added in v1.24.0
func (err ErrUserCannotCommit) Error() string
func (ErrUserCannotCommit) Unwrap ¶ added in v1.24.0
func (err ErrUserCannotCommit) Unwrap() error
type IdentityOptions ¶
type IdentityOptions struct { GitUserName string // to match "git config user.name" GitUserEmail string // to match "git config user.email" }
IdentityOptions for a person's identity like an author or committer
type RepoFileOptions ¶ added in v1.20.0
type RepoFileOptions struct {
// contains filtered or unexported fields
}
type TemporaryUploadRepository ¶
type TemporaryUploadRepository struct {
// contains filtered or unexported fields
}
TemporaryUploadRepository is a type to wrap our upload repositories as a shallow clone
func NewTemporaryUploadRepository ¶
func NewTemporaryUploadRepository(repo *repo_model.Repository) (*TemporaryUploadRepository, error)
NewTemporaryUploadRepository creates a new temporary upload repository
func (*TemporaryUploadRepository) AddObjectToIndex ¶
func (t *TemporaryUploadRepository) AddObjectToIndex(ctx context.Context, mode, objectHash, objectPath string) error
AddObjectToIndex adds the provided object hash to the index with the provided mode and path
func (*TemporaryUploadRepository) Clone ¶
Clone the base repository to our path and set branch as the HEAD
func (*TemporaryUploadRepository) Close ¶
func (t *TemporaryUploadRepository) Close()
Close the repository cleaning up all files
func (*TemporaryUploadRepository) CommitTree ¶
func (t *TemporaryUploadRepository) CommitTree(ctx context.Context, opts *CommitTreeUserOptions) (string, error)
CommitTree creates a commit from a given tree for the user with provided message
func (*TemporaryUploadRepository) DiffIndex ¶
DiffIndex returns a Diff of the current index to the head
func (*TemporaryUploadRepository) GetBranchCommit ¶
func (t *TemporaryUploadRepository) GetBranchCommit(branch string) (*git.Commit, error)
GetBranchCommit Gets the commit object of the given branch
func (*TemporaryUploadRepository) GetCommit ¶
func (t *TemporaryUploadRepository) GetCommit(commitID string) (*git.Commit, error)
GetCommit Gets the commit object of the given commit ID
func (*TemporaryUploadRepository) GetLastCommit ¶
func (t *TemporaryUploadRepository) GetLastCommit(ctx context.Context) (string, error)
GetLastCommit gets the last commit ID SHA of the repo
func (*TemporaryUploadRepository) GetLastCommitByRef ¶
func (t *TemporaryUploadRepository) GetLastCommitByRef(ctx context.Context, ref string) (string, error)
GetLastCommitByRef gets the last commit ID SHA of the repo by ref
func (*TemporaryUploadRepository) HashObject ¶
func (t *TemporaryUploadRepository) HashObject(ctx context.Context, content io.Reader) (string, error)
HashObject writes the provided content to the object db and returns its hash
func (*TemporaryUploadRepository) Init ¶ added in v1.17.0
func (t *TemporaryUploadRepository) Init(ctx context.Context, objectFormatName string) error
Init the repository
func (*TemporaryUploadRepository) LsFiles ¶
func (t *TemporaryUploadRepository) LsFiles(ctx context.Context, filenames ...string) ([]string, error)
LsFiles checks if the given filename arguments are in the index
func (*TemporaryUploadRepository) Push ¶
func (t *TemporaryUploadRepository) Push(ctx context.Context, doer *user_model.User, commitHash, branch string) error
Push the provided commitHash to the repository branch by the provided user
func (*TemporaryUploadRepository) RefreshIndex ¶ added in v1.21.5
func (t *TemporaryUploadRepository) RefreshIndex(ctx context.Context) error
RefreshIndex looks at the current index and checks to see if merges or updates are needed by checking stat() information.
func (*TemporaryUploadRepository) RemoveFilesFromIndex ¶
func (t *TemporaryUploadRepository) RemoveFilesFromIndex(ctx context.Context, filenames ...string) error
RemoveFilesFromIndex removes the given files from the index
func (*TemporaryUploadRepository) SetDefaultIndex ¶
func (t *TemporaryUploadRepository) SetDefaultIndex(ctx context.Context) error
SetDefaultIndex sets the git index to our HEAD
type TreeViewNode ¶ added in v1.24.0
type TreeViewNode struct { EntryName string `json:"entryName"` EntryMode string `json:"entryMode"` EntryIcon template.HTML `json:"entryIcon"` EntryIconOpen template.HTML `json:"entryIconOpen,omitempty"` SymLinkedToMode string `json:"symLinkedToMode,omitempty"` // TODO: for the EntryMode="symlink" FullPath string `json:"fullPath"` SubmoduleURL string `json:"submoduleUrl,omitempty"` Children []*TreeViewNode `json:"children,omitempty"` }
func GetTreeViewNodes ¶ added in v1.24.0
func GetTreeViewNodes(ctx context.Context, renderedIconPool *fileicon.RenderedIconPool, commit *git.Commit, treePath, subPath string) ([]*TreeViewNode, error)
type UploadRepoFileOptions ¶
type UploadRepoFileOptions struct { LastCommitID string OldBranch string NewBranch string TreePath string Message string Files []string // In UUID format. Signoff bool Author *IdentityOptions Committer *IdentityOptions }
UploadRepoFileOptions contains the uploaded repository file options