Skip to content

Commit 5f59469

Browse files
committed
fix: missing tag / enough commits
adds conditional check for tags reference existence to avoid segfault and dangling pointers
1 parent bc17449 commit 5f59469

File tree

1 file changed

+31
-9
lines changed

1 file changed

+31
-9
lines changed

main.go

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,34 @@ func normalizeCommit(commitMessage string) string {
2525

2626
func main() {
2727
path := os.Args[1]
28-
r, _ := git.PlainOpen(path)
29-
ref, _ := r.Head()
30-
cIter, _ := r.Log(&git.LogOptions{From: ref.Hash()})
28+
r, err := git.PlainOpen(path)
29+
if err != nil {
30+
log.Fatal("Error opening Repository: ", err)
31+
}
32+
33+
ref, err := r.Head()
34+
35+
if err != nil {
36+
log.Fatal("Unable to get repository HEAD:", err)
37+
}
38+
39+
cIter, err := r.Log(&git.LogOptions{From: ref.Hash()})
40+
41+
if err != nil {
42+
log.Fatal("Unable to get repository commits:", err)
43+
}
3144

3245
var commits []*object.Commit
3346

34-
_ = cIter.ForEach(func(c *object.Commit) error {
47+
err = cIter.ForEach(func(c *object.Commit) error {
3548
commits = append(commits, c)
3649
return nil
3750
})
3851

52+
if err != nil {
53+
log.Fatal("Error getting commits : ", err)
54+
}
55+
3956
logContainer := new(logcategory.LogsByCategory)
4057
latestTag, _, err := utils.GetLatestTagFromRepository(r)
4158

@@ -45,10 +62,12 @@ func main() {
4562

4663
tillLatest := false
4764

48-
if latestTag.Hash().String() == ref.Hash().String() {
49-
tillLatest = false
50-
} else {
51-
tillLatest = true
65+
if latestTag != nil {
66+
if latestTag.Hash().String() == ref.Hash().String() {
67+
tillLatest = false
68+
} else {
69+
tillLatest = true
70+
}
5271
}
5372

5473
for _, c := range commits {
@@ -65,6 +84,10 @@ func main() {
6584
{
6685
logContainer.REFACTOR = append(logContainer.REFACTOR, c.Hash.String()+" - "+normalizeCommit(c.Message))
6786
}
87+
case strings.Contains(c.Message, "feat:"):
88+
{
89+
logContainer.FEATURE = append(logContainer.FEATURE, c.Hash.String()+" - "+normalizeCommit(c.Message))
90+
}
6891
case strings.Contains(c.Message, "feature:"):
6992
{
7093
logContainer.FEATURE = append(logContainer.FEATURE, c.Hash.String()+" - "+normalizeCommit(c.Message))
@@ -99,7 +122,6 @@ func isCommitToNearestTag(repo *git.Repository, commit *object.Commit, tillLates
99122
}
100123

101124
if latestTag != nil {
102-
103125
if tillLatest {
104126
return latestTag.Hash().String() == commit.Hash.String()
105127
}

0 commit comments

Comments
 (0)