diff --git a/apps/provisioning/pkg/repository/git/repository.go b/apps/provisioning/pkg/repository/git/repository.go index 27247991017..4d002e4f831 100644 --- a/apps/provisioning/pkg/repository/git/repository.go +++ b/apps/provisioning/pkg/repository/git/repository.go @@ -756,28 +756,26 @@ func (r *gitRepository) createSignature(ctx context.Context) (nanogit.Author, na Email: "noreply@grafana.com", Time: time.Now(), } - committer := nanogit.Committer{ - Name: "Grafana", - Email: "noreply@grafana.com", - Time: time.Now(), - } // Use signature from context if available - if sig := repository.GetAuthorSignature(ctx); sig != nil && sig.Name != "" { - author.Name = sig.Name - author.Email = sig.Email - author.Time = sig.When - committer.Name = sig.Name - committer.Email = sig.Email - committer.Time = sig.When + if sig := repository.GetAuthorSignature(ctx); sig != nil { + if sig.Name != "" { + author.Name = sig.Name + } + if sig.Email != "" { + author.Email = sig.Email + } + if !sig.When.IsZero() { + author.Time = sig.When + } } if author.Time.IsZero() { author.Time = time.Now() - committer.Time = time.Now() } - return author, committer + // Author and committer are always the same (for now) + return author, nanogit.Committer(author) } func (r *gitRepository) commit(ctx context.Context, writer nanogit.StagedWriter, comment string) error { diff --git a/apps/provisioning/pkg/repository/git/repository_test.go b/apps/provisioning/pkg/repository/git/repository_test.go index e49d0f293e7..d3946b7b6d4 100644 --- a/apps/provisioning/pkg/repository/git/repository_test.go +++ b/apps/provisioning/pkg/repository/git/repository_test.go @@ -346,25 +346,6 @@ func TestCreateSignature(t *testing.T) { require.Equal(t, time.Date(2024, 1, 1, 12, 0, 0, 0, time.UTC), committer.Time) }) - t.Run("should fallback to default when context signature has empty name", func(t *testing.T) { - sig := repository.CommitSignature{ - Name: "", - Email: "john@example.com", - When: time.Date(2024, 1, 1, 12, 0, 0, 0, time.UTC), - } - ctx := repository.WithAuthorSignature(context.Background(), sig) - - author, committer := gitRepo.createSignature(ctx) - - require.Equal(t, "Grafana", author.Name) - require.Equal(t, "noreply@grafana.com", author.Email) - require.False(t, author.Time.IsZero()) - - require.Equal(t, "Grafana", committer.Name) - require.Equal(t, "noreply@grafana.com", committer.Email) - require.False(t, committer.Time.IsZero()) - }) - t.Run("should use current time when signature time is zero", func(t *testing.T) { sig := repository.CommitSignature{ Name: "John Doe", @@ -1787,23 +1768,22 @@ func TestGitRepository_createSignature(t *testing.T) { require.Equal(t, time.Date(2024, 1, 1, 12, 0, 0, 0, time.UTC), committer.Time) }) - t.Run("should fallback to default when context signature has empty name", func(t *testing.T) { + t.Run("should fill in missing signature properties from default values", func(t *testing.T) { sig := repository.CommitSignature{ Name: "", Email: "john@example.com", - When: time.Date(2024, 1, 1, 12, 0, 0, 0, time.UTC), } ctx := repository.WithAuthorSignature(context.Background(), sig) author, committer := gitRepo.createSignature(ctx) - require.Equal(t, "Grafana", author.Name) - require.Equal(t, "noreply@grafana.com", author.Email) + require.Equal(t, "Grafana", author.Name) // The default name + require.Equal(t, sig.Email, author.Email) require.False(t, author.Time.IsZero()) require.Equal(t, "Grafana", committer.Name) - require.Equal(t, "noreply@grafana.com", committer.Email) - require.False(t, committer.Time.IsZero()) + require.Equal(t, sig.Email, author.Email) + require.False(t, author.Time.IsZero()) }) t.Run("should use current time when signature time is zero", func(t *testing.T) {