Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions backend/controllers/projects_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func GenerateChecksSummaryForBatch( batch *models.DiggerBatch) (string, error) {
"outputLength", len(job.TerraformOutput),
)

terraformOutputs += fmt.Sprintf("<PLAN_START>terraform output for %v: %v <PLAN_END>\n\n", projectName, job.TerraformOutput)
terraformOutputs += "<PLAN_START>terraform output for " + projectName + ": " + job.TerraformOutput + " <PLAN_END>\n\n"
}

aiSummary, err := utils.GetAiSummaryFromTerraformPlans(terraformOutputs, summaryEndpoint, apiToken)
Expand Down Expand Up @@ -86,7 +86,7 @@ func GenerateChecksSummaryForJob( job *models.DiggerJob) (string, error) {
slog.Warn("Terraform output not set yet, ignoring this call")
return "", nil
}
terraformOutput := fmt.Sprintf("<PLAN_START>Terraform output for: %v<PLAN_END>\n\n", job.TerraformOutput)
terraformOutput := "<PLAN_START>Terraform output for: " + job.TerraformOutput + "<PLAN_END>\n\n"
aiSummary, err := utils.GetAiSummaryFromTerraformPlans(terraformOutput, summaryEndpoint, apiToken)
if err != nil {
slog.Error("Could not generate AI summary from Terraform outputs",
Expand Down
11 changes: 6 additions & 5 deletions backend/utils/comment_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"log/slog"
"runtime/debug"
"strconv"
"strings"

"github.com/diggerhq/digger/backend/models"
"github.com/diggerhq/digger/libs/ci"
Expand Down Expand Up @@ -183,11 +184,11 @@ func GenerateRealtimeCommentMessage(jobs []models.DiggerJob, batchType orchestra
// Match exact CLI format: |emoji **project** |<a href='workflow'>status</a> | <a href='comment'>jobType</a> | + | ~ | - |
message += fmt.Sprintf("|%s **%s** |<a href='%s'>%s</a> | <a href='%s'>%s</a> | %d | %d | %d|\n",
job.Status.ToEmoji(),
projectDisplayName,
workflowRunUrl,
job.Status.ToString(),
checkRunUrl,
jobTypeTitle,
strings.ReplaceAll(projectDisplayName, "%", "%%"),
strings.ReplaceAll(workflowRunUrl, "%", "%%"),
strings.ReplaceAll(job.Status.ToString(), "%", "%%"),
strings.ReplaceAll(checkRunUrl, "%", "%%"),
strings.ReplaceAll(jobTypeTitle, "%", "%%"),
resourcesCreated,
resourcesUpdated,
resourcesDeleted)
Expand Down
5 changes: 3 additions & 2 deletions cli/pkg/drift/github_issue.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import (
orchestrator "github.com/diggerhq/digger/libs/ci"
"github.com/samber/lo"
"log"
"strings"
)

type GithubIssueNotification struct {
Expand All @@ -14,8 +15,8 @@ type GithubIssueNotification struct {

func (ghi *GithubIssueNotification) SendNotificationForProject(projectName string, repoFullName string, plan string) error {
log.Printf("Info: Sending drift notification regarding project: %v", projectName)
title := fmt.Sprintf("Drift detected in project: %v", projectName)
message := fmt.Sprintf(":bangbang: Drift detected in digger project %v details below: \n\n```\n%v\n```", projectName, plan)
title := fmt.Sprintf("Drift detected in project: %s", strings.ReplaceAll(projectName, "%", "%%"))
message := ":bangbang: Drift detected in digger project " + projectName + " details below: \n\n```\n" + plan + "\n```"
existingIssues, err := (*ghi.GithubService).ListIssues()
if err != nil {
log.Printf("failed to retrieve issues: %v", err)
Expand Down
12 changes: 9 additions & 3 deletions ee/cli/pkg/comment_updater/updater.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,9 +44,15 @@ func (a AdvancedCommentUpdater) UpdateComment(jobs []scheduler.SerializedJob, pr
workflowUrl = *job.WorkflowRunUrl
}

message = message + fmt.Sprintf("<!-- PROJECTHOLDER %v -->\n", job.ProjectName)
message = message + fmt.Sprintf("%v **%v** <a href='%v'>%v</a>%v %v\n", job.Status.ToEmoji(), jobSpec.ProjectName, workflowUrl, job.Status.ToString(), job.ResourcesSummaryString(isPlan), DriftSummaryString(job.ProjectName, issuesMap))
message = message + fmt.Sprintf("<!-- PROJECTHOLDEREND %v -->\n", job.ProjectName)
message = message + fmt.Sprintf("<!-- PROJECTHOLDER %s -->\n", strings.ReplaceAll(job.ProjectName, "%", "%%"))
message = message + fmt.Sprintf("%s **%s** <a href='%s'>%s</a>%s %s\n",
job.Status.ToEmoji(),
strings.ReplaceAll(jobSpec.ProjectName, "%", "%%"),
strings.ReplaceAll(workflowUrl, "%", "%%"),
strings.ReplaceAll(job.Status.ToString(), "%", "%%"),
strings.ReplaceAll(job.ResourcesSummaryString(isPlan), "%", "%%"),
strings.ReplaceAll(DriftSummaryString(job.ProjectName, issuesMap), "%", "%%"))
message = message + fmt.Sprintf("<!-- PROJECTHOLDEREND %s -->\n", strings.ReplaceAll(job.ProjectName, "%", "%%"))
}

prService.EditComment(prNumber, prCommentId, message)
Expand Down
5 changes: 3 additions & 2 deletions libs/comment_utils/reporting/source_grouping.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"encoding/json"
"fmt"
"log/slog"
"strings"

"github.com/diggerhq/digger/libs/ci"
"github.com/diggerhq/digger/libs/digger_config"
Expand Down Expand Up @@ -77,7 +78,7 @@ func (r SourceGroupingReporter) UpdateComment(sourceDetails []SourceDetails, loc
}

message := ""
message = message + fmt.Sprintf("# Group: %v (similar: %v)\n", location, allSimilarInGroup)
message = message + fmt.Sprintf("# Group: %s (similar: %v)\n", strings.ReplaceAll(location, "%", "%%"), allSimilarInGroup)

slog.Info("generating comment for source location",
"location", location,
Expand All @@ -95,7 +96,7 @@ func (r SourceGroupingReporter) UpdateComment(sourceDetails []SourceDetails, loc
expanded := i == 0 || !allSimilarInGroup
// Use alias for display with fallback to project name
displayName := scheduler.GetProjectAlias(job)
commenter := GetTerraformOutputAsCollapsibleComment(fmt.Sprintf("Plan for %v", displayName), expanded)
commenter := GetTerraformOutputAsCollapsibleComment("Plan for "+displayName, expanded)
message = message + commenter(terraformOutputs[project]) + "\n"
}

Expand Down
13 changes: 7 additions & 6 deletions libs/comment_utils/summary/updater.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package comment_updater
import (
"fmt"
"log/slog"
"strings"

"github.com/diggerhq/digger/libs/ci"
"github.com/diggerhq/digger/libs/scheduler"
Expand Down Expand Up @@ -52,13 +53,13 @@ func (b BasicCommentUpdater) UpdateComment(jobs []scheduler.SerializedJob, prNum
workflowUrl = *job.WorkflowRunUrl
}

message = message + fmt.Sprintf("|%v **%v** |<a href='%v'>%v</a> | <a href='%v'>%v</a> | %v | %v | %v|\n",
message = message + fmt.Sprintf("|%s **%s** |<a href='%s'>%s</a> | <a href='%s'>%s</a> | %d | %d | %d|\n",
job.Status.ToEmoji(),
scheduler.GetProjectAlias(job),
workflowUrl,
job.Status.ToString(),
prCommentUrl,
jobTypeTitle,
strings.ReplaceAll(scheduler.GetProjectAlias(job), "%", "%%"),
strings.ReplaceAll(workflowUrl, "%", "%%"),
strings.ReplaceAll(job.Status.ToString(), "%", "%%"),
strings.ReplaceAll(prCommentUrl, "%", "%%"),
strings.ReplaceAll(jobTypeTitle, "%", "%%"),
job.ResourcesCreated,
job.ResourcesUpdated,
job.ResourcesDeleted)
Expand Down
Loading