Skip to content

Commit 78ed78c

Browse files
committed
feat: logs between tags, experimental
1 parent 52f8bbf commit 78ed78c

File tree

2 files changed

+34
-8
lines changed

2 files changed

+34
-8
lines changed

main.go

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,19 @@ func main() {
3737
})
3838

3939
logContainer := new(logcategory.LogsByCategory)
40+
latestTag, _, err := utils.GetLatestTagFromRepository(r)
41+
42+
if err != nil {
43+
log.Fatal("Error Getting Tag Pairs", err)
44+
}
45+
46+
tillLatest := false
47+
48+
if latestTag.Hash().String() == ref.Hash().String() {
49+
tillLatest = false
50+
} else {
51+
tillLatest = true
52+
}
4053

4154
for _, c := range commits {
4255
switch {
@@ -66,7 +79,7 @@ func main() {
6679
}
6780
}
6881

69-
if isCommitToNearestTag(r, c) {
82+
if isCommitToNearestTag(r, c, tillLatest) {
7083
break
7184
}
7285
}
@@ -75,8 +88,9 @@ func main() {
7588

7689
}
7790

78-
func isCommitToNearestTag(repo *git.Repository, commit *object.Commit) bool {
79-
latestTag, err := utils.GetLatestTagFromRepository(repo)
91+
func isCommitToNearestTag(repo *git.Repository, commit *object.Commit, tillLatest bool) bool {
92+
latestTag, previousTag, err := utils.GetLatestTagFromRepository(repo)
93+
8094
if err != nil {
8195
log.Fatal("Couldn't get latest tag...", err)
8296
}
@@ -85,7 +99,12 @@ func isCommitToNearestTag(repo *git.Repository, commit *object.Commit) bool {
8599
}
86100

87101
if latestTag != nil {
88-
return latestTag.Hash().String() == commit.Hash.String()
102+
103+
if tillLatest {
104+
return latestTag.Hash().String() == commit.Hash.String()
105+
}
106+
return previousTag.Hash().String() == commit.Hash.String()
107+
89108
}
90109
return false
91110
}

utils/latest-tag.go

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,17 @@ import (
77
)
88

99
// GetLatestTagFromRepository - Get the latest Tag reference from the repo
10-
func GetLatestTagFromRepository(repository *git.Repository) (*plumbing.Reference, error) {
10+
func GetLatestTagFromRepository(repository *git.Repository) (*plumbing.Reference, *plumbing.Reference, error) {
1111
tagRefs, err := repository.Tags()
1212
if err != nil {
13-
return nil, err
13+
return nil, nil, err
1414
}
1515

1616
var latestTagCommit *object.Commit
1717
var latestTagName *plumbing.Reference
18+
var previousTag *plumbing.Reference
19+
var previousTagReturn *plumbing.Reference
20+
1821
err = tagRefs.ForEach(func(tagRef *plumbing.Reference) error {
1922
revision := plumbing.Revision(tagRef.Name().String())
2023

@@ -31,18 +34,22 @@ func GetLatestTagFromRepository(repository *git.Repository) (*plumbing.Reference
3134
if latestTagCommit == nil {
3235
latestTagCommit = commit
3336
latestTagName = tagRef
37+
previousTagReturn = previousTag
3438
}
3539

3640
if commit.Committer.When.After(latestTagCommit.Committer.When) {
3741
latestTagCommit = commit
3842
latestTagName = tagRef
43+
previousTagReturn = previousTag
3944
}
4045

46+
previousTag = tagRef
47+
4148
return nil
4249
})
4350
if err != nil {
44-
return nil, err
51+
return nil, nil, err
4552
}
4653

47-
return latestTagName, nil
54+
return latestTagName, previousTagReturn, nil
4855
}

0 commit comments

Comments
 (0)