README

Git Module

This module is merged from https://github.com/go-gitea/git which is a Go module to access Git through shell commands. Now it's a part of gitea's main repository for easier pull request.

Expand ▾ Collapse ▴

Documentation

Index

Examples

Constants

View Source
const BranchPrefix = "refs/heads/"

    BranchPrefix base dir of the branch information file store on git

    View Source
    const DefaultLocale = "C"

      DefaultLocale is the default LC_ALL to run git commands in.

      View Source
      const EmptySHA = "0000000000000000000000000000000000000000"

        EmptySHA defines empty git SHA

        View Source
        const EmptyTreeSHA = "4b825dc642cb6eb9a060e54bf8d69288fbee4904"

          EmptyTreeSHA is the SHA of an empty tree

          View Source
          const (
          	// GitTimeLayout is the (default) time layout used by git.
          	GitTimeLayout = "Mon Jan _2 15:04:05 2006 -0700"
          )
          View Source
          const (
          	// HookPathUpdate hook update path
          	HookPathUpdate = "hooks/update"
          )
          View Source
          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.

            View Source
            const TagPrefix = "refs/tags/"

              TagPrefix tags prefix path on the repository

              Variables

              View Source
              var (
              	// GlobalCommandArgs global command args for external package setting
              	GlobalCommandArgs []string
              
              	// DefaultCommandExecutionTimeout default command execution timeout duration
              	DefaultCommandExecutionTimeout = 360 * time.Second
              )
              View Source
              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"
              
              	// DefaultContext is the default context to run git commands in
              	// will be overwritten by Init with HammerContext
              	DefaultContext = context.Background()
              )
              View Source
              var CommitsRangeSize = 50

                CommitsRangeSize the default commits range size

                View Source
                var (
                	// ErrNotValidHook error when a git hook is not valid
                	ErrNotValidHook = errors.New("not a valid Git hook")
                )
                View Source
                var SHAPattern = regexp.MustCompile(`^[0-9a-f]{4,40}$`)

                  SHAPattern can be used to determine if a string is an valid sha

                  Functions

                  func AddChanges

                  func AddChanges(repoPath string, all bool, files ...string) error

                    AddChanges marks local changes to be ready for commit.

                    func AddChangesWithArgs

                    func AddChangesWithArgs(repoPath string, gloablArgs []string, all bool, files ...string) error

                      AddChangesWithArgs marks local changes to be ready for commit.

                      func AllCommitsCount

                      func AllCommitsCount(repoPath string) (int64, error)

                        AllCommitsCount returns count of all commits in repository

                        func CheckGitVersionConstraint

                        func CheckGitVersionConstraint(constraint string) error

                          CheckGitVersionConstraint check version constrain against local installed git version

                          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 CloneWithArgs

                              func CloneWithArgs(ctx context.Context, from, to string, args []string, opts CloneRepoOptions) (err error)

                                CloneWithArgs original repository to target path.

                                func CloneWithContext

                                func CloneWithContext(ctx context.Context, from, to string, opts CloneRepoOptions) (err error)

                                  CloneWithContext 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 CommitChangesWithArgs

                                    func CommitChangesWithArgs(repoPath string, args []string, opts CommitChangesOptions) error

                                      CommitChangesWithArgs commits local changes with given committer, author and message. If author is nil, it will be the same as committer.

                                      func CommitsCount

                                      func CommitsCount(repoPath, revision string) (int64, error)

                                        CommitsCount returns number of total commits of until given revision.

                                        func CutDiffAroundLine

                                        func CutDiffAroundLine(originalDiff io.Reader, line int64, old bool, numbersOfLine int) string

                                          CutDiffAroundLine cuts a diff of a file in way that only the given line + numberOfLine above it will be shown it also recalculates hunks and adds the appropriate headers to the new diff. Warning: Only one-file diffs are allowed.

                                          Example
                                          Output:
                                          
                                          

                                          func Fsck

                                          func Fsck(ctx context.Context, repoPath string, timeout time.Duration, args ...string) error

                                            Fsck verifies the connectivity and validity of the objects in the database

                                            func GetDiffShortStat

                                            func GetDiffShortStat(repoPath string, args ...string) (numFiles, totalAdditions, totalDeletions int, err error)

                                              GetDiffShortStat counts number of changed files, number of additions and deletions

                                              func GetFullCommitID

                                              func GetFullCommitID(repoPath, shortID string) (string, error)

                                                GetFullCommitID returns full length (40) of commit ID by given short SHA in a repository.

                                                func GetLastCommitForPaths

                                                func GetLastCommitForPaths(c cgobject.CommitNode, treePath string, paths []string) (map[string]*object.Commit, error)

                                                  GetLastCommitForPaths returns last commit information

                                                  func GetLatestCommitTime

                                                  func GetLatestCommitTime(repoPath string) (time.Time, error)

                                                    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 GetRawDiff

                                                      func GetRawDiff(repoPath, commitID string, diffType RawDiffType, writer io.Writer) error

                                                        GetRawDiff dumps diff results of repository in given commit ID to io.Writer.

                                                        func GetRawDiffForFile

                                                        func GetRawDiffForFile(repoPath, startCommit, endCommit string, diffType RawDiffType, file string, writer io.Writer) error

                                                          GetRawDiffForFile dumps diff results of file in given commit ID to io.Writer.

                                                          func GetRepoRawDiffForFile

                                                          func GetRepoRawDiffForFile(repo *Repository, startCommit, endCommit string, diffType RawDiffType, file string, writer io.Writer) error

                                                            GetRepoRawDiffForFile dumps diff results of file in given commit ID to io.Writer according given repository

                                                            func Init

                                                            func Init(ctx context.Context) error

                                                              Init initializes git module

                                                              func InitRepository

                                                              func InitRepository(repoPath string, bare bool) error

                                                                InitRepository initializes a new Git repository.

                                                                func IsBranchExist

                                                                func IsBranchExist(repoPath, name string) bool

                                                                  IsBranchExist returns true if given branch exists in the repository.

                                                                  func IsErrBadLink(err error) bool

                                                                    IsErrBadLink if some error is ErrBadLink

                                                                    func IsErrBranchNotExist

                                                                    func IsErrBranchNotExist(err error) bool

                                                                      IsErrBranchNotExist checks if an error is a ErrBranchNotExist.

                                                                      func IsErrExecTimeout

                                                                      func IsErrExecTimeout(err error) bool

                                                                        IsErrExecTimeout if some error is ErrExecTimeout

                                                                        func IsErrNotExist

                                                                        func IsErrNotExist(err error) bool

                                                                          IsErrNotExist if some error is ErrNotExist

                                                                          func IsErrPushOutOfDate

                                                                          func IsErrPushOutOfDate(err error) bool

                                                                            IsErrPushOutOfDate checks if an error is a ErrPushOutOfDate.

                                                                            func IsErrPushRejected

                                                                            func IsErrPushRejected(err error) bool

                                                                              IsErrPushRejected checks if an error is a ErrPushRejected.

                                                                              func IsErrUnsupportedVersion

                                                                              func IsErrUnsupportedVersion(err error) bool

                                                                                IsErrUnsupportedVersion if some error is ErrUnsupportedVersion

                                                                                func IsReferenceExist

                                                                                func IsReferenceExist(repoPath, name string) bool

                                                                                  IsReferenceExist returns true if given reference exists in the repository.

                                                                                  func IsRepoURLAccessible

                                                                                  func IsRepoURLAccessible(url string) bool

                                                                                    IsRepoURLAccessible checks if given repository URL is accessible.

                                                                                    func IsTagExist

                                                                                    func IsTagExist(repoPath, name string) bool

                                                                                      IsTagExist returns true if given tag exists in the repository.

                                                                                      func IsValidHookName

                                                                                      func IsValidHookName(name string) bool

                                                                                        IsValidHookName returns true if given name is a valid Git hook.

                                                                                        func LoadGitVersion

                                                                                        func LoadGitVersion() error

                                                                                          LoadGitVersion returns current Git version from shell.

                                                                                          func LocalVersion

                                                                                          func LocalVersion() (*version.Version, error)

                                                                                            LocalVersion returns current Git version from shell.

                                                                                            func MoveFile

                                                                                            func MoveFile(repoPath, oldTreeName, newTreeName string) error

                                                                                              MoveFile moves a file to another file or directory.

                                                                                              func ParseBool

                                                                                              func ParseBool(value string) (result bool, valid bool)

                                                                                                ParseBool returns the boolean value represented by the string as per git's git_config_bool true will be returned for the result if the string is empty, but valid will be false. "true", "yes", "on" are all true, true "false", "no", "off" are all false, true 0 is false, true Any other integer is true, true Anything else will return false, false

                                                                                                func ParseDiffHunkString

                                                                                                func ParseDiffHunkString(diffhunk string) (leftLine, leftHunk, rightLine, righHunk int)

                                                                                                  ParseDiffHunkString parse the diffhunk content and return

                                                                                                  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

                                                                                                      func RefEndName(refStr string) string

                                                                                                        RefEndName return the end name of a ref name

                                                                                                        func RefURL

                                                                                                        func RefURL(repoURL, ref string) string

                                                                                                          RefURL returns the absolute URL for a ref in a repository

                                                                                                          func ResetHEAD

                                                                                                          func ResetHEAD(repoPath string, hard bool, revision string) error

                                                                                                            ResetHEAD resets HEAD to given revision or head of branch.

                                                                                                            func SetExecutablePath

                                                                                                            func SetExecutablePath(path string) error

                                                                                                              SetExecutablePath changes the path of git executable and checks the file permission and version.

                                                                                                              func SetUpdateHook

                                                                                                              func SetUpdateHook(repoPath, content string) (err error)

                                                                                                                SetUpdateHook writes given content to update hook of the repository.

                                                                                                                func SplitRefName

                                                                                                                func SplitRefName(refStr string) (string, string)

                                                                                                                  SplitRefName splits a full refname to reftype and simple refname

                                                                                                                  Types

                                                                                                                  type ArchiveType

                                                                                                                  type ArchiveType int

                                                                                                                    ArchiveType archive types

                                                                                                                    const (
                                                                                                                    	// ZIP zip archive type
                                                                                                                    	ZIP ArchiveType = iota + 1
                                                                                                                    	// TARGZ tar gz archive type
                                                                                                                    	TARGZ
                                                                                                                    )

                                                                                                                    func (ArchiveType) String

                                                                                                                    func (a ArchiveType) String() string

                                                                                                                      String converts an ArchiveType to string

                                                                                                                      type BlamePart

                                                                                                                      type BlamePart struct {
                                                                                                                      	Sha   string
                                                                                                                      	Lines []string
                                                                                                                      }

                                                                                                                        BlamePart represents block of blame - continuous lines with one sha

                                                                                                                        type BlameReader

                                                                                                                        type BlameReader struct {
                                                                                                                        	// contains filtered or unexported fields
                                                                                                                        }

                                                                                                                          BlameReader returns part of file blame one by one

                                                                                                                          func CreateBlameReader

                                                                                                                          func CreateBlameReader(ctx context.Context, 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

                                                                                                                                    func (b *Blob) GetBlobContent() (string, error)

                                                                                                                                      GetBlobContent Gets the content of the blob as raw text

                                                                                                                                      func (*Blob) GetBlobContentBase64

                                                                                                                                      func (b *Blob) GetBlobContentBase64() (string, error)

                                                                                                                                        GetBlobContentBase64 Reads the content of the blob with a base64 encode and returns the encoded string

                                                                                                                                        func (*Blob) GetBlobLineCount

                                                                                                                                        func (b *Blob) GetBlobLineCount() (int, error)

                                                                                                                                          GetBlobLineCount gets line count of lob as raw text

                                                                                                                                          func (*Blob) Name

                                                                                                                                          func (b *Blob) Name() string

                                                                                                                                            Name returns name of the tree entry this blob object was created from (or empty string)

                                                                                                                                            func (*Blob) Size

                                                                                                                                            func (b *Blob) Size() int64

                                                                                                                                              Size returns the uncompressed size of the blob

                                                                                                                                              type Branch

                                                                                                                                              type Branch struct {
                                                                                                                                              	Name string
                                                                                                                                              	Path string
                                                                                                                                              	// contains filtered or unexported fields
                                                                                                                                              }

                                                                                                                                                Branch represents a Git branch.

                                                                                                                                                func GetBranchesByPath

                                                                                                                                                func GetBranchesByPath(path string) ([]*Branch, error)

                                                                                                                                                  GetBranchesByPath returns a branch by it's path

                                                                                                                                                  func (*Branch) GetCommit

                                                                                                                                                  func (branch *Branch) GetCommit() (*Commit, error)

                                                                                                                                                    GetCommit returns the head commit of a branch

                                                                                                                                                    type CheckAttributeOpts

                                                                                                                                                    type CheckAttributeOpts struct {
                                                                                                                                                    	CachedOnly    bool
                                                                                                                                                    	AllAttributes bool
                                                                                                                                                    	Attributes    []string
                                                                                                                                                    	Filenames     []string
                                                                                                                                                    }

                                                                                                                                                      CheckAttributeOpts represents the possible options to CheckAttribute

                                                                                                                                                      type CheckoutOptions

                                                                                                                                                      type CheckoutOptions struct {
                                                                                                                                                      	Timeout   time.Duration
                                                                                                                                                      	Branch    string
                                                                                                                                                      	OldBranch string
                                                                                                                                                      }

                                                                                                                                                        CheckoutOptions options when heck out some branch

                                                                                                                                                        type CloneRepoOptions

                                                                                                                                                        type CloneRepoOptions struct {
                                                                                                                                                        	Timeout    time.Duration
                                                                                                                                                        	Mirror     bool
                                                                                                                                                        	Bare       bool
                                                                                                                                                        	Quiet      bool
                                                                                                                                                        	Branch     string
                                                                                                                                                        	Shared     bool
                                                                                                                                                        	NoCheckout bool
                                                                                                                                                        	Depth      int
                                                                                                                                                        }

                                                                                                                                                          CloneRepoOptions options when clone a repository

                                                                                                                                                          type CodeActivityAuthor

                                                                                                                                                          type CodeActivityAuthor struct {
                                                                                                                                                          	Name    string
                                                                                                                                                          	Email   string
                                                                                                                                                          	Commits int64
                                                                                                                                                          }

                                                                                                                                                            CodeActivityAuthor represents git statistics data for commit authors

                                                                                                                                                            type CodeActivityStats

                                                                                                                                                            type CodeActivityStats struct {
                                                                                                                                                            	AuthorCount              int64
                                                                                                                                                            	CommitCount              int64
                                                                                                                                                            	ChangedFiles             int64
                                                                                                                                                            	Additions                int64
                                                                                                                                                            	Deletions                int64
                                                                                                                                                            	CommitCountInAllBranches int64
                                                                                                                                                            	Authors                  []*CodeActivityAuthor
                                                                                                                                                            }

                                                                                                                                                              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

                                                                                                                                                                func NewCommand(args ...string) *Command

                                                                                                                                                                  NewCommand creates and returns a new Git Command based on given command and arguments.

                                                                                                                                                                  func NewCommandContext

                                                                                                                                                                  func NewCommandContext(ctx context.Context, args ...string) *Command

                                                                                                                                                                    NewCommandContext creates and returns a new Git Command based on given command and arguments.

                                                                                                                                                                    func NewCommandContextNoGlobals

                                                                                                                                                                    func NewCommandContextNoGlobals(ctx context.Context, args ...string) *Command

                                                                                                                                                                      NewCommandContextNoGlobals creates and returns a new Git Command based on given command and arguments only with the specify args and don't care global command args

                                                                                                                                                                      func NewCommandNoGlobals

                                                                                                                                                                      func NewCommandNoGlobals(args ...string) *Command

                                                                                                                                                                        NewCommandNoGlobals creates and returns a new Git Command based on given command and arguments only with the specify args and don't care global command args

                                                                                                                                                                        func (*Command) AddArguments

                                                                                                                                                                        func (c *Command) AddArguments(args ...string) *Command

                                                                                                                                                                          AddArguments adds new argument(s) to the command.

                                                                                                                                                                          func (*Command) Run

                                                                                                                                                                          func (c *Command) Run() (string, error)

                                                                                                                                                                            Run executes the command in default working directory and returns stdout in string and error (combined with stderr).

                                                                                                                                                                            func (*Command) RunInDir

                                                                                                                                                                            func (c *Command) RunInDir(dir string) (string, error)

                                                                                                                                                                              RunInDir executes the command in given directory and returns stdout in string and error (combined with stderr).

                                                                                                                                                                              func (*Command) RunInDirBytes

                                                                                                                                                                              func (c *Command) RunInDirBytes(dir string) ([]byte, error)

                                                                                                                                                                                RunInDirBytes executes the command in given directory and returns stdout in []byte and error (combined with stderr).

                                                                                                                                                                                func (*Command) RunInDirFullPipeline

                                                                                                                                                                                func (c *Command) RunInDirFullPipeline(dir string, stdout, stderr io.Writer, stdin io.Reader) error

                                                                                                                                                                                  RunInDirFullPipeline executes the command in given directory, it pipes stdout and stderr to given io.Writer.

                                                                                                                                                                                  func (*Command) RunInDirPipeline

                                                                                                                                                                                  func (c *Command) RunInDirPipeline(dir string, stdout, stderr io.Writer) error

                                                                                                                                                                                    RunInDirPipeline executes the command in given directory, it pipes stdout and stderr to given io.Writer.

                                                                                                                                                                                    func (*Command) RunInDirTimeout

                                                                                                                                                                                    func (c *Command) RunInDirTimeout(timeout time.Duration, dir string) ([]byte, error)

                                                                                                                                                                                      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) RunInDirTimeoutEnvFullPipelineFunc

                                                                                                                                                                                          func (c *Command) RunInDirTimeoutEnvFullPipelineFunc(env []string, timeout time.Duration, dir string, stdout, stderr io.Writer, stdin io.Reader, fn func(context.Context, context.CancelFunc) error) error

                                                                                                                                                                                            RunInDirTimeoutEnvFullPipelineFunc 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. Between cmd.Start and cmd.Wait the passed in function is run.

                                                                                                                                                                                            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

                                                                                                                                                                                                  func (c *Command) RunInDirWithEnv(dir string, env []string) (string, error)

                                                                                                                                                                                                    RunInDirWithEnv executes the command in given directory and returns stdout in string and error (combined with stderr).

                                                                                                                                                                                                    func (*Command) RunTimeout

                                                                                                                                                                                                    func (c *Command) RunTimeout(timeout time.Duration) (string, error)

                                                                                                                                                                                                      RunTimeout executes the command in default working directory with given timeout, and returns stdout in string and error (combined with stderr).

                                                                                                                                                                                                      func (*Command) SetDescription

                                                                                                                                                                                                      func (c *Command) SetDescription(desc string) *Command

                                                                                                                                                                                                        SetDescription sets the description for this command which be returned on c.String()

                                                                                                                                                                                                        func (*Command) SetParentContext

                                                                                                                                                                                                        func (c *Command) SetParentContext(ctx context.Context) *Command

                                                                                                                                                                                                          SetParentContext sets the parent context for this command

                                                                                                                                                                                                          func (*Command) String

                                                                                                                                                                                                          func (c *Command) String() string

                                                                                                                                                                                                          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
                                                                                                                                                                                                          
                                                                                                                                                                                                          	Parents []SHA1 // SHA1 strings
                                                                                                                                                                                                          	// contains filtered or unexported fields
                                                                                                                                                                                                          }

                                                                                                                                                                                                            Commit represents a git commit.

                                                                                                                                                                                                            func CommitFromReader

                                                                                                                                                                                                            func CommitFromReader(gitRepo *Repository, sha plumbing.Hash, reader io.Reader) (*Commit, error)

                                                                                                                                                                                                              CommitFromReader will generate a Commit from a provided reader We will need this to interpret commits from cat-file

                                                                                                                                                                                                              func (*Commit) CommitsBefore

                                                                                                                                                                                                              func (c *Commit) CommitsBefore() (*list.List, error)

                                                                                                                                                                                                                CommitsBefore returns all the commits before current revision

                                                                                                                                                                                                                func (*Commit) CommitsBeforeLimit

                                                                                                                                                                                                                func (c *Commit) CommitsBeforeLimit(num int) (*list.List, error)

                                                                                                                                                                                                                  CommitsBeforeLimit returns num commits before current revision

                                                                                                                                                                                                                  func (*Commit) CommitsBeforeUntil

                                                                                                                                                                                                                  func (c *Commit) CommitsBeforeUntil(commitID string) (*list.List, error)

                                                                                                                                                                                                                    CommitsBeforeUntil returns the commits between commitID to current revision

                                                                                                                                                                                                                    func (*Commit) CommitsByRange

                                                                                                                                                                                                                    func (c *Commit) CommitsByRange(page, pageSize int) (*list.List, error)

                                                                                                                                                                                                                      CommitsByRange returns the specific page commits before current revision, every page's number default by CommitsRangeSize

                                                                                                                                                                                                                      func (*Commit) CommitsCount

                                                                                                                                                                                                                      func (c *Commit) CommitsCount() (int64, error)

                                                                                                                                                                                                                        CommitsCount returns number of total commits of until current revision.

                                                                                                                                                                                                                        func (*Commit) CreateArchive

                                                                                                                                                                                                                        func (c *Commit) CreateArchive(ctx context.Context, target string, opts CreateArchiveOpts) error

                                                                                                                                                                                                                          CreateArchive create archive content to the target path

                                                                                                                                                                                                                          func (*Commit) FileChangedSinceCommit

                                                                                                                                                                                                                          func (c *Commit) FileChangedSinceCommit(filename, pastCommit string) (bool, error)

                                                                                                                                                                                                                            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

                                                                                                                                                                                                                            func (c *Commit) GetBranchName() (string, error)

                                                                                                                                                                                                                              GetBranchName gets the closest branch name (as returned by 'git name-rev --name-only')

                                                                                                                                                                                                                              func (*Commit) GetCommitByPath

                                                                                                                                                                                                                              func (c *Commit) GetCommitByPath(relpath string) (*Commit, error)

                                                                                                                                                                                                                                GetCommitByPath return the commit of relative path object.

                                                                                                                                                                                                                                func (*Commit) GetFilesChangedSinceCommit

                                                                                                                                                                                                                                func (c *Commit) GetFilesChangedSinceCommit(pastCommit string) ([]string, error)

                                                                                                                                                                                                                                  GetFilesChangedSinceCommit get all changed file names between pastCommit to current revision

                                                                                                                                                                                                                                  func (*Commit) GetRepositoryDefaultPublicGPGKey

                                                                                                                                                                                                                                  func (c *Commit) GetRepositoryDefaultPublicGPGKey(forceUpdate bool) (*GPGSettings, error)

                                                                                                                                                                                                                                    GetRepositoryDefaultPublicGPGKey returns the default public key for this commit

                                                                                                                                                                                                                                    func (*Commit) GetSubModule

                                                                                                                                                                                                                                    func (c *Commit) GetSubModule(entryname string) (*SubModule, error)

                                                                                                                                                                                                                                      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) GetTagName

                                                                                                                                                                                                                                        func (c *Commit) GetTagName() (string, error)

                                                                                                                                                                                                                                          GetTagName gets the current tag name for given commit

                                                                                                                                                                                                                                          func (*Commit) HasFile

                                                                                                                                                                                                                                          func (c *Commit) HasFile(filename string) (bool, error)

                                                                                                                                                                                                                                            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) HasPreviousCommit

                                                                                                                                                                                                                                            func (c *Commit) HasPreviousCommit(commitHash SHA1) (bool, error)

                                                                                                                                                                                                                                              HasPreviousCommit returns true if a given commitHash is contained in commit's parents

                                                                                                                                                                                                                                              func (*Commit) ImageInfo

                                                                                                                                                                                                                                              func (c *Commit) ImageInfo(name string) (*ImageMetaData, error)

                                                                                                                                                                                                                                                ImageInfo returns information about the dimensions of an image

                                                                                                                                                                                                                                                func (*Commit) IsImageFile

                                                                                                                                                                                                                                                func (c *Commit) IsImageFile(name string) bool

                                                                                                                                                                                                                                                  IsImageFile is a file image type

                                                                                                                                                                                                                                                  func (*Commit) LoadBranchName

                                                                                                                                                                                                                                                  func (c *Commit) LoadBranchName() (err error)

                                                                                                                                                                                                                                                    LoadBranchName load branch name for commit

                                                                                                                                                                                                                                                    func (*Commit) Message

                                                                                                                                                                                                                                                    func (c *Commit) Message() string

                                                                                                                                                                                                                                                      Message returns the commit message. Same as retrieving CommitMessage directly.

                                                                                                                                                                                                                                                      func (*Commit) Parent

                                                                                                                                                                                                                                                      func (c *Commit) Parent(n int) (*Commit, error)

                                                                                                                                                                                                                                                        Parent returns n-th parent (0-based index) of the commit.

                                                                                                                                                                                                                                                        func (*Commit) ParentCount

                                                                                                                                                                                                                                                        func (c *Commit) ParentCount() int

                                                                                                                                                                                                                                                          ParentCount returns number of parents of the commit. 0 if this is the root commit, otherwise 1,2, etc.

                                                                                                                                                                                                                                                          func (*Commit) ParentID

                                                                                                                                                                                                                                                          func (c *Commit) ParentID(n int) (SHA1, error)

                                                                                                                                                                                                                                                            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

                                                                                                                                                                                                                                                              func (*Commit) Summary

                                                                                                                                                                                                                                                              func (c *Commit) Summary() string

                                                                                                                                                                                                                                                                Summary returns first line of commit message.

                                                                                                                                                                                                                                                                type CommitChangesOptions

                                                                                                                                                                                                                                                                type CommitChangesOptions struct {
                                                                                                                                                                                                                                                                	Committer *Signature
                                                                                                                                                                                                                                                                	Author    *Signature
                                                                                                                                                                                                                                                                	Message   string
                                                                                                                                                                                                                                                                }

                                                                                                                                                                                                                                                                  CommitChangesOptions the options when a commit created

                                                                                                                                                                                                                                                                  type CommitFileStatus

                                                                                                                                                                                                                                                                  type CommitFileStatus struct {
                                                                                                                                                                                                                                                                  	Added    []string
                                                                                                                                                                                                                                                                  	Removed  []string
                                                                                                                                                                                                                                                                  	Modified []string
                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                    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

                                                                                                                                                                                                                                                                          type CommitTreeOpts struct {
                                                                                                                                                                                                                                                                          	Parents    []string
                                                                                                                                                                                                                                                                          	Message    string
                                                                                                                                                                                                                                                                          	KeyID      string
                                                                                                                                                                                                                                                                          	NoGPGSign  bool
                                                                                                                                                                                                                                                                          	AlwaysSign bool
                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                            CommitTreeOpts represents the possible options to CommitTree

                                                                                                                                                                                                                                                                            type CompareInfo

                                                                                                                                                                                                                                                                            type CompareInfo struct {
                                                                                                                                                                                                                                                                            	MergeBase string
                                                                                                                                                                                                                                                                            	Commits   *list.List
                                                                                                                                                                                                                                                                            	NumFiles  int
                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                              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 CountObjects

                                                                                                                                                                                                                                                                                func CountObjects(repoPath string) (*CountObject, error)

                                                                                                                                                                                                                                                                                  CountObjects returns the results of git count-objects on the repoPath

                                                                                                                                                                                                                                                                                  type CreateArchiveOpts

                                                                                                                                                                                                                                                                                  type CreateArchiveOpts struct {
                                                                                                                                                                                                                                                                                  	Format ArchiveType
                                                                                                                                                                                                                                                                                  	Prefix bool
                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                    CreateArchiveOpts represents options for creating an archive

                                                                                                                                                                                                                                                                                    type DeleteBranchOptions

                                                                                                                                                                                                                                                                                    type DeleteBranchOptions struct {
                                                                                                                                                                                                                                                                                    	Force bool
                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                      DeleteBranchOptions Option(s) for delete branch

                                                                                                                                                                                                                                                                                      type DivergeObject

                                                                                                                                                                                                                                                                                      type DivergeObject struct {
                                                                                                                                                                                                                                                                                      	Ahead  int
                                                                                                                                                                                                                                                                                      	Behind int
                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                        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

                                                                                                                                                                                                                                                                                            func (tes Entries) CustomSort(cmp func(s1, s2 string) bool)

                                                                                                                                                                                                                                                                                              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

                                                                                                                                                                                                                                                                                                func (Entries) Sort

                                                                                                                                                                                                                                                                                                func (tes Entries) Sort()

                                                                                                                                                                                                                                                                                                  Sort sort the list of entry

                                                                                                                                                                                                                                                                                                  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 struct {
                                                                                                                                                                                                                                                                                                      	Name    string
                                                                                                                                                                                                                                                                                                      	Message string
                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                        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

                                                                                                                                                                                                                                                                                                          type ErrExecTimeout struct {
                                                                                                                                                                                                                                                                                                          	Duration time.Duration
                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                            ErrExecTimeout error when exec timed out

                                                                                                                                                                                                                                                                                                            func (ErrExecTimeout) Error

                                                                                                                                                                                                                                                                                                            func (err ErrExecTimeout) Error() string

                                                                                                                                                                                                                                                                                                            type ErrNotExist

                                                                                                                                                                                                                                                                                                            type ErrNotExist struct {
                                                                                                                                                                                                                                                                                                            	ID      string
                                                                                                                                                                                                                                                                                                            	RelPath string
                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                              ErrNotExist commit not exist error

                                                                                                                                                                                                                                                                                                              func (ErrNotExist) Error

                                                                                                                                                                                                                                                                                                              func (err ErrNotExist) Error() string

                                                                                                                                                                                                                                                                                                              type ErrPushOutOfDate

                                                                                                                                                                                                                                                                                                              type ErrPushOutOfDate struct {
                                                                                                                                                                                                                                                                                                              	StdOut string
                                                                                                                                                                                                                                                                                                              	StdErr string
                                                                                                                                                                                                                                                                                                              	Err    error
                                                                                                                                                                                                                                                                                                              }

                                                                                                                                                                                                                                                                                                                ErrPushOutOfDate represents an error if merging fails due to unrelated histories

                                                                                                                                                                                                                                                                                                                func (*ErrPushOutOfDate) Error

                                                                                                                                                                                                                                                                                                                func (err *ErrPushOutOfDate) Error() string

                                                                                                                                                                                                                                                                                                                func (*ErrPushOutOfDate) Unwrap

                                                                                                                                                                                                                                                                                                                func (err *ErrPushOutOfDate) Unwrap() error

                                                                                                                                                                                                                                                                                                                  Unwrap unwraps the underlying error

                                                                                                                                                                                                                                                                                                                  type ErrPushRejected

                                                                                                                                                                                                                                                                                                                  type ErrPushRejected struct {
                                                                                                                                                                                                                                                                                                                  	Message string
                                                                                                                                                                                                                                                                                                                  	StdOut  string
                                                                                                                                                                                                                                                                                                                  	StdErr  string
                                                                                                                                                                                                                                                                                                                  	Err     error
                                                                                                                                                                                                                                                                                                                  }

                                                                                                                                                                                                                                                                                                                    ErrPushRejected represents an error if merging fails due to rejection from a hook

                                                                                                                                                                                                                                                                                                                    func (*ErrPushRejected) Error

                                                                                                                                                                                                                                                                                                                    func (err *ErrPushRejected) Error() string

                                                                                                                                                                                                                                                                                                                    func (*ErrPushRejected) GenerateMessage

                                                                                                                                                                                                                                                                                                                    func (err *ErrPushRejected) GenerateMessage()

                                                                                                                                                                                                                                                                                                                      GenerateMessage generates the remote message from the stderr

                                                                                                                                                                                                                                                                                                                      func (*ErrPushRejected) Unwrap

                                                                                                                                                                                                                                                                                                                      func (err *ErrPushRejected) Unwrap() error

                                                                                                                                                                                                                                                                                                                        Unwrap unwraps the underlying error

                                                                                                                                                                                                                                                                                                                        type ErrUnsupportedVersion

                                                                                                                                                                                                                                                                                                                        type ErrUnsupportedVersion struct {
                                                                                                                                                                                                                                                                                                                        	Required string
                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                          ErrUnsupportedVersion error when required git version not matched

                                                                                                                                                                                                                                                                                                                          func (ErrUnsupportedVersion) Error

                                                                                                                                                                                                                                                                                                                          func (err ErrUnsupportedVersion) Error() string

                                                                                                                                                                                                                                                                                                                          type GPGSettings

                                                                                                                                                                                                                                                                                                                          type GPGSettings struct {
                                                                                                                                                                                                                                                                                                                          	Sign             bool
                                                                                                                                                                                                                                                                                                                          	KeyID            string
                                                                                                                                                                                                                                                                                                                          	Email            string
                                                                                                                                                                                                                                                                                                                          	Name             string
                                                                                                                                                                                                                                                                                                                          	PublicKeyContent string
                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                            GPGSettings represents the default GPG settings for this repository

                                                                                                                                                                                                                                                                                                                            func (*GPGSettings) LoadPublicKeyContent

                                                                                                                                                                                                                                                                                                                            func (gpgSettings *GPGSettings) LoadPublicKeyContent() error

                                                                                                                                                                                                                                                                                                                              LoadPublicKeyContent will load the key from gpg

                                                                                                                                                                                                                                                                                                                              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.

                                                                                                                                                                                                                                                                                                                                func GetHook

                                                                                                                                                                                                                                                                                                                                func GetHook(repoPath, name string) (*Hook, error)

                                                                                                                                                                                                                                                                                                                                  GetHook returns a Git hook by given name and repository.

                                                                                                                                                                                                                                                                                                                                  func ListHooks

                                                                                                                                                                                                                                                                                                                                  func ListHooks(repoPath string) (_ []*Hook, err error)

                                                                                                                                                                                                                                                                                                                                    ListHooks returns a list of Git hooks of given repository.

                                                                                                                                                                                                                                                                                                                                    func (*Hook) Name

                                                                                                                                                                                                                                                                                                                                    func (h *Hook) Name() string

                                                                                                                                                                                                                                                                                                                                      Name return the name of the hook

                                                                                                                                                                                                                                                                                                                                      func (*Hook) Update

                                                                                                                                                                                                                                                                                                                                      func (h *Hook) Update() error

                                                                                                                                                                                                                                                                                                                                        Update updates hook settings.

                                                                                                                                                                                                                                                                                                                                        type ImageMetaData

                                                                                                                                                                                                                                                                                                                                        type ImageMetaData struct {
                                                                                                                                                                                                                                                                                                                                        	ColorModel color.Model
                                                                                                                                                                                                                                                                                                                                        	Width      int
                                                                                                                                                                                                                                                                                                                                        	Height     int
                                                                                                                                                                                                                                                                                                                                        	ByteSize   int64
                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                          ImageMetaData represents metadata of an image file

                                                                                                                                                                                                                                                                                                                                          type LastCommitCache

                                                                                                                                                                                                                                                                                                                                          type LastCommitCache interface {
                                                                                                                                                                                                                                                                                                                                          	Get(ref, entryPath string) (*object.Commit, error)
                                                                                                                                                                                                                                                                                                                                          	Put(ref, entryPath, commitID string) error
                                                                                                                                                                                                                                                                                                                                          }

                                                                                                                                                                                                                                                                                                                                            LastCommitCache cache

                                                                                                                                                                                                                                                                                                                                            type Note

                                                                                                                                                                                                                                                                                                                                            type Note struct {
                                                                                                                                                                                                                                                                                                                                            	Message []byte
                                                                                                                                                                                                                                                                                                                                            	Commit  *Commit
                                                                                                                                                                                                                                                                                                                                            }

                                                                                                                                                                                                                                                                                                                                              Note stores information about a note created using git-notes.

                                                                                                                                                                                                                                                                                                                                              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

                                                                                                                                                                                                                                                                                                                                                        type PushOptions struct {
                                                                                                                                                                                                                                                                                                                                                        	Remote string
                                                                                                                                                                                                                                                                                                                                                        	Branch string
                                                                                                                                                                                                                                                                                                                                                        	Force  bool
                                                                                                                                                                                                                                                                                                                                                        	Env    []string
                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                          PushOptions options when push to remote

                                                                                                                                                                                                                                                                                                                                                          type RawDiffType

                                                                                                                                                                                                                                                                                                                                                          type RawDiffType string

                                                                                                                                                                                                                                                                                                                                                            RawDiffType type of a raw diff.

                                                                                                                                                                                                                                                                                                                                                            const (
                                                                                                                                                                                                                                                                                                                                                            	RawDiffNormal RawDiffType = "diff"
                                                                                                                                                                                                                                                                                                                                                            	RawDiffPatch  RawDiffType = "patch"
                                                                                                                                                                                                                                                                                                                                                            )

                                                                                                                                                                                                                                                                                                                                                              RawDiffType possible values.

                                                                                                                                                                                                                                                                                                                                                              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.

                                                                                                                                                                                                                                                                                                                                                                func (*Reference) Commit

                                                                                                                                                                                                                                                                                                                                                                func (ref *Reference) Commit() (*Commit, error)

                                                                                                                                                                                                                                                                                                                                                                  Commit return the commit of the reference

                                                                                                                                                                                                                                                                                                                                                                  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) CheckAttribute

                                                                                                                                                                                                                                                                                                                                                                          func (repo *Repository) CheckAttribute(opts CheckAttributeOpts) (map[string]map[string]string, error)

                                                                                                                                                                                                                                                                                                                                                                            CheckAttribute return the Blame object of file

                                                                                                                                                                                                                                                                                                                                                                            func (*Repository) Close

                                                                                                                                                                                                                                                                                                                                                                            func (repo *Repository) Close()

                                                                                                                                                                                                                                                                                                                                                                              Close this repository, in particular close the underlying gogitStorage if this is not nil

                                                                                                                                                                                                                                                                                                                                                                              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(author *Signature, committer *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

                                                                                                                                                                                                                                                                                                                                                                                  func (repo *Repository) CommitsBetween(last *Commit, before *Commit) (*list.List, error)

                                                                                                                                                                                                                                                                                                                                                                                    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) CommitsBetweenLimit

                                                                                                                                                                                                                                                                                                                                                                                      func (repo *Repository) CommitsBetweenLimit(last *Commit, before *Commit, limit, skip int) (*list.List, error)

                                                                                                                                                                                                                                                                                                                                                                                        CommitsBetweenLimit returns a list that contains at most limit commits skipping the first skip commits between [last, before)

                                                                                                                                                                                                                                                                                                                                                                                        func (*Repository) CommitsByFileAndRange

                                                                                                                                                                                                                                                                                                                                                                                        func (repo *Repository) CommitsByFileAndRange(revision, file string, page int) (*list.List, error)

                                                                                                                                                                                                                                                                                                                                                                                          CommitsByFileAndRange return the commits according revison file and the page

                                                                                                                                                                                                                                                                                                                                                                                          func (*Repository) CommitsByFileAndRangeNoFollow

                                                                                                                                                                                                                                                                                                                                                                                          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

                                                                                                                                                                                                                                                                                                                                                                                              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) GetAllCommitsCount

                                                                                                                                                                                                                                                                                                                                                                                                                  func (repo *Repository) GetAllCommitsCount() (int64, error)

                                                                                                                                                                                                                                                                                                                                                                                                                    GetAllCommitsCount returns count of all commits in repository

                                                                                                                                                                                                                                                                                                                                                                                                                    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) GetCommitsFromIDs

                                                                                                                                                                                                                                                                                                                                                                                                                                      func (repo *Repository) GetCommitsFromIDs(commitIDs []string) (commits *list.List)

                                                                                                                                                                                                                                                                                                                                                                                                                                        GetCommitsFromIDs get commits from commit IDs

                                                                                                                                                                                                                                                                                                                                                                                                                                        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) GetDefaultBranch

                                                                                                                                                                                                                                                                                                                                                                                                                                          func (repo *Repository) GetDefaultBranch() (string, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                            GetDefaultBranch gets default branch of repository.

                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*Repository) GetDefaultPublicGPGKey

                                                                                                                                                                                                                                                                                                                                                                                                                                            func (repo *Repository) GetDefaultPublicGPGKey(forceUpdate bool) (*GPGSettings, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                              GetDefaultPublicGPGKey will return and cache the default public GPG settings for this repository

                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*Repository) GetDiff

                                                                                                                                                                                                                                                                                                                                                                                                                                              func (repo *Repository) GetDiff(base, head string, w io.Writer) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                GetDiff generates and returns patch data between given revisions.

                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*Repository) GetDiffFromMergeBase

                                                                                                                                                                                                                                                                                                                                                                                                                                                func (repo *Repository) GetDiffFromMergeBase(base, head string, w io.Writer) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                  GetDiffFromMergeBase generates and return patch data from merge base to head

                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*Repository) GetDiffNumChangedFiles

                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (repo *Repository) GetDiffNumChangedFiles(base, head string) (int, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                    GetDiffNumChangedFiles counts the number of changed files This is substantially quicker than shortstat but...

                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*Repository) GetDiffOrPatch

                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (repo *Repository) GetDiffOrPatch(base, head string, w io.Writer, formatted bool) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                      GetDiffOrPatch generates either diff or formatted patch data between given revisions

                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*Repository) GetDiffShortStat

                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (repo *Repository) GetDiffShortStat(base, head string) (numFiles, totalAdditions, totalDeletions int, err error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                        GetDiffShortStat counts number of changed files, number of additions and deletions

                                                                                                                                                                                                                                                                                                                                                                                                                                                        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) GetLanguageStats

                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (repo *Repository) GetLanguageStats(commitID string) (map[string]int64, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                              GetLanguageStats calculates language stats for git repository at specified commit

                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*Repository) GetMergeBase

                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (repo *Repository) GetMergeBase(tmpRemote string, base, head string) (string, string, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                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, w io.Writer) error

                                                                                                                                                                                                                                                                                                                                                                                                                                                                  GetPatch generates and returns format-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(page, pageSize int) ([]*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) GoGitRepo

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (repo *Repository) GoGitRepo() *gogit.Repository

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              GoGitRepo gets the go-git repo representation

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SHA1 = plumbing.Hash

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          SHA1 a git commit name

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func MustID

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func MustID(b []byte) SHA1

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            MustID always creates a new SHA1 from a [20]byte array with no validation of input.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func MustIDFromString

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func MustIDFromString(s string) SHA1

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              MustIDFromString always creates a new sha from a ID with no validation of input.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func NewID

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func NewID(b []byte) (SHA1, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                NewID creates a new SHA1 from a [20]byte array.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func NewIDFromString

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func NewIDFromString(s string) (SHA1, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  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 Signature

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type Signature = object.Signature

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        Signature represents the Author or Committer information.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SubModule

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        type SubModule struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	Name string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        	URL  string
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          SubModule submodule is a reference on git repository

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*SubModuleFile) RefID

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (sf *SubModuleFile) RefID() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                RefID returns reference ID.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*SubModuleFile) RefURL

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (sf *SubModuleFile) RefURL(urlPrefix, repoFullName, sshDomain string) string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  RefURL guesses and returns reference URL.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  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.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (*Tag) Commit

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (tag *Tag) Commit() (*Commit, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      Commit return the commit of the tag reference

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type Tree

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      type Tree struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	ID         SHA1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	ResolvedID SHA1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      	// contains filtered or unexported fields
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        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

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (t *Tree) GetBlobByPath(relpath string) (*Blob, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            GetBlobByPath get the blob object according the path

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*Tree) GetTreeEntryByPath

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (t *Tree) GetTreeEntryByPath(relpath string) (*TreeEntry, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              GetTreeEntryByPath get the tree entries according the sub dir

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*Tree) ListEntries

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (t *Tree) ListEntries() (Entries, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                ListEntries returns all entries of current tree.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*Tree) ListEntriesRecursive

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (t *Tree) ListEntriesRecursive() (Entries, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  ListEntriesRecursive returns all entries of current tree recursively including all subtrees

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*Tree) SubTree

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (t *Tree) SubTree(rpath string) (*Tree, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    SubTree get a sub tree by the sub dir path

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type TreeEntry

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    type TreeEntry struct {
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	ID SHA1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    	// contains filtered or unexported fields
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    }

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      TreeEntry the leaf in the git tree

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func ParseTreeEntries

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func ParseTreeEntries(data []byte) ([]*TreeEntry, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ParseTreeEntries parses the output of a `git ls-tree` command.

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*TreeEntry) Blob

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (te *TreeEntry) Blob() *Blob

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          Blob returns the blob object the entry

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (te *TreeEntry) FollowLink() (*TreeEntry, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            FollowLink returns the entry pointed to by a symlink

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (te *TreeEntry) FollowLinks() (*TreeEntry, error)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              FollowLinks returns the entry ultimately pointed to by a symlink

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*TreeEntry) GetSubJumpablePathName

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (te *TreeEntry) GetSubJumpablePathName() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                GetSubJumpablePathName return the full path of subdirectory jumpable ( contains only one directory )

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*TreeEntry) IsDir

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (te *TreeEntry) IsDir() bool

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  IsDir if the entry is a sub dir

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (*TreeEntry) IsExecutable

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  func (te *TreeEntry) IsExecutable() bool

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    IsExecutable if the entry is an executable file (not necessarily binary)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    func (te *TreeEntry) IsLink() bool

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      IsLink if the entry is a symlink

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (*TreeEntry) IsRegular

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      func (te *TreeEntry) IsRegular() bool

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        IsRegular if the entry is a regular file

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (*TreeEntry) IsSubModule

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        func (te *TreeEntry) IsSubModule() bool

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          IsSubModule if the entry is a sub module

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (*TreeEntry) Mode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          func (te *TreeEntry) Mode() EntryMode

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            Mode returns the mode of the entry

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (*TreeEntry) Name

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            func (te *TreeEntry) Name() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              Name returns the name of the entry

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (*TreeEntry) Size

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              func (te *TreeEntry) Size() int64

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                Size returns the size of the entry

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (*TreeEntry) Type

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                func (te *TreeEntry) Type() string

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Type returns the type of the entry (commit, tree, blob)

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Directories

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  Path Synopsis