diff options
Diffstat (limited to 'vendor/github.com')
-rw-r--r-- | vendor/github.com/gogits/git-module/commit.go | 54 | ||||
-rw-r--r-- | vendor/github.com/gogits/git-module/git.go | 2 | ||||
-rw-r--r-- | vendor/github.com/gogits/go-gogs-client/gogs.go | 2 | ||||
-rw-r--r-- | vendor/github.com/gogits/go-gogs-client/repo_hook.go | 7 |
4 files changed, 62 insertions, 3 deletions
diff --git a/vendor/github.com/gogits/git-module/commit.go b/vendor/github.com/gogits/git-module/commit.go index b68a6b97..6cc6b5fd 100644 --- a/vendor/github.com/gogits/git-module/commit.go +++ b/vendor/github.com/gogits/git-module/commit.go @@ -6,8 +6,10 @@ package git import ( "bufio" + "bytes" "container/list" "fmt" + "io" "net/http" "strconv" "strings" @@ -252,3 +254,55 @@ func (c *Commit) GetSubModule(entryname string) (*SubModule, error) { } return nil, nil } + +// CommitFileStatus represents status of files in a commit. +type CommitFileStatus struct { + Added []string + Removed []string + Modified []string +} + +func NewCommitFileStatus() *CommitFileStatus { + return &CommitFileStatus{ + []string{}, []string{}, []string{}, + } +} + +// GetCommitFileStatus returns file status of commit in given repository. +func GetCommitFileStatus(repoPath, commitID string) (*CommitFileStatus, error) { + stdout, w := io.Pipe() + defer stdout.Close() + + stderr := new(bytes.Buffer) + + fileStatus := NewCommitFileStatus() + go func() { + scanner := bufio.NewScanner(stdout) + for scanner.Scan() { + fields := strings.Fields(scanner.Text()) + if len(fields) < 2 { + continue + } + + switch fields[0][0] { + case 'A': + fileStatus.Added = append(fileStatus.Added, fields[1]) + case 'D': + fileStatus.Removed = append(fileStatus.Removed, fields[1]) + case 'M': + fileStatus.Modified = append(fileStatus.Modified, fields[1]) + } + } + }() + + if err := NewCommand("log", "-1", "--name-status", "--pretty=format:''", commitID).RunInDirPipeline(repoPath, w, stderr); err != nil { + return nil, concatenateError(err, stderr.String()) + } + + return fileStatus, nil +} + +// FileStatus returns file status of commit. +func (c *Commit) FileStatus() (*CommitFileStatus, error) { + return GetCommitFileStatus(c.repo.Path, c.ID.String()) +} diff --git a/vendor/github.com/gogits/git-module/git.go b/vendor/github.com/gogits/git-module/git.go index 28426acd..2ba3b1a5 100644 --- a/vendor/github.com/gogits/git-module/git.go +++ b/vendor/github.com/gogits/git-module/git.go @@ -10,7 +10,7 @@ import ( "time" ) -const _VERSION = "0.5.0" +const _VERSION = "0.5.1" func Version() string { return _VERSION diff --git a/vendor/github.com/gogits/go-gogs-client/gogs.go b/vendor/github.com/gogits/go-gogs-client/gogs.go index e691dd64..2869e6c2 100644 --- a/vendor/github.com/gogits/go-gogs-client/gogs.go +++ b/vendor/github.com/gogits/go-gogs-client/gogs.go @@ -14,7 +14,7 @@ import ( ) func Version() string { - return "0.12.10" + return "0.12.11" } // Client represents a Gogs API client. diff --git a/vendor/github.com/gogits/go-gogs-client/repo_hook.go b/vendor/github.com/gogits/go-gogs-client/repo_hook.go index 1ea75468..3d06b9fc 100644 --- a/vendor/github.com/gogits/go-gogs-client/repo_hook.go +++ b/vendor/github.com/gogits/go-gogs-client/repo_hook.go @@ -86,7 +86,12 @@ type PayloadCommit struct { URL string `json:"url"` Author *PayloadUser `json:"author"` Committer *PayloadUser `json:"committer"` - Timestamp time.Time `json:"timestamp"` + + Added []string `json:"added"` + Removed []string `json:"removed"` + Modified []string `json:"modified"` + + Timestamp time.Time `json:"timestamp"` } var ( |