aboutsummaryrefslogtreecommitdiff
path: root/vendor/github.com/gogs/git-module/commit.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/gogs/git-module/commit.go')
-rw-r--r--vendor/github.com/gogs/git-module/commit.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/vendor/github.com/gogs/git-module/commit.go b/vendor/github.com/gogs/git-module/commit.go
index cab9f464..45c3437b 100644
--- a/vendor/github.com/gogs/git-module/commit.go
+++ b/vendor/github.com/gogs/git-module/commit.go
@@ -303,3 +303,19 @@ func GetCommitFileStatus(repoPath, commitID string) (*CommitFileStatus, error) {
func (c *Commit) FileStatus() (*CommitFileStatus, error) {
return GetCommitFileStatus(c.repo.Path, c.ID.String())
}
+
+// GetFullCommitID returns full length (40) of commit ID by given short SHA in a repository.
+func GetFullCommitID(repoPath, shortID string) (string, error) {
+ if len(shortID) >= 40 {
+ return shortID, nil
+ }
+
+ commitID, err := NewCommand("rev-parse", shortID).RunInDir(repoPath)
+ if err != nil {
+ if strings.Contains(err.Error(), "exit status 128") {
+ return "", ErrNotExist{shortID, ""}
+ }
+ return "", err
+ }
+ return strings.TrimSpace(commitID), nil
+}