Documentation ¶
Index ¶
- Constants
- Variables
- func AddChanges(repoPath string, all bool, files ...string) error
- func BinVersion() (string, error)
- func Clone(from, to string, opts CloneRepoOptions) (err error)
- func CommitChanges(repoPath, message string, author *Signature) error
- func CommitsCount(repoPath, revision string) (int64, error)
- func Fsck(repoPath string, timeout time.Duration, args ...string) error
- func InitRepository(repoPath string, bare bool) error
- func IsBranchExist(repoPath, name string) bool
- func IsErrExecTimeout(err error) bool
- func IsErrNotExist(err error) bool
- func IsErrUnsupportedVersion(err error) bool
- func IsReferenceExist(repoPath, name string) bool
- func IsTagExist(repoPath, name string) bool
- func IsValidHookName(name string) bool
- func MustID(b []byte) sha1
- func MustIDFromString(s string) sha1
- func NewID(b []byte) (sha1, error)
- func NewIDFromString(s string) (sha1, error)
- func Pull(repoPath string, opts PullRemoteOptions) error
- func Push(repoPath, remote, branch string) error
- func RefEndName(refStr string) string
- func ResetHEAD(repoPath string, hard bool, revision string) error
- func SetUpdateHook(repoPath, content string) error
- func UnescapeChars(in []byte) []byte
- func Version() string
- type ArchiveType
- type Blob
- type Branch
- type CloneRepoOptions
- type Command
- func (c *Command) AddArguments(args ...string) *Command
- func (c *Command) Run() (string, error)
- func (c *Command) RunInDir(dir string) (string, error)
- func (c *Command) RunInDirBytes(dir string) ([]byte, error)
- func (c *Command) RunInDirPipeline(dir string, stdout, stderr io.Writer) error
- func (c *Command) RunInDirTimeout(timeout time.Duration, dir string) ([]byte, error)
- func (c *Command) RunInDirTimeoutPipeline(timeout time.Duration, dir string, stdout, stderr io.Writer) error
- func (c *Command) RunTimeout(timeout time.Duration) (string, error)
- func (c *Command) String() string
- type Commit
- func (c *Commit) CommitsBefore() (*list.List, error)
- func (c *Commit) CommitsBeforeLimit(num int) (*list.List, error)
- func (c *Commit) CommitsBeforeUntil(commitID string) (*list.List, error)
- func (c *Commit) CommitsByRange(page int) (*list.List, error)
- func (c *Commit) CommitsCount() (int64, error)
- func (c *Commit) CreateArchive(path string, archiveType ArchiveType) error
- func (c *Commit) GetCommitByPath(relpath string) (*Commit, error)
- func (c *Commit) GetSubModule(entryname string) (*SubModule, error)
- func (c *Commit) GetSubModules() (*objectCache, error)
- func (c *Commit) IsImageFile(name string) bool
- func (c *Commit) Message() string
- func (c *Commit) Parent(n int) (*Commit, error)
- func (c *Commit) ParentCount() int
- func (c *Commit) ParentID(n int) (sha1, error)
- func (c *Commit) SearchCommits(keyword string) (*list.List, error)
- func (c *Commit) Summary() string
- type Entries
- type EntryMode
- type ErrExecTimeout
- type ErrNotExist
- type ErrUnsupportedVersion
- type Hook
- type ObjectType
- type PullRemoteOptions
- type PullRequestInfo
- type Repository
- func (repo *Repository) AddRemote(name, url string, fetch bool) error
- func (repo *Repository) CommitsBetween(last *Commit, before *Commit) (*list.List, error)
- func (repo *Repository) CommitsBetweenIDs(last, before string) (*list.List, error)
- func (repo *Repository) CommitsByFileAndRange(revision, file string, page int) (*list.List, error)
- func (repo *Repository) CommitsCountBetween(start, end string) (int64, error)
- func (repo *Repository) CreateTag(name, revision string) error
- func (repo *Repository) FileCommitsCount(revision, file string) (int64, error)
- func (repo *Repository) FilesCountBetween(startCommitID, endCommitID string) (int, error)
- func (repo *Repository) GetBranchCommit(name string) (*Commit, error)
- func (repo *Repository) GetBranchCommitID(name string) (string, error)
- func (repo *Repository) GetBranches() ([]string, error)
- func (repo *Repository) GetCommit(commitID string) (*Commit, error)
- func (repo *Repository) GetCommitByPath(relpath string) (*Commit, error)
- func (repo *Repository) GetHEADBranch() (*Branch, error)
- func (repo *Repository) GetHook(name string) (*Hook, error)
- func (repo *Repository) GetMergeBase(base, head string) (string, error)
- func (repo *Repository) GetPatch(base, head string) ([]byte, error)
- func (repo *Repository) GetPullRequestInfo(basePath, baseBranch, headBranch string) (_ *PullRequestInfo, err error)
- func (repo *Repository) GetTag(name string) (*Tag, error)
- func (repo *Repository) GetTagCommit(name string) (*Commit, error)
- func (repo *Repository) GetTagCommitID(name string) (string, error)
- func (repo *Repository) GetTags() ([]string, error)
- func (repo *Repository) GetTree(idStr string) (*Tree, error)
- func (repo *Repository) Hooks() ([]*Hook, error)
- func (repo *Repository) IsBranchExist(name string) bool
- func (repo *Repository) IsTagExist(name string) bool
- func (repo *Repository) RemoveRemote(name string) error
- func (repo *Repository) SetDefaultBranch(name string) error
- type Signature
- type SubModule
- type SubModuleFile
- type Tag
- type Tree
- type TreeEntry
Constants ¶
const BRANCH_PREFIX = "refs/heads/"
const DEFAULT_TIMEOUT = 60 * time.Second
const (
HOOK_PATH_UPDATE = "hooks/update"
)
const TAG_PREFIX = "refs/tags/"
Variables ¶
var ( // Debug enables verbose logging on everything. // This should be false in case Gogs starts in SSH mode. Debug = false Prefix = "[git-module] " )
var CommitsRangeSize = 50
var (
ErrNotValidHook = errors.New("not a valid Git hook")
)
Functions ¶
func AddChanges ¶
AddAllChanges marks local changes to be ready for commit.
func Clone ¶
func Clone(from, to string, opts CloneRepoOptions) (err error)
Clone clones original repository to target path.
func CommitChanges ¶
CommitChanges commits local changes with given message and author.
func CommitsCount ¶
CommitsCount returns number of total commits of until given revision.
func InitRepository ¶
InitRepository initializes a new Git repository.
func IsBranchExist ¶
IsBranchExist returns true if given branch exists in the repository.
func IsErrExecTimeout ¶
func IsErrNotExist ¶
func IsErrUnsupportedVersion ¶
func IsReferenceExist ¶
IsReferenceExist returns true if given reference exists in the repository.
func IsTagExist ¶
IsTagExist returns true if given tag exists in the repository.
func IsValidHookName ¶
IsValidHookName returns true if given name is a valid Git hook.
func 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 NewIDFromString ¶
NewIDFromString creates a new sha1 from a ID string of length 40.
func Pull ¶
func Pull(repoPath string, opts PullRemoteOptions) error
Pull pulls changes from remotes.
func RefEndName ¶
func SetUpdateHook ¶
SetUpdateHook writes given content to update hook of the reposiotry.
func UnescapeChars ¶
UnescapeChars reverses escaped characters.
Types ¶
type Blob ¶
type Blob struct { *TreeEntry // contains filtered or unexported fields }
Blob represents a Git object.
type CloneRepoOptions ¶
type Command ¶
type Command struct {
// contains filtered or unexported fields
}
Command represents a command with its subcommands or arguments.
func NewCommand ¶
NewCommand creates and returns a new Git Command based on given command and arguments.
func (*Command) AddArguments ¶
AddArguments adds new argument(s) to the command.
func (*Command) Run ¶
Run executes the command in defualt working directory and returns stdout in string and error (combined with stderr).
func (*Command) RunInDir ¶
RunInDir executes the command in given directory and returns stdout in string and error (combined with stderr).
func (*Command) RunInDirBytes ¶
RunInDir executes the command in given directory and returns stdout in []byte and error (combined with stderr).
func (*Command) RunInDirPipeline ¶
RunInDirPipeline executes the command in given directory, it pipes stdout and stderr to given io.Writer.
func (*Command) RunInDirTimeout ¶
RunInDirTimeout executes the command in given directory with given timeout, and returns stdout in []byte and error (combined with stderr).
func (*Command) 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) RunTimeout ¶
RunTimeout executes the command in defualt working directory with given timeout, and returns stdout in string and error (combined with stderr).
type Commit ¶
type Commit struct { Tree ID sha1 // The ID of this commit object Author *Signature Committer *Signature CommitMessage string // contains filtered or unexported fields }
Commit represents a git commit.
func (*Commit) CommitsBeforeLimit ¶
func (*Commit) CommitsBeforeUntil ¶
func (*Commit) CommitsCount ¶
func (*Commit) CreateArchive ¶
func (c *Commit) CreateArchive(path string, archiveType ArchiveType) error
func (*Commit) GetCommitByPath ¶
GetCommitByPath return the commit of relative path object.
func (*Commit) GetSubModules ¶
func (*Commit) IsImageFile ¶
func (*Commit) Message ¶
Message returns the commit message. Same as retrieving CommitMessage directly.
func (*Commit) ParentCount ¶
ParentCount returns number of parents of the commit. 0 if this is the root commit, otherwise 1,2, etc.
type Entries ¶
type Entries []*TreeEntry
func (Entries) GetCommitsInfo ¶
GetCommitsInfo takes advantages of concurrey to speed up getting information of all commits that are corresponding to these entries. TODO: limit max goroutines number should be configurable
type EntryMode ¶
type EntryMode int
const ( ENTRY_MODE_BLOB EntryMode = 0100644 ENTRY_MODE_EXEC EntryMode = 0100755 ENTRY_MODE_SYMLINK EntryMode = 0120000 ENTRY_MODE_COMMIT EntryMode = 0160000 ENTRY_MODE_TREE 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 ErrExecTimeout ¶
func (ErrExecTimeout) Error ¶
func (err ErrExecTimeout) Error() string
type ErrNotExist ¶
func (ErrNotExist) Error ¶
func (err ErrNotExist) Error() string
type ErrUnsupportedVersion ¶
type ErrUnsupportedVersion struct {
Required string
}
func (ErrUnsupportedVersion) Error ¶
func (err ErrUnsupportedVersion) Error() string
type Hook ¶
type Hook struct { IsActive bool // Indicates whether repository has this hook. Content string // Content of hook if it's active. Sample string // Sample content from Git. // contains filtered or unexported fields }
Hook represents a Git hook.
type ObjectType ¶
type ObjectType string
const ( OBJECT_COMMIT ObjectType = "commit" OBJECT_TREE ObjectType = "tree" OBJECT_BLOB ObjectType = "blob" OBJECT_TAG ObjectType = "tag" )
type PullRemoteOptions ¶
type PullRequestInfo ¶
PullRequestInfo represents needed information for a pull request.
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) AddRemote ¶
func (repo *Repository) AddRemote(name, url string, fetch bool) error
AddRemote adds a new remote to repository.
func (*Repository) CommitsBetween ¶
func (*Repository) CommitsBetweenIDs ¶
func (repo *Repository) CommitsBetweenIDs(last, before string) (*list.List, error)
func (*Repository) CommitsByFileAndRange ¶
func (*Repository) CommitsCountBetween ¶
func (repo *Repository) CommitsCountBetween(start, end string) (int64, error)
func (*Repository) CreateTag ¶
func (repo *Repository) CreateTag(name, revision string) error
func (*Repository) FileCommitsCount ¶
func (repo *Repository) FileCommitsCount(revision, file string) (int64, error)
func (*Repository) FilesCountBetween ¶
func (repo *Repository) FilesCountBetween(startCommitID, endCommitID string) (int, error)
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) 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) GetHEADBranch ¶
func (repo *Repository) GetHEADBranch() (*Branch, error)
GetHEADBranch returns corresponding branch of HEAD.
func (*Repository) GetMergeBase ¶
func (repo *Repository) GetMergeBase(base, head string) (string, error)
GetMergeBase checks and returns merge base of two branches.
func (*Repository) GetPatch ¶
func (repo *Repository) GetPatch(base, head string) ([]byte, error)
GetPatch generates and returns patch data between given revisions.
func (*Repository) GetPullRequestInfo ¶
func (repo *Repository) GetPullRequestInfo(basePath, baseBranch, headBranch string) (_ *PullRequestInfo, err error)
GetPullRequestInfo generates and returns pull request information between base and head branches of repositories.
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)
func (*Repository) GetTagCommitID ¶
func (repo *Repository) GetTagCommitID(name string) (string, error)
GetTagCommitID returns last commit ID string of given tag.
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)
Find the tree object in the repository.
func (*Repository) Hooks ¶
func (repo *Repository) Hooks() ([]*Hook, error)
func (*Repository) IsBranchExist ¶
func (repo *Repository) IsBranchExist(name string) bool
func (*Repository) IsTagExist ¶
func (repo *Repository) IsTagExist(name string) bool
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.
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
func (*SubModuleFile) RefUrl ¶
func (sf *SubModuleFile) RefUrl(urlPrefix string) string
FIXME: remove import of setting 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.
type Tree ¶
type Tree struct { ID sha1 // contains filtered or unexported fields }
Tree represents a flat directory listing.
func NewTree ¶
func NewTree(repo *Repository, id sha1) *Tree
func (*Tree) GetTreeEntryByPath ¶
func (*Tree) ListEntries ¶
ListEntries returns all entries of current tree.
type TreeEntry ¶
type TreeEntry struct { ID sha1 Type ObjectType // contains filtered or unexported fields }