diff --git a/pkg/provider/gitlab.go b/pkg/provider/gitlab.go index f08ab8b937adc1c996b51b3e431d3b48bf0ed145..26524d5c43e22e383f198d380ef70bbc604de86a 100644 --- a/pkg/provider/gitlab.go +++ b/pkg/provider/gitlab.go @@ -6,6 +6,7 @@ import ( "os" "regexp" "strconv" + "time" "github.com/Masterminds/semver/v3" "github.com/go-semantic-release/semantic-release/v2/pkg/provider" @@ -110,6 +111,14 @@ func (repo *GitLabRepository) GetCommits(fromSha, toSha string) ([]*semrel.RawCo allCommits = append(allCommits, &semrel.RawCommit{ SHA: commit.ID, RawMessage: commit.Message, + Annotations: map[string]string{ + "author_name": commit.AuthorName, + "author_email": commit.AuthorEmail, + "author_date": commit.AuthoredDate.Format(time.RFC3339), + "committer_name": commit.CommitterName, + "committer_email": commit.CommitterEmail, + "committer_date": commit.CommittedDate.Format(time.RFC3339), + }, }) } diff --git a/pkg/provider/gitlab_test.go b/pkg/provider/gitlab_test.go index 0c4cd8cb1a861666b8307688fb393d6097c7f6bc..b76610783e43fcd8d8a96ac5ca2019a826803a7c 100644 --- a/pkg/provider/gitlab_test.go +++ b/pkg/provider/gitlab_test.go @@ -7,6 +7,7 @@ import ( "net/http/httptest" "strconv" "testing" + "time" "github.com/go-semantic-release/semantic-release/v2/pkg/provider" "github.com/go-semantic-release/semantic-release/v2/pkg/semrel" @@ -46,7 +47,17 @@ func TestNewGitlabRepository(t *testing.T) { } func createGitlabCommit(sha, message string) *gitlab.Commit { - return &gitlab.Commit{ID: sha, Message: message} + commitDate := time.Now() + return &gitlab.Commit{ + ID: sha, + Message: message, + AuthorName: "author", + AuthorEmail: "author@gitlab.com", + AuthoredDate: &commitDate, + CommitterName: "committer", + CommitterEmail: "committer@gitlab.com", + CommittedDate: &commitDate, + } } var testSHA = "deadbeef" @@ -157,6 +168,12 @@ func TestGitlabGetCommits(t *testing.T) { for i, c := range commits { require.Equal(t, c.SHA, gitlabCommits[i].ID) require.Equal(t, c.RawMessage, gitlabCommits[i].Message) + require.Equal(t, c.Annotations["author_name"], gitlabCommits[i].AuthorName) + require.Equal(t, c.Annotations["author_email"], gitlabCommits[i].AuthorEmail) + require.Equal(t, c.Annotations["committer_name"], gitlabCommits[i].CommitterName) + require.Equal(t, c.Annotations["committer_email"], gitlabCommits[i].CommitterEmail) + require.Equal(t, c.Annotations["author_date"], gitlabCommits[i].AuthoredDate.Format(time.RFC3339)) + require.Equal(t, c.Annotations["committer_date"], gitlabCommits[i].CommittedDate.Format(time.RFC3339)) } }