Skip to content

Commit 52e966e

Browse files
authored
feat/alias for project names (#2070)
* allow using of alias for projects
1 parent dbd8c2a commit 52e966e

File tree

20 files changed

+113
-94
lines changed

20 files changed

+113
-94
lines changed

backend/models/scheduler.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,7 @@ func (j *DiggerJob) MapToJsonStruct() (orchestrator_scheduler.SerializedJob, err
124124
JobString: j.SerializedJobSpec,
125125
PlanFootprint: j.PlanFootprint,
126126
ProjectName: job.ProjectName,
127+
ProjectAlias: job.ProjectAlias,
127128
WorkflowRunUrl: j.WorkflowRunUrl,
128129
PRCommentUrl: j.PRCommentUrl,
129130
ResourcesCreated: j.DiggerJobSummary.ResourcesCreated,

backend/utils/github.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,13 +184,13 @@ func SetPRStatusForJobs(prService ci.PullRequestService, prNumber int, jobs []sc
184184
"prNumber", prNumber,
185185
"project", job.ProjectName,
186186
)
187-
err = prService.SetStatus(prNumber, "pending", job.ProjectName+"/plan")
187+
err = prService.SetStatus(prNumber, "pending", job.GetProjectAlias()+"/plan")
188188
case "digger apply":
189189
slog.Debug("Setting PR status for apply",
190190
"prNumber", prNumber,
191191
"project", job.ProjectName,
192192
)
193-
err = prService.SetStatus(prNumber, "pending", job.ProjectName+"/apply")
193+
err = prService.SetStatus(prNumber, "pending", job.GetProjectAlias()+"/apply")
194194
}
195195
if err != nil {
196196
slog.Error("Failed to set PR status",

backend/utils/pr_comment.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ func ReportInitialJobsStatus(cr *CommentReporter, jobs []scheduler.Job) error {
177177
message = message + fmt.Sprintf("|---------|--------|\n")
178178
for _, job := range jobs {
179179
message = message + fmt.Sprintf(""+
180-
"|:clock11: **%v**|pending...|\n", job.ProjectName)
180+
"|:clock11: **%v**|pending...|\n", job.GetProjectAlias())
181181
}
182182
}
183183

@@ -223,7 +223,7 @@ func ReportLayersTableForJobs(cr *CommentReporter, jobs []scheduler.Job) error {
223223
message = message + fmt.Sprintf("|---------|--------|\n")
224224
for _, job := range jobs {
225225
message = message + fmt.Sprintf(""+
226-
"|:clock11: **%v**|%v|\n", job.ProjectName, job.Layer)
226+
"|:clock11: **%v**|%v|\n", job.GetProjectAlias(), job.Layer)
227227
}
228228
}
229229

cli/pkg/digger/digger.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -276,7 +276,7 @@ func run(command string, job orchestrator.Job, policyChecker policy.Checker, org
276276
if err != nil {
277277
slog.Error("failed to send usage report", "error", err)
278278
}
279-
err = prService.SetStatus(*job.PullRequestNumber, "pending", job.ProjectName+"/plan")
279+
err = prService.SetStatus(*job.PullRequestNumber, "pending", job.GetProjectAlias()+"/plan")
280280
if err != nil {
281281
msg := fmt.Sprintf("Failed to set PR status. %v", err)
282282
return nil, msg, fmt.Errorf("%s", msg)
@@ -286,7 +286,7 @@ func run(command string, job orchestrator.Job, policyChecker policy.Checker, org
286286
if err != nil {
287287
msg := fmt.Sprintf("Failed to Run digger plan command. %v", err)
288288
slog.Error("Failed to Run digger plan command", "error", err)
289-
err := prService.SetStatus(*job.PullRequestNumber, "failure", job.ProjectName+"/plan")
289+
err := prService.SetStatus(*job.PullRequestNumber, "failure", job.GetProjectAlias()+"/plan")
290290
if err != nil {
291291
msg := fmt.Sprintf("Failed to set PR status. %v", err)
292292
return nil, msg, fmt.Errorf("%s", msg)
@@ -340,7 +340,7 @@ func run(command string, job orchestrator.Job, policyChecker policy.Checker, org
340340
} else {
341341
reportEmptyPlanOutput(reporter, projectLock.LockId())
342342
}
343-
err := prService.SetStatus(*job.PullRequestNumber, "success", job.ProjectName+"/plan")
343+
err := prService.SetStatus(*job.PullRequestNumber, "success", job.GetProjectAlias()+"/plan")
344344
if err != nil {
345345
msg := fmt.Sprintf("Failed to set PR status. %v", err)
346346
return nil, msg, fmt.Errorf("%s", msg)
@@ -361,7 +361,7 @@ func run(command string, job orchestrator.Job, policyChecker policy.Checker, org
361361
if err != nil {
362362
slog.Error("failed to send usage report.", "error", err)
363363
}
364-
err = prService.SetStatus(*job.PullRequestNumber, "pending", job.ProjectName+"/apply")
364+
err = prService.SetStatus(*job.PullRequestNumber, "pending", job.GetProjectAlias()+"/apply")
365365
if err != nil {
366366
msg := fmt.Sprintf("Failed to set PR status. %v", err)
367367
return nil, msg, fmt.Errorf("%s", msg)
@@ -382,7 +382,7 @@ func run(command string, job orchestrator.Job, policyChecker policy.Checker, org
382382
slog.Info("PR status Information", "mergeable", isMergeable, "merged", isMerged, "skipMergeCheck", job.SkipMergeCheck)
383383
if !isMergeable && !isMerged && !job.SkipMergeCheck {
384384
comment := reportApplyMergeabilityError(reporter)
385-
prService.SetStatus(*job.PullRequestNumber, "failure", job.ProjectName+"/apply")
385+
prService.SetStatus(*job.PullRequestNumber, "failure", job.GetProjectAlias()+"/apply")
386386

387387
return nil, comment, fmt.Errorf("%s", comment)
388388
} else {
@@ -428,15 +428,15 @@ func run(command string, job orchestrator.Job, policyChecker policy.Checker, org
428428
if err != nil {
429429
//TODO reuse executor error handling
430430
slog.Error("Failed to Run digger apply command.", "error", err)
431-
err := prService.SetStatus(*job.PullRequestNumber, "failure", job.ProjectName+"/apply")
431+
err := prService.SetStatus(*job.PullRequestNumber, "failure", job.GetProjectAlias()+"/apply")
432432
if err != nil {
433433
msg := fmt.Sprintf("Failed to set PR status. %v", err)
434434
return nil, msg, fmt.Errorf("%s", msg)
435435
}
436436
msg := fmt.Sprintf("Failed to run digger apply command. %v", err)
437437
return nil, msg, fmt.Errorf("%s", msg)
438438
} else if applyPerformed {
439-
err := prService.SetStatus(*job.PullRequestNumber, "success", job.ProjectName+"/apply")
439+
err := prService.SetStatus(*job.PullRequestNumber, "success", job.GetProjectAlias()+"/apply")
440440
if err != nil {
441441
msg := fmt.Sprintf("Failed to set PR status. %v", err)
442442
return nil, msg, fmt.Errorf("%s", msg)

libs/ci/generic/events.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ func CreateJobsForProjects(projects []digger_config.Project, command string, eve
167167
workspace := project.Workspace
168168
jobs = append(jobs, scheduler.Job{
169169
ProjectName: project.Name,
170+
ProjectAlias: project.Alias,
170171
ProjectDir: project.Dir,
171172
ProjectWorkspace: workspace,
172173
ProjectWorkflow: project.Workflow,

libs/ci/github/github.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,7 @@ func ConvertGithubPullRequestEventToJobs(payload *github.PullRequestEvent, impac
492492

493493
jobs = append(jobs, scheduler.Job{
494494
ProjectName: project.Name,
495+
ProjectAlias: project.Alias,
495496
ProjectDir: project.Dir,
496497
ProjectWorkspace: project.Workspace,
497498
ProjectWorkflow: project.Workflow,
@@ -524,6 +525,7 @@ func ConvertGithubPullRequestEventToJobs(payload *github.PullRequestEvent, impac
524525

525526
jobs = append(jobs, scheduler.Job{
526527
ProjectName: project.Name,
528+
ProjectAlias: project.Alias,
527529
ProjectDir: project.Dir,
528530
ProjectWorkspace: project.Workspace,
529531
ProjectWorkflow: project.Workflow,
@@ -555,6 +557,7 @@ func ConvertGithubPullRequestEventToJobs(payload *github.PullRequestEvent, impac
555557

556558
jobs = append(jobs, scheduler.Job{
557559
ProjectName: project.Name,
560+
ProjectAlias: project.Alias,
558561
ProjectDir: project.Dir,
559562
ProjectWorkspace: project.Workspace,
560563
ProjectWorkflow: project.Workflow,
@@ -594,6 +597,7 @@ func ConvertGithubPullRequestEventToJobs(payload *github.PullRequestEvent, impac
594597

595598
jobs = append(jobs, scheduler.Job{
596599
ProjectName: project.Name,
600+
ProjectAlias: project.Alias,
597601
ProjectDir: project.Dir,
598602
ProjectWorkspace: project.Workspace,
599603
ProjectWorkflow: project.Workflow,

libs/comment_utils/summary/updater.go

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,18 @@ func (b BasicCommentUpdater) UpdateComment(jobs []scheduler.SerializedJob, prNum
3838
message = message + fmt.Sprintf("| Project | Status | %v | + | ~ | - |\n", jobTypeTitle)
3939
message = message + fmt.Sprintf("|---------|--------|------|---|---|---|\n")
4040

41-
for i, job := range jobs {
42-
jobSpec := jobSpecs[i]
41+
for _, job := range jobs {
4342
prCommentUrl := job.PRCommentUrl
44-
43+
4544
// Safe handling of WorkflowRunUrl pointer
4645
workflowUrl := "#"
4746
if job.WorkflowRunUrl != nil {
4847
workflowUrl = *job.WorkflowRunUrl
4948
}
50-
49+
5150
message = message + fmt.Sprintf("|%v **%v** |<a href='%v'>%v</a> | <a href='%v'>%v</a> | %v | %v | %v|\n",
5251
job.Status.ToEmoji(),
53-
jobSpec.ProjectName,
52+
scheduler.GetProjectAlias(job),
5453
workflowUrl,
5554
job.Status.ToString(),
5655
prCommentUrl,

libs/digger_config/config.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ type AssumeRoleForProject struct {
4545
type Project struct {
4646
BlockName string // the block name if this is a generated project
4747
Name string
48+
Alias string
4849
Dir string
4950
Workspace string
5051
Terragrunt bool

libs/digger_config/converters.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ func copyProjects(projects []*ProjectYaml) []Project {
2020
result := make([]Project, len(projects))
2121
for i, p := range projects {
2222
driftDetection := true
23-
layer := uint(0)
2423
if p.DriftDetection != nil {
2524
driftDetection = *p.DriftDetection
2625
}
2726

27+
layer := uint(0)
2828
if p.Layer != nil {
2929
layer = *p.Layer
3030
}
@@ -76,6 +76,7 @@ func copyProjects(projects []*ProjectYaml) []Project {
7676
item := Project{
7777
p.BlockName,
7878
p.Name,
79+
p.Alias,
7980
p.Dir,
8081
workspace,
8182
p.Terragrunt,

libs/digger_config/digger_config.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -733,8 +733,13 @@ func hydrateDiggerConfigYamlWithTerragrunt(configYaml *DiggerConfigYaml, parsing
733733
root = path.Join(workingDir, *parsingConfig.GitRoot)
734734
slog.Debug("using custom git root", "root", root)
735735
}
736-
projectExternalChilds := true
737736

737+
projectAliasDelimiter := "_"
738+
if parsingConfig.ProjectAliasDelimiter != "" {
739+
projectAliasDelimiter = parsingConfig.ProjectAliasDelimiter
740+
}
741+
742+
projectExternalChilds := true
738743
if parsingConfig.CreateHclProjectExternalChilds != nil {
739744
projectExternalChilds = *parsingConfig.CreateHclProjectExternalChilds
740745
}
@@ -788,6 +793,7 @@ func hydrateDiggerConfigYamlWithTerragrunt(configYaml *DiggerConfigYaml, parsing
788793
parsingConfig.DefaultApplyRequirements,
789794
parsingConfig.AutoPlan,
790795
parsingConfig.DefaultTerraformVersion,
796+
projectAliasDelimiter,
791797
parsingConfig.CreateProjectName,
792798
parsingConfig.CreateWorkspace,
793799
parsingConfig.PreserveProjects,
@@ -851,6 +857,7 @@ func hydrateDiggerConfigYamlWithTerragrunt(configYaml *DiggerConfigYaml, parsing
851857
diggerProject := &ProjectYaml{
852858
BlockName: blockName,
853859
Name: atlantisProject.Name,
860+
Alias: atlantisProject.Alias,
854861
Dir: projectDir,
855862
Layer: &executionOrderGroup,
856863
Workspace: atlantisProject.Workspace,

0 commit comments

Comments
 (0)