diff --git a/pkg/analyzer/commit_analyzer.go b/pkg/analyzer/commit_analyzer.go
index 7b1ac642a14b58adbead3dd75b5814e7297e701e..3178641ef33aed584e9ab394fc08d2c41c114f03 100644
--- a/pkg/analyzer/commit_analyzer.go
+++ b/pkg/analyzer/commit_analyzer.go
@@ -28,9 +28,12 @@ func (da *DefaultCommitAnalyzer) Version() string {
 }
 
 func (da *DefaultCommitAnalyzer) analyzeSingleCommit(rawCommit *semrel.RawCommit) *semrel.Commit {
-	c := &semrel.Commit{Change: &semrel.Change{}}
-	c.SHA = rawCommit.SHA
-	c.Raw = strings.Split(rawCommit.RawMessage, "\n")
+	c := &semrel.Commit{
+		SHA:         rawCommit.SHA,
+		Raw:         strings.Split(rawCommit.RawMessage, "\n"),
+		Change:      &semrel.Change{},
+		Annotations: rawCommit.Annotations,
+	}
 	found := commitPattern.FindAllStringSubmatch(c.Raw[0], -1)
 	if len(found) < 1 {
 		return c
diff --git a/pkg/analyzer/commit_analyzer_test.go b/pkg/analyzer/commit_analyzer_test.go
index 43ca1603c0ac2b0717e10f52eaa4708068e00369..17229ae20d508b0fe676f43d240bdb903a75c331 100644
--- a/pkg/analyzer/commit_analyzer_test.go
+++ b/pkg/analyzer/commit_analyzer_test.go
@@ -2,6 +2,7 @@ package analyzer
 
 import (
 	"fmt"
+	"strings"
 	"testing"
 
 	"github.com/go-semantic-release/semantic-release/v2/pkg/semrel"
@@ -24,9 +25,22 @@ func createRawCommit(sha, message string) *semrel.RawCommit {
 	return &semrel.RawCommit{
 		SHA:        sha,
 		RawMessage: message,
+		Annotations: map[string]string{
+			"author_name":   "test",
+			"my-annotation": "true",
+		},
 	}
 }
 
+func TestAnnotations(t *testing.T) {
+	defaultAnalyzer := &DefaultCommitAnalyzer{}
+	rawCommit := createRawCommit("a", "feat: new feature")
+	commit := defaultAnalyzer.analyzeSingleCommit(rawCommit)
+	require.Equal(t, rawCommit.SHA, commit.SHA)
+	require.Equal(t, rawCommit.RawMessage, strings.Join(commit.Raw, "\n"))
+	require.Equal(t, rawCommit.Annotations, commit.Annotations)
+}
+
 func TestDefaultAnalyzer(t *testing.T) {
 	testCases := []struct {
 		RawCommit *semrel.RawCommit