Documentation ¶
Index ¶
- Constants
- Variables
- func AddChanges(repoPath string, all bool, files ...string) error
- func BinVersion() (string, error)
- func Checkout(repoPath string, opts CheckoutOptions) error
- func Clone(from, to string, opts CloneRepoOptions) (err error)
- func CommitChanges(repoPath string, opts CommitChangesOptions) error
- func CommitsCount(repoPath, revision string) (int64, error)
- func Fsck(repoPath string, timeout time.Duration, args ...string) error
- func GetFullCommitID(repoPath, shortID string) (string, error)
- func GetLatestCommitTime(repoPath string) (time.Time, error)
- func GetNote(repo *Repository, commitID string, note *Note) error
- func Init() error
- func InitRepository(repoPath string, bare bool) error
- func IsBranchExist(repoPath, name string) bool
- func IsErrBranchNotExist(err error) bool
- func IsErrExecTimeout(err error) bool
- func IsErrNotExist(err error) bool
- func IsErrUnsupportedVersion(err error) bool
- func IsReferenceExist(repoPath, name string) bool
- func IsRepoURLAccessible(url string) bool
- func IsTagExist(repoPath, name string) bool
- func IsValidHookName(name string) bool
- func MoveFile(repoPath, oldTreeName, newTreeName string) error
- func Pull(repoPath string, opts PullRemoteOptions) error
- func Push(repoPath string, opts PushOptions) error
- func RefEndName(refStr string) string
- func ResetHEAD(repoPath string, hard bool, revision string) error
- func SetExecutablePath(path string) error
- func SetUpdateHook(repoPath, content string) (err error)
- func Version() string
- type ArchiveType
- type BlamePart
- type BlameReader
- type Blob
- type Branch
- type CheckoutOptions
- type CloneRepoOptions
- type CodeActivityStats
- type Command
- func (c *Command) AddArguments(args ...string) *Command
- func (c *Command) Run() (string, error)
- func (c *Command) RunInDir(dir string) (string, error)
- func (c *Command) RunInDirBytes(dir string) ([]byte, error)
- func (c *Command) RunInDirFullPipeline(dir string, stdout, stderr io.Writer, stdin io.Reader) error
- func (c *Command) RunInDirPipeline(dir string, stdout, stderr io.Writer) error
- func (c *Command) RunInDirTimeout(timeout time.Duration, dir string) ([]byte, error)
- func (c *Command) RunInDirTimeoutEnv(env []string, timeout time.Duration, dir string) ([]byte, error)
- func (c *Command) RunInDirTimeoutEnvFullPipeline(env []string, timeout time.Duration, dir string, stdout, stderr io.Writer, ...) error
- func (c *Command) RunInDirTimeoutEnvPipeline(env []string, timeout time.Duration, dir string, stdout, stderr io.Writer) error
- func (c *Command) RunInDirTimeoutFullPipeline(timeout time.Duration, dir string, stdout, stderr io.Writer, stdin io.Reader) error
- func (c *Command) RunInDirTimeoutPipeline(timeout time.Duration, dir string, stdout, stderr io.Writer) error
- func (c *Command) RunInDirWithEnv(dir string, env []string) (string, error)
- func (c *Command) RunTimeout(timeout time.Duration) (string, error)
- func (c *Command) String() string
- type Commit
- func (c *Commit) CommitsBefore() (*list.List, error)
- func (c *Commit) CommitsBeforeLimit(num int) (*list.List, error)
- func (c *Commit) CommitsBeforeUntil(commitID string) (*list.List, error)
- func (c *Commit) CommitsByRange(page int) (*list.List, error)
- func (c *Commit) CommitsCount() (int64, error)
- func (c *Commit) CreateArchive(target string, archiveType ArchiveType) error
- func (c *Commit) FileChangedSinceCommit(filename, pastCommit string) (bool, error)
- func (c *Commit) GetBranchName() (string, error)
- func (c *Commit) GetCommitByPath(relpath string) (*Commit, error)
- func (c *Commit) GetFilesChangedSinceCommit(pastCommit string) ([]string, error)
- func (c *Commit) GetSubModule(entryname string) (*SubModule, error)
- func (c *Commit) GetSubModules() (*ObjectCache, error)
- func (c *Commit) HasFile(filename string) (bool, error)
- func (c *Commit) ImageInfo(name string) (*ImageMetaData, error)
- func (c *Commit) IsImageFile(name string) bool
- func (c *Commit) Message() string
- func (c *Commit) Parent(n int) (*Commit, error)
- func (c *Commit) ParentCount() int
- func (c *Commit) ParentID(n int) (SHA1, error)
- func (c *Commit) SearchCommits(opts SearchCommitsOptions) (*list.List, error)
- func (c *Commit) Summary() string
- type CommitChangesOptions
- type CommitFileStatus
- type CommitGPGSignature
- type CommitTreeOpts
- type CompareInfo
- type CountObject
- type DeleteBranchOptions
- type DivergeObject
- type Entries
- type EntryMode
- type ErrBadLink
- type ErrBranchNotExist
- type ErrExecTimeout
- type ErrNotExist
- type ErrUnsupportedVersion
- type Hook
- type ImageMetaData
- type LastCommitCache
- type Note
- type ObjectCache
- type ObjectType
- type PullRemoteOptions
- type PushOptions
- type Reference
- type Repository
- func (repo *Repository) AddObjectToIndex(mode string, object SHA1, filename string) error
- func (repo *Repository) AddRemote(name, url string, fetch bool) error
- func (r *Repository) CommitNodeIndex() (cgobject.CommitNodeIndex, *os.File)
- func (repo *Repository) CommitTree(sig *Signature, tree *Tree, opts CommitTreeOpts) (SHA1, error)
- func (repo *Repository) CommitsBetween(last *Commit, before *Commit) (*list.List, error)
- func (repo *Repository) CommitsBetweenIDs(last, before string) (*list.List, error)
- func (repo *Repository) CommitsByFileAndRange(revision, file string, page int) (*list.List, error)
- func (repo *Repository) CommitsByFileAndRangeNoFollow(revision, file string, page int) (*list.List, error)
- func (repo *Repository) CommitsCountBetween(start, end string) (int64, error)
- func (repo *Repository) ConvertToSHA1(commitID string) (SHA1, error)
- func (repo *Repository) CreateAnnotatedTag(name, message, revision string) error
- func (repo *Repository) CreateBranch(branch, oldbranchOrCommit string) error
- func (repo *Repository) CreateTag(name, revision string) error
- func (repo *Repository) DeleteBranch(name string, opts DeleteBranchOptions) error
- func (repo *Repository) EmptyIndex() error
- func (repo *Repository) FileBlame(revision, path, file string) ([]byte, error)
- func (repo *Repository) FileChangedBetweenCommits(filename, id1, id2 string) (bool, error)
- func (repo *Repository) FileCommitsCount(revision, file string) (int64, error)
- func (repo *Repository) FilesCountBetween(startCommitID, endCommitID string) (int, error)
- func (repo *Repository) GetAnnotatedTag(sha string) (*Tag, error)
- func (repo *Repository) GetBlob(idStr string) (*Blob, error)
- func (repo *Repository) GetBranch(branch string) (*Branch, error)
- func (repo *Repository) GetBranchCommit(name string) (*Commit, error)
- func (repo *Repository) GetBranchCommitID(name string) (string, error)
- func (repo *Repository) GetBranches() ([]string, error)
- func (repo *Repository) GetCodeActivityStats(fromTime time.Time, branch string) (*CodeActivityStats, error)
- func (repo *Repository) GetCommit(commitID string) (*Commit, error)
- func (repo *Repository) GetCommitByPath(relpath string) (*Commit, error)
- func (repo *Repository) GetCompareInfo(basePath, baseBranch, headBranch string) (_ *CompareInfo, err error)
- func (repo *Repository) GetFormatPatch(base, head string) (io.Reader, error)
- func (repo *Repository) GetHEADBranch() (*Branch, error)
- func (repo *Repository) GetHook(name string) (*Hook, error)
- func (repo *Repository) GetMergeBase(tmpRemote string, base, head string) (string, string, error)
- func (repo *Repository) GetPatch(base, head string) ([]byte, error)
- func (repo *Repository) GetRefCommitID(name string) (string, error)
- func (repo *Repository) GetRefType(ref string) ObjectType
- func (repo *Repository) GetRefs() ([]*Reference, error)
- func (repo *Repository) GetRefsFiltered(pattern string) ([]*Reference, error)
- func (repo *Repository) GetTag(name string) (*Tag, error)
- func (repo *Repository) GetTagCommit(name string) (*Commit, error)
- func (repo *Repository) GetTagCommitID(name string) (string, error)
- func (repo *Repository) GetTagID(name string) (string, error)
- func (repo *Repository) GetTagInfos() ([]*Tag, error)
- func (repo *Repository) GetTagNameBySHA(sha string) (string, error)
- func (repo *Repository) GetTagType(id SHA1) (string, error)
- func (repo *Repository) GetTags() ([]string, error)
- func (repo *Repository) GetTree(idStr string) (*Tree, error)
- func (repo *Repository) HashObject(reader io.Reader) (SHA1, error)
- func (repo *Repository) Hooks() ([]*Hook, error)
- func (repo *Repository) IsBranchExist(name string) bool
- func (repo *Repository) IsCommitExist(name string) bool
- func (repo *Repository) IsEmpty() (bool, error)
- func (repo *Repository) IsTagExist(name string) bool
- func (repo *Repository) LineBlame(revision, path, file string, line uint) (*Commit, error)
- func (repo *Repository) LsFiles(filenames ...string) ([]string, error)
- func (repo *Repository) ReadTreeToIndex(treeish string) error
- func (repo *Repository) RemoveFilesFromIndex(filenames ...string) error
- func (repo *Repository) RemoveRemote(name string) error
- func (repo *Repository) SetDefaultBranch(name string) error
- func (repo *Repository) WriteTree() (*Tree, error)
- type SHA1
- type SearchCommitsOptions
- type Signature
- type SubModule
- type SubModuleFile
- type Tag
- type Tree
- type TreeEntry
- func (te *TreeEntry) Blob() *Blob
- func (te *TreeEntry) FollowLink() (*TreeEntry, error)
- func (te *TreeEntry) GetSubJumpablePathName() string
- func (te *TreeEntry) IsDir() bool
- func (te *TreeEntry) IsExecutable() bool
- func (te *TreeEntry) IsLink() bool
- func (te *TreeEntry) IsRegular() bool
- func (te *TreeEntry) IsSubModule() bool
- func (te *TreeEntry) Mode() EntryMode
- func (te *TreeEntry) Name() string
- func (te *TreeEntry) Size() int64
- func (te *TreeEntry) Type() string
Constants ¶
const BranchPrefix = "refs/heads/"
BranchPrefix base dir of the branch information file store on git
const EmptySHA = "0000000000000000000000000000000000000000"
EmptySHA defines empty git SHA
const (
// GitTimeLayout is the (default) time layout used by git.
GitTimeLayout = "Mon Jan _2 15:04:05 2006 -0700"
)
const (
// HookPathUpdate hook update path
HookPathUpdate = "hooks/update"
)
const NotesRef = "refs/notes/commits"
NotesRef is the git ref where Gitea will look for git-notes data. The value ("refs/notes/commits") is the default ref used by git-notes.
const TagPrefix = "refs/tags/"
TagPrefix tags prefix path on the repository
Variables ¶
var ( // GlobalCommandArgs global command args for external package setting GlobalCommandArgs []string // DefaultCommandExecutionTimeout default command execution timeout duration DefaultCommandExecutionTimeout = 60 * time.Second )
var ( // Debug enables verbose logging on everything. // This should be false in case Gogs starts in SSH mode. Debug = false // Prefix the log prefix Prefix = "[git-module] " // GitVersionRequired is the minimum Git version required GitVersionRequired = "1.7.2" // GitExecutable is the command name of git // Could be updated to an absolute path while initialization GitExecutable = "git" )
var CommitsRangeSize = 50
CommitsRangeSize the default commits range size
var ( // ErrNotValidHook error when a git hook is not valid ErrNotValidHook = errors.New("not a valid Git hook") )
Functions ¶
func AddChanges ¶
AddChanges marks local changes to be ready for commit.
func BinVersion ¶
BinVersion returns current Git version from shell.
func Checkout ¶
func Checkout(repoPath string, opts CheckoutOptions) error
Checkout checkouts a branch
func Clone ¶
func Clone(from, to string, opts CloneRepoOptions) (err error)
Clone clones original repository to target path.
func CommitChanges ¶
func CommitChanges(repoPath string, opts CommitChangesOptions) error
CommitChanges commits local changes with given committer, author and message. If author is nil, it will be the same as committer.
func CommitsCount ¶
CommitsCount returns number of total commits of until given revision.
func GetFullCommitID ¶
GetFullCommitID returns full length (40) of commit ID by given short SHA in a repository.
func GetLatestCommitTime ¶
GetLatestCommitTime returns time for latest commit in repository (across all branches)
func GetNote ¶
func GetNote(repo *Repository, commitID string, note *Note) error
GetNote retrieves the git-notes data for a given commit.
func InitRepository ¶
InitRepository initializes a new Git repository.
func IsBranchExist ¶
IsBranchExist returns true if given branch exists in the repository.
func IsErrBranchNotExist ¶
IsErrBranchNotExist checks if an error is a ErrBranchNotExist.
func IsErrExecTimeout ¶
IsErrExecTimeout if some error is ErrExecTimeout
func IsErrUnsupportedVersion ¶
IsErrUnsupportedVersion if some error is ErrUnsupportedVersion
func IsReferenceExist ¶
IsReferenceExist returns true if given reference exists in the repository.
func IsRepoURLAccessible ¶
IsRepoURLAccessible checks if given repository URL is accessible.
func IsTagExist ¶
IsTagExist returns true if given tag exists in the repository.
func IsValidHookName ¶
IsValidHookName returns true if given name is a valid Git hook.
func Pull ¶
func Pull(repoPath string, opts PullRemoteOptions) error
Pull pulls changes from remotes.
func Push ¶
func Push(repoPath string, opts PushOptions) error
Push pushs local commits to given remote branch.
func RefEndName ¶
RefEndName return the end name of a ref name
func SetExecutablePath ¶ added in v1.10.0
SetExecutablePath changes the path of git executable and checks the file permission and version.
func SetUpdateHook ¶
SetUpdateHook writes given content to update hook of the reposiotry.
Types ¶
type ArchiveType ¶
type ArchiveType int
ArchiveType archive types
const ( // ZIP zip archive type ZIP ArchiveType = iota + 1 // TARGZ tar gz archive type TARGZ )
type BlameReader ¶
type BlameReader struct {
// contains filtered or unexported fields
}
BlameReader returns part of file blame one by one
func CreateBlameReader ¶
func CreateBlameReader(repoPath, commitID, file string) (*BlameReader, error)
CreateBlameReader creates reader for given repository, commit and file
func (*BlameReader) Close ¶
func (r *BlameReader) Close() error
Close BlameReader - don't run NextPart after invoking that
func (*BlameReader) NextPart ¶
func (r *BlameReader) NextPart() (*BlamePart, error)
NextPart returns next part of blame (sequencial code lines with the same commit)
type Blob ¶
type Blob struct { ID SHA1 // contains filtered or unexported fields }
Blob represents a Git object.
func (*Blob) DataAsync ¶
func (b *Blob) DataAsync() (io.ReadCloser, error)
DataAsync gets a ReadCloser for the contents of a blob without reading it all. Calling the Close function on the result will discard all unread output.
func (*Blob) GetBlobContent ¶
GetBlobContent Gets the content of the blob as raw text
func (*Blob) GetBlobContentBase64 ¶
GetBlobContentBase64 Reads the content of the blob with a base64 encode and returns the encoded string
type Branch ¶
Branch represents a Git branch.
func GetBranchesByPath ¶
GetBranchesByPath returns a branch by it's path
type CheckoutOptions ¶
CheckoutOptions options when heck out some branch
type CloneRepoOptions ¶
type CloneRepoOptions struct { Timeout time.Duration Mirror bool Bare bool Quiet bool Branch string NoCheckout bool }
CloneRepoOptions options when clone a repository
type CodeActivityStats ¶
type CodeActivityStats struct { AuthorCount int64 CommitCount int64 ChangedFiles int64 Additions int64 Deletions int64 CommitCountInAllBranches int64 Authors map[string]int64 }
CodeActivityStats represents git statistics data
type Command ¶
type Command struct {
// contains filtered or unexported fields
}
Command represents a command with its subcommands or arguments.
func NewCommand ¶
NewCommand creates and returns a new Git Command based on given command and arguments.
func (*Command) AddArguments ¶
AddArguments adds new argument(s) to the command.
func (*Command) Run ¶
Run executes the command in default working directory and returns stdout in string and error (combined with stderr).
func (*Command) RunInDir ¶
RunInDir executes the command in given directory and returns stdout in string and error (combined with stderr).
func (*Command) RunInDirBytes ¶
RunInDirBytes executes the command in given directory and returns stdout in []byte and error (combined with stderr).
func (*Command) RunInDirFullPipeline ¶
RunInDirFullPipeline executes the command in given directory, it pipes stdout and stderr to given io.Writer.
func (*Command) RunInDirPipeline ¶
RunInDirPipeline executes the command in given directory, it pipes stdout and stderr to given io.Writer.
func (*Command) RunInDirTimeout ¶
RunInDirTimeout executes the command in given directory with given timeout, and returns stdout in []byte and error (combined with stderr).
func (*Command) RunInDirTimeoutEnv ¶
func (c *Command) RunInDirTimeoutEnv(env []string, timeout time.Duration, dir string) ([]byte, error)
RunInDirTimeoutEnv executes the command in given directory with given timeout, and returns stdout in []byte and error (combined with stderr).
func (*Command) RunInDirTimeoutEnvFullPipeline ¶
func (c *Command) RunInDirTimeoutEnvFullPipeline(env []string, timeout time.Duration, dir string, stdout, stderr io.Writer, stdin io.Reader) error
RunInDirTimeoutEnvFullPipeline executes the command in given directory with given timeout, it pipes stdout and stderr to given io.Writer and passes in an io.Reader as stdin.
func (*Command) RunInDirTimeoutEnvPipeline ¶
func (c *Command) RunInDirTimeoutEnvPipeline(env []string, timeout time.Duration, dir string, stdout, stderr io.Writer) error
RunInDirTimeoutEnvPipeline executes the command in given directory with given timeout, it pipes stdout and stderr to given io.Writer.
func (*Command) RunInDirTimeoutFullPipeline ¶
func (c *Command) RunInDirTimeoutFullPipeline(timeout time.Duration, dir string, stdout, stderr io.Writer, stdin io.Reader) error
RunInDirTimeoutFullPipeline executes the command in given directory with given timeout, it pipes stdout and stderr to given io.Writer, and stdin from the given io.Reader
func (*Command) RunInDirTimeoutPipeline ¶
func (c *Command) RunInDirTimeoutPipeline(timeout time.Duration, dir string, stdout, stderr io.Writer) error
RunInDirTimeoutPipeline executes the command in given directory with given timeout, it pipes stdout and stderr to given io.Writer.
func (*Command) RunInDirWithEnv ¶
RunInDirWithEnv executes the command in given directory and returns stdout in string and error (combined with stderr).
func (*Command) RunTimeout ¶
RunTimeout executes the command in default working directory with given timeout, and returns stdout in string and error (combined with stderr).
type Commit ¶
type Commit struct { Branch string // Branch this commit belongs to Tree ID SHA1 // The ID of this commit object Author *Signature Committer *Signature CommitMessage string Signature *CommitGPGSignature // contains filtered or unexported fields }
Commit represents a git commit.
func (*Commit) CommitsBefore ¶
CommitsBefore returns all the commits before current revision
func (*Commit) CommitsBeforeLimit ¶
CommitsBeforeLimit returns num commits before current revision
func (*Commit) CommitsBeforeUntil ¶
CommitsBeforeUntil returns the commits between commitID to current revision
func (*Commit) CommitsByRange ¶
CommitsByRange returns the specific page commits before current revision, every page's number default by CommitsRangeSize
func (*Commit) CommitsCount ¶
CommitsCount returns number of total commits of until current revision.
func (*Commit) CreateArchive ¶
func (c *Commit) CreateArchive(target string, archiveType ArchiveType) error
CreateArchive create archive content to the target path
func (*Commit) FileChangedSinceCommit ¶
FileChangedSinceCommit Returns true if the file given has changed since the the past commit YOU MUST ENSURE THAT pastCommit is a valid commit ID.
func (*Commit) GetBranchName ¶
GetBranchName gets the closes branch name (as returned by 'git name-rev')
func (*Commit) GetCommitByPath ¶
GetCommitByPath return the commit of relative path object.
func (*Commit) GetFilesChangedSinceCommit ¶
GetFilesChangedSinceCommit get all changed file names between pastCommit to current revision
func (*Commit) GetSubModule ¶
GetSubModule get the sub module according entryname
func (*Commit) GetSubModules ¶
func (c *Commit) GetSubModules() (*ObjectCache, error)
GetSubModules get all the sub modules of current revision git tree
func (*Commit) HasFile ¶ added in v1.10.0
HasFile returns true if the file given exists on this commit This does only mean it's there - it does not mean the file was changed during the commit.
func (*Commit) ImageInfo ¶ added in v1.10.0
func (c *Commit) ImageInfo(name string) (*ImageMetaData, error)
ImageInfo returns information about the dimensions of an image
func (*Commit) IsImageFile ¶
IsImageFile is a file image type
func (*Commit) Message ¶
Message returns the commit message. Same as retrieving CommitMessage directly.
func (*Commit) ParentCount ¶
ParentCount returns number of parents of the commit. 0 if this is the root commit, otherwise 1,2, etc.
func (*Commit) ParentID ¶
ParentID returns oid of n-th parent (0-based index). It returns nil if no such parent exists.
func (*Commit) SearchCommits ¶
func (c *Commit) SearchCommits(opts SearchCommitsOptions) (*list.List, error)
SearchCommits returns the commits match the keyword before current revision
type CommitChangesOptions ¶
CommitChangesOptions the options when a commit created
type CommitFileStatus ¶
CommitFileStatus represents status of files in a commit.
func GetCommitFileStatus ¶
func GetCommitFileStatus(repoPath, commitID string) (*CommitFileStatus, error)
GetCommitFileStatus returns file status of commit in given repository.
func NewCommitFileStatus ¶
func NewCommitFileStatus() *CommitFileStatus
NewCommitFileStatus creates a CommitFileStatus
type CommitGPGSignature ¶
type CommitGPGSignature struct { Signature string Payload string //TODO check if can be reconstruct from the rest of commit information to not have duplicate data }
CommitGPGSignature represents a git commit signature part.
type CommitTreeOpts ¶
CommitTreeOpts represents the possible options to CommitTree
type CompareInfo ¶
CompareInfo represents needed information for comparing references.
type CountObject ¶
type CountObject struct { Count int64 Size int64 InPack int64 Packs int64 SizePack int64 PrunePack int64 Garbage int64 SizeGarbage int64 }
CountObject represents repository count objects report
func GetRepoSize ¶
func GetRepoSize(repoPath string) (*CountObject, error)
GetRepoSize returns disk consumption for repo in path
type DeleteBranchOptions ¶
type DeleteBranchOptions struct {
Force bool
}
DeleteBranchOptions Option(s) for delete branch
type DivergeObject ¶
DivergeObject represents commit count diverging commits
func GetDivergingCommits ¶
func GetDivergingCommits(repoPath string, baseBranch string, targetBranch string) (DivergeObject, error)
GetDivergingCommits returns the number of commits a targetBranch is ahead or behind a baseBranch
type Entries ¶
type Entries []*TreeEntry
Entries a list of entry
func (Entries) CustomSort ¶
CustomSort customizable string comparing sort entry list
func (Entries) GetCommitsInfo ¶
func (tes Entries) GetCommitsInfo(commit *Commit, treePath string, cache LastCommitCache) ([][]interface{}, *Commit, error)
GetCommitsInfo gets information of all commits that are corresponding to these entries
type EntryMode ¶
type EntryMode int
EntryMode the type of the object in the git tree
const ( // EntryModeBlob EntryModeBlob EntryMode = 0100644 // EntryModeExec EntryModeExec EntryMode = 0100755 // EntryModeSymlink EntryModeSymlink EntryMode = 0120000 // EntryModeCommit EntryModeCommit EntryMode = 0160000 // EntryModeTree EntryModeTree EntryMode = 0040000 )
There are only a few file modes in Git. They look like unix file modes, but they can only be one of these.
type ErrBadLink ¶
ErrBadLink entry.FollowLink error
func (ErrBadLink) Error ¶
func (err ErrBadLink) Error() string
type ErrBranchNotExist ¶
type ErrBranchNotExist struct {
Name string
}
ErrBranchNotExist represents a "BranchNotExist" kind of error.
func (ErrBranchNotExist) Error ¶
func (err ErrBranchNotExist) Error() string
type ErrExecTimeout ¶
ErrExecTimeout error when exec timed out
func (ErrExecTimeout) Error ¶
func (err ErrExecTimeout) Error() string
type ErrNotExist ¶
ErrNotExist commit not exist error
func (ErrNotExist) Error ¶
func (err ErrNotExist) Error() string
type ErrUnsupportedVersion ¶
type ErrUnsupportedVersion struct {
Required string
}
ErrUnsupportedVersion error when required git version not matched
func (ErrUnsupportedVersion) Error ¶
func (err ErrUnsupportedVersion) Error() string
type Hook ¶
type Hook struct { IsActive bool // Indicates whether repository has this hook. Content string // Content of hook if it's active. Sample string // Sample content from Git. // contains filtered or unexported fields }
Hook represents a Git hook.
type ImageMetaData ¶ added in v1.10.0
ImageMetaData represents metadata of an image file
type LastCommitCache ¶
type LastCommitCache interface { Get(repoPath, ref, entryPath string) (*Commit, error) Put(repoPath, ref, entryPath string, commit *Commit) error }
LastCommitCache cache
type ObjectCache ¶
type ObjectCache struct {
// contains filtered or unexported fields
}
ObjectCache provides thread-safe cache opeations.
func (*ObjectCache) Get ¶
func (oc *ObjectCache) Get(id string) (interface{}, bool)
Get get cached obj by id
func (*ObjectCache) Set ¶
func (oc *ObjectCache) Set(id string, obj interface{})
Set add obj to cache
type ObjectType ¶
type ObjectType string
ObjectType git object type
const ( // ObjectCommit commit object type ObjectCommit ObjectType = "commit" // ObjectTree tree object type ObjectTree ObjectType = "tree" // ObjectBlob blob object type ObjectBlob ObjectType = "blob" // ObjectTag tag object type ObjectTag ObjectType = "tag" // ObjectBranch branch object type ObjectBranch ObjectType = "branch" )
type PullRemoteOptions ¶
type PullRemoteOptions struct { Timeout time.Duration All bool Rebase bool Remote string Branch string }
PullRemoteOptions options when pull from remote
type PushOptions ¶
PushOptions options when push to remote
type Reference ¶
type Reference struct { Name string Object SHA1 // The id of this commit object Type string // contains filtered or unexported fields }
Reference represents a Git ref.
type Repository ¶
type Repository struct { Path string // contains filtered or unexported fields }
Repository represents a Git repository.
func OpenRepository ¶
func OpenRepository(repoPath string) (*Repository, error)
OpenRepository opens the repository at the given path.
func (*Repository) AddObjectToIndex ¶
func (repo *Repository) AddObjectToIndex(mode string, object SHA1, filename string) error
AddObjectToIndex adds the provided object hash to the index at the provided filename
func (*Repository) AddRemote ¶
func (repo *Repository) AddRemote(name, url string, fetch bool) error
AddRemote adds a new remote to repository.
func (*Repository) CommitNodeIndex ¶
func (r *Repository) CommitNodeIndex() (cgobject.CommitNodeIndex, *os.File)
CommitNodeIndex returns the index for walking commit graph
func (*Repository) CommitTree ¶
func (repo *Repository) CommitTree(sig *Signature, tree *Tree, opts CommitTreeOpts) (SHA1, error)
CommitTree creates a commit from a given tree id for the user with provided message
func (*Repository) CommitsBetween ¶
CommitsBetween returns a list that contains commits between [last, before).
func (*Repository) CommitsBetweenIDs ¶
func (repo *Repository) CommitsBetweenIDs(last, before string) (*list.List, error)
CommitsBetweenIDs return commits between twoe commits
func (*Repository) CommitsByFileAndRange ¶
CommitsByFileAndRange return the commits according revison file and the page
func (*Repository) CommitsByFileAndRangeNoFollow ¶ added in v1.10.0
func (repo *Repository) CommitsByFileAndRangeNoFollow(revision, file string, page int) (*list.List, error)
CommitsByFileAndRangeNoFollow return the commits according revison file and the page
func (*Repository) CommitsCountBetween ¶
func (repo *Repository) CommitsCountBetween(start, end string) (int64, error)
CommitsCountBetween return numbers of commits between two commits
func (*Repository) ConvertToSHA1 ¶ added in v1.9.1
func (repo *Repository) ConvertToSHA1(commitID string) (SHA1, error)
ConvertToSHA1 returns a Hash object from a potential ID string
func (*Repository) CreateAnnotatedTag ¶
func (repo *Repository) CreateAnnotatedTag(name, message, revision string) error
CreateAnnotatedTag create one annotated tag in the repository
func (*Repository) CreateBranch ¶
func (repo *Repository) CreateBranch(branch, oldbranchOrCommit string) error
CreateBranch create a new branch
func (*Repository) CreateTag ¶
func (repo *Repository) CreateTag(name, revision string) error
CreateTag create one tag in the repository
func (*Repository) DeleteBranch ¶
func (repo *Repository) DeleteBranch(name string, opts DeleteBranchOptions) error
DeleteBranch delete a branch by name on repository.
func (*Repository) EmptyIndex ¶
func (repo *Repository) EmptyIndex() error
EmptyIndex empties the index
func (*Repository) FileBlame ¶
func (repo *Repository) FileBlame(revision, path, file string) ([]byte, error)
FileBlame return the Blame object of file
func (*Repository) FileChangedBetweenCommits ¶
func (repo *Repository) FileChangedBetweenCommits(filename, id1, id2 string) (bool, error)
FileChangedBetweenCommits Returns true if the file changed between commit IDs id1 and id2 You must ensure that id1 and id2 are valid commit ids.
func (*Repository) FileCommitsCount ¶
func (repo *Repository) FileCommitsCount(revision, file string) (int64, error)
FileCommitsCount return the number of files at a revison
func (*Repository) FilesCountBetween ¶
func (repo *Repository) FilesCountBetween(startCommitID, endCommitID string) (int, error)
FilesCountBetween return the number of files changed between two commits
func (*Repository) GetAnnotatedTag ¶
func (repo *Repository) GetAnnotatedTag(sha string) (*Tag, error)
GetAnnotatedTag returns a Git tag by its SHA, must be an annotated tag
func (*Repository) GetBlob ¶
func (repo *Repository) GetBlob(idStr string) (*Blob, error)
GetBlob finds the blob object in the repository.
func (*Repository) GetBranch ¶
func (repo *Repository) GetBranch(branch string) (*Branch, error)
GetBranch returns a branch by it's name
func (*Repository) GetBranchCommit ¶
func (repo *Repository) GetBranchCommit(name string) (*Commit, error)
GetBranchCommit returns the last commit of given branch.
func (*Repository) GetBranchCommitID ¶
func (repo *Repository) GetBranchCommitID(name string) (string, error)
GetBranchCommitID returns last commit ID string of given branch.
func (*Repository) GetBranches ¶
func (repo *Repository) GetBranches() ([]string, error)
GetBranches returns all branches of the repository.
func (*Repository) GetCodeActivityStats ¶
func (repo *Repository) GetCodeActivityStats(fromTime time.Time, branch string) (*CodeActivityStats, error)
GetCodeActivityStats returns code statistics for acitivity page
func (*Repository) GetCommit ¶
func (repo *Repository) GetCommit(commitID string) (*Commit, error)
GetCommit returns commit object of by ID string.
func (*Repository) GetCommitByPath ¶
func (repo *Repository) GetCommitByPath(relpath string) (*Commit, error)
GetCommitByPath returns the last commit of relative path.
func (*Repository) GetCompareInfo ¶
func (repo *Repository) GetCompareInfo(basePath, baseBranch, headBranch string) (_ *CompareInfo, err error)
GetCompareInfo generates and returns compare information between base and head branches of repositories.
func (*Repository) GetFormatPatch ¶
func (repo *Repository) GetFormatPatch(base, head string) (io.Reader, error)
GetFormatPatch generates and returns format-patch data between given revisions.
func (*Repository) GetHEADBranch ¶
func (repo *Repository) GetHEADBranch() (*Branch, error)
GetHEADBranch returns corresponding branch of HEAD.
func (*Repository) GetHook ¶
func (repo *Repository) GetHook(name string) (*Hook, error)
GetHook get one hook according the name on a repository
func (*Repository) GetMergeBase ¶
GetMergeBase checks and returns merge base of two branches and the reference used as base.
func (*Repository) GetPatch ¶
func (repo *Repository) GetPatch(base, head string) ([]byte, error)
GetPatch generates and returns patch data between given revisions.
func (*Repository) GetRefCommitID ¶
func (repo *Repository) GetRefCommitID(name string) (string, error)
GetRefCommitID returns the last commit ID string of given reference (branch or tag).
func (*Repository) GetRefType ¶
func (repo *Repository) GetRefType(ref string) ObjectType
GetRefType gets the type of the ref based on the string
func (*Repository) GetRefs ¶
func (repo *Repository) GetRefs() ([]*Reference, error)
GetRefs returns all references of the repository.
func (*Repository) GetRefsFiltered ¶
func (repo *Repository) GetRefsFiltered(pattern string) ([]*Reference, error)
GetRefsFiltered returns all references of the repository that matches patterm exactly or starting with.
func (*Repository) GetTag ¶
func (repo *Repository) GetTag(name string) (*Tag, error)
GetTag returns a Git tag by given name.
func (*Repository) GetTagCommit ¶
func (repo *Repository) GetTagCommit(name string) (*Commit, error)
GetTagCommit get the commit of the specific tag via name
func (*Repository) GetTagCommitID ¶
func (repo *Repository) GetTagCommitID(name string) (string, error)
GetTagCommitID returns last commit ID string of given tag.
func (*Repository) GetTagID ¶
func (repo *Repository) GetTagID(name string) (string, error)
GetTagID returns the object ID for a tag (annotated tags have both an object SHA AND a commit SHA)
func (*Repository) GetTagInfos ¶
func (repo *Repository) GetTagInfos() ([]*Tag, error)
GetTagInfos returns all tag infos of the repository.
func (*Repository) GetTagNameBySHA ¶
func (repo *Repository) GetTagNameBySHA(sha string) (string, error)
GetTagNameBySHA returns the name of a tag from its tag object SHA or commit SHA
func (*Repository) GetTagType ¶
func (repo *Repository) GetTagType(id SHA1) (string, error)
GetTagType gets the type of the tag, either commit (simple) or tag (annotated)
func (*Repository) GetTags ¶
func (repo *Repository) GetTags() ([]string, error)
GetTags returns all tags of the repository.
func (*Repository) GetTree ¶
func (repo *Repository) GetTree(idStr string) (*Tree, error)
GetTree find the tree object in the repository.
func (*Repository) HashObject ¶
func (repo *Repository) HashObject(reader io.Reader) (SHA1, error)
HashObject takes a reader and returns SHA1 hash for that reader
func (*Repository) Hooks ¶
func (repo *Repository) Hooks() ([]*Hook, error)
Hooks get all the hooks on the repository
func (*Repository) IsBranchExist ¶
func (repo *Repository) IsBranchExist(name string) bool
IsBranchExist returns true if given branch exists in current repository.
func (*Repository) IsCommitExist ¶
func (repo *Repository) IsCommitExist(name string) bool
IsCommitExist returns true if given commit exists in current repository.
func (*Repository) IsEmpty ¶
func (repo *Repository) IsEmpty() (bool, error)
IsEmpty Check if repository is empty.
func (*Repository) IsTagExist ¶
func (repo *Repository) IsTagExist(name string) bool
IsTagExist returns true if given tag exists in the repository.
func (*Repository) LineBlame ¶
func (repo *Repository) LineBlame(revision, path, file string, line uint) (*Commit, error)
LineBlame returns the latest commit at the given line
func (*Repository) LsFiles ¶
func (repo *Repository) LsFiles(filenames ...string) ([]string, error)
LsFiles checks if the given filenames are in the index
func (*Repository) ReadTreeToIndex ¶
func (repo *Repository) ReadTreeToIndex(treeish string) error
ReadTreeToIndex reads a treeish to the index
func (*Repository) RemoveFilesFromIndex ¶
func (repo *Repository) RemoveFilesFromIndex(filenames ...string) error
RemoveFilesFromIndex removes given filenames from the index - it does not check whether they are present.
func (*Repository) RemoveRemote ¶
func (repo *Repository) RemoveRemote(name string) error
RemoveRemote removes a remote from repository.
func (*Repository) SetDefaultBranch ¶
func (repo *Repository) SetDefaultBranch(name string) error
SetDefaultBranch sets default branch of repository.
func (*Repository) WriteTree ¶
func (repo *Repository) WriteTree() (*Tree, error)
WriteTree writes the current index as a tree to the object db and returns its hash
type SHA1 ¶
SHA1 a git commit name
func MustIDFromString ¶
MustIDFromString always creates a new sha from a ID with no validation of input.
func NewIDFromString ¶
NewIDFromString creates a new SHA1 from a ID string of length 40.
type SearchCommitsOptions ¶
type SearchCommitsOptions struct { Keywords []string Authors, Committers []string After, Before string All bool }
SearchCommitsOptions specify the parameters for SearchCommits
func NewSearchCommitsOptions ¶
func NewSearchCommitsOptions(searchString string, forAllRefs bool) SearchCommitsOptions
NewSearchCommitsOptions construct a SearchCommitsOption from a space-delimited search string
type SubModuleFile ¶
type SubModuleFile struct { *Commit // contains filtered or unexported fields }
SubModuleFile represents a file with submodule type.
func NewSubModuleFile ¶
func NewSubModuleFile(c *Commit, refURL, refID string) *SubModuleFile
NewSubModuleFile create a new submodule file
type Tag ¶
type Tag struct { Name string ID SHA1 Object SHA1 // The id of this commit object Type string Tagger *Signature Message string // contains filtered or unexported fields }
Tag represents a Git tag.
type Tree ¶
Tree represents a flat directory listing.
func NewTree ¶
func NewTree(repo *Repository, id SHA1) *Tree
NewTree create a new tree according the repository and tree id
func (*Tree) GetBlobByPath ¶
GetBlobByPath get the blob object according the path
func (*Tree) GetTreeEntryByPath ¶
GetTreeEntryByPath get the tree entries according the sub dir
func (*Tree) ListEntries ¶
ListEntries returns all entries of current tree.
func (*Tree) ListEntriesRecursive ¶
ListEntriesRecursive returns all entries of current tree recursively including all subtrees
type TreeEntry ¶
type TreeEntry struct { ID SHA1 // contains filtered or unexported fields }
TreeEntry the leaf in the git tree
func ParseTreeEntries ¶
ParseTreeEntries parses the output of a `git ls-tree` command.
func (*TreeEntry) FollowLink ¶
FollowLink returns the entry pointed to by a symlink
func (*TreeEntry) GetSubJumpablePathName ¶
GetSubJumpablePathName return the full path of subdirectory jumpable ( contains only one directory )
func (*TreeEntry) IsExecutable ¶ added in v1.9.1
IsExecutable if the entry is an executable file (not necessarily binary)
func (*TreeEntry) IsSubModule ¶
IsSubModule if the entry is a sub module
Source Files ¶
- blame.go
- blob.go
- cache.go
- command.go
- commit.go
- commit_archive.go
- commit_info.go
- error.go
- git.go
- hook.go
- notes.go
- parse.go
- ref.go
- repo.go
- repo_blame.go
- repo_blob.go
- repo_branch.go
- repo_commit.go
- repo_commitgraph.go
- repo_compare.go
- repo_hook.go
- repo_index.go
- repo_object.go
- repo_ref.go
- repo_stats.go
- repo_tag.go
- repo_tree.go
- sha1.go
- signature.go
- submodule.go
- tag.go
- tree.go
- tree_blob.go
- tree_entry.go
- utils.go