diff --git a/pkg/app/pipectl/cmd/planpreview/planpreview.go b/pkg/app/pipectl/cmd/planpreview/planpreview.go index ae3fd12987..54e7520ae4 100644 --- a/pkg/app/pipectl/cmd/planpreview/planpreview.go +++ b/pkg/app/pipectl/cmd/planpreview/planpreview.go @@ -258,7 +258,7 @@ type ApplicationInfo struct { func (r ReadableResult) String() string { var b strings.Builder if len(r.Applications)+len(r.FailureApplications)+len(r.FailurePipeds) == 0 { - fmt.Fprintf(&b, "\nThere are no applications to build plan-preview\n") + fmt.Fprintf(&b, "\nThere are no updated applications. It means no deployment will be triggered once this pull request got merged.\n") return b.String() } diff --git a/pkg/app/pipectl/cmd/planpreview/planpreview_test.go b/pkg/app/pipectl/cmd/planpreview/planpreview_test.go index 61f3ab6990..338bb5c816 100644 --- a/pkg/app/pipectl/cmd/planpreview/planpreview_test.go +++ b/pkg/app/pipectl/cmd/planpreview/planpreview_test.go @@ -33,7 +33,7 @@ func TestReadableResultString(t *testing.T) { name: "empty", results: []*model.PlanPreviewCommandResult{}, expected: ` -There are no applications to build plan-preview +There are no updated applications. It means no deployment will be triggered once this pull request got merged. `, }, { diff --git a/pkg/app/piped/cloudprovider/kubernetes/diff.go b/pkg/app/piped/cloudprovider/kubernetes/diff.go index 0636fd4d5e..7fa5c64289 100644 --- a/pkg/app/piped/cloudprovider/kubernetes/diff.go +++ b/pkg/app/piped/cloudprovider/kubernetes/diff.go @@ -96,7 +96,7 @@ func (r *DiffListResult) DiffString() string { renderer := diff.NewRenderer(opts...) index++ - b.WriteString(fmt.Sprintf("* %d. %s\n\n", index, key.ReadableString())) + b.WriteString(fmt.Sprintf("# %d. %s\n\n", index, key.ReadableString())) b.WriteString(renderer.Render(change.Diff.Nodes())) b.WriteString("\n") diff --git a/pkg/app/piped/cmd/piped/piped.go b/pkg/app/piped/cmd/piped/piped.go index 01ad207782..573daae63b 100644 --- a/pkg/app/piped/cmd/piped/piped.go +++ b/pkg/app/piped/cmd/piped/piped.go @@ -227,9 +227,9 @@ func (p *piped) run(ctx context.Context, t cli.Telemetry) (runErr error) { defer func() { if err := gitClient.Clean(); err != nil { t.Logger.Error("had an error while cleaning gitClient", zap.Error(err)) - } else { - t.Logger.Info("successfully cleaned gitClient") + return } + t.Logger.Info("successfully cleaned gitClient") }() // Initialize environment store. @@ -386,8 +386,23 @@ func (p *piped) run(ctx context.Context, t cli.Telemetry) (runErr error) { // Start running planpreview handler. if p.enablePlanPreview { + // Initialize a dedicated git client for plan-preview feature. + // Basically, this feature is an utility so it should not share any resource with the main components of piped. + gc, err := git.NewClient(cfg.Git.Username, cfg.Git.Email, t.Logger) + if err != nil { + t.Logger.Error("failed to initialize git client for plan-preview", zap.Error(err)) + return err + } + defer func() { + if err := gc.Clean(); err != nil { + t.Logger.Error("had an error while cleaning gitClient for plan-preview", zap.Error(err)) + return + } + t.Logger.Info("successfully cleaned gitClient for plan-preview") + }() + h := planpreview.NewHandler( - gitClient, + gc, apiClient, commandLister, applicationLister, diff --git a/pkg/app/piped/planpreview/kubernetesdiff.go b/pkg/app/piped/planpreview/kubernetesdiff.go index bd997b2ff5..23f4ed64bd 100644 --- a/pkg/app/piped/planpreview/kubernetesdiff.go +++ b/pkg/app/piped/planpreview/kubernetesdiff.go @@ -95,7 +95,7 @@ func (b *builder) kubernetesDiff( } summary := fmt.Sprintf("%d added manifests, %d changed manifests, %d deleted manifests", len(result.Adds), len(result.Changes), len(result.Deletes)) - fmt.Fprintf(buf, "---Head Commit\n+++Last Deploy\n\n%s\n", result.DiffString()) + fmt.Fprintf(buf, "--- Last Deploy\n+++ Head Commit\n\n%s\n", result.DiffString()) return summary, nil }