diff options
Diffstat (limited to 'releaser/git.go')
-rw-r--r-- | releaser/git.go | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/releaser/git.go b/releaser/git.go index 2d49d2102..cfef434dd 100644 --- a/releaser/git.go +++ b/releaser/git.go @@ -38,6 +38,7 @@ type changeLog struct { Fixes map[string]gitInfos Notes gitInfos All gitInfos + Docs gitInfos // Overall stats Repo *gitHubRepo @@ -45,11 +46,12 @@ type changeLog struct { ThemeCount int } -func newChangeLog(infos gitInfos) *changeLog { +func newChangeLog(infos, docInfos gitInfos) *changeLog { return &changeLog{ Enhancements: make(map[string]gitInfos), Fixes: make(map[string]gitInfos), All: infos, + Docs: docInfos, } } @@ -78,8 +80,8 @@ func (l *changeLog) addGitInfo(isFix bool, info gitInfo, category string) { segment[category] = infos } -func gitInfosToChangeLog(infos gitInfos) *changeLog { - log := newChangeLog(infos) +func gitInfosToChangeLog(infos, docInfos gitInfos) *changeLog { + log := newChangeLog(infos, docInfos) for _, info := range infos { los := strings.ToLower(info.Subject) isFix := strings.Contains(los, "fix") @@ -154,8 +156,8 @@ func git(args ...string) (string, error) { return string(out), nil } -func getGitInfos(tag string, remote bool) (gitInfos, error) { - return getGitInfosBefore("HEAD", tag, remote) +func getGitInfos(tag, repoPath string, remote bool) (gitInfos, error) { + return getGitInfosBefore("HEAD", tag, repoPath, remote) } type countribCount struct { @@ -211,11 +213,11 @@ func (g gitInfos) ContribCountPerAuthor() contribCounts { return c } -func getGitInfosBefore(ref, tag string, remote bool) (gitInfos, error) { +func getGitInfosBefore(ref, tag, repoPath string, remote bool) (gitInfos, error) { var g gitInfos - log, err := gitLogBefore(ref, tag) + log, err := gitLogBefore(ref, tag, repoPath) if err != nil { return g, err } @@ -246,7 +248,7 @@ func getGitInfosBefore(ref, tag string, remote bool) (gitInfos, error) { // Ignore autogenerated commits etc. in change log. This is a regexp. const ignoredCommits = "releaser?:|snapcraft:|Merge commit|Squashed|Revert" -func gitLogBefore(ref, tag string) (string, error) { +func gitLogBefore(ref, tag, repoPath string) (string, error) { var prevTag string var err error if tag != "" { @@ -257,7 +259,18 @@ func gitLogBefore(ref, tag string) (string, error) { return "", err } } - log, err := git("log", "-E", fmt.Sprintf("--grep=%s", ignoredCommits), "--invert-grep", "--pretty=format:%x1e%h%x1f%aE%x1f%s%x1f%b", "--abbrev-commit", prevTag+".."+ref) + + defaultArgs := []string{"log", "-E", fmt.Sprintf("--grep=%s", ignoredCommits), "--invert-grep", "--pretty=format:%x1e%h%x1f%aE%x1f%s%x1f%b", "--abbrev-commit", prevTag + ".." + ref} + + var args []string + + if repoPath != "" { + args = append([]string{"-C", repoPath}, defaultArgs...) + } else { + args = defaultArgs + } + + log, err := git(args...) if err != nil { return ",", err } @@ -270,7 +283,7 @@ func gitVersionTagBefore(ref string) (string, error) { } func gitLog() (string, error) { - return gitLogBefore("HEAD", "") + return gitLogBefore("HEAD", "", "") } func gitShort(args ...string) (output string, err error) { |