@@ -30,6 +30,8 @@ const (
30
30
DefaultParallelApplyEnabled = false
31
31
// DefaultParallelPlanEnabled is the default for the parallel plan setting.
32
32
DefaultParallelPlanEnabled = false
33
+ // DefaultDeleteSourceBranchOnMerge being false is the default setting whether or not to remove a source branch on merge
34
+ DefaultDeleteSourceBranchOnMerge = false
33
35
)
34
36
35
37
//go:generate pegomock generate -m --use-experimental-model-gen --package mocks -o mocks/mock_project_command_builder.go ProjectCommandBuilder
@@ -175,7 +177,7 @@ func (p *DefaultProjectCommandBuilder) buildPlanAllCommands(ctx *CommandContext,
175
177
for _ , mp := range matchingProjects {
176
178
ctx .Log .Debug ("determining config for project at dir: %q workspace: %q" , mp .Dir , mp .Workspace )
177
179
mergedCfg := p .GlobalCfg .MergeProjectCfg (ctx .Log , ctx .Pull .BaseRepo .ID (), mp , repoCfg )
178
- projCtxs = append (projCtxs , p .buildCtx (ctx , models .PlanCommand , mergedCfg , commentFlags , repoCfg .Automerge , repoCfg .ParallelApply , repoCfg .ParallelPlan , verbose , repoDir ))
180
+ projCtxs = append (projCtxs , p .buildCtx (ctx , models .PlanCommand , mergedCfg , commentFlags , repoCfg .Automerge , repoCfg .ParallelApply , repoCfg .ParallelPlan , verbose , repoDir , repoCfg . DeleteSourceBranchOnMerge ))
179
181
}
180
182
} else {
181
183
// If there is no config file, then we'll plan each project that
@@ -186,7 +188,7 @@ func (p *DefaultProjectCommandBuilder) buildPlanAllCommands(ctx *CommandContext,
186
188
for _ , mp := range modifiedProjects {
187
189
ctx .Log .Debug ("determining config for project at dir: %q" , mp .Path )
188
190
pCfg := p .GlobalCfg .DefaultProjCfg (ctx .Log , ctx .Pull .BaseRepo .ID (), mp .Path , DefaultWorkspace )
189
- projCtxs = append (projCtxs , p .buildCtx (ctx , models .PlanCommand , pCfg , commentFlags , DefaultAutomergeEnabled , DefaultParallelApplyEnabled , DefaultParallelPlanEnabled , verbose , repoDir ))
191
+ projCtxs = append (projCtxs , p .buildCtx (ctx , models .PlanCommand , pCfg , commentFlags , DefaultAutomergeEnabled , DefaultParallelApplyEnabled , DefaultParallelPlanEnabled , verbose , repoDir , DefaultDeleteSourceBranchOnMerge ))
190
192
}
191
193
}
192
194
@@ -321,12 +323,14 @@ func (p *DefaultProjectCommandBuilder) buildProjectCommandCtx(
321
323
automerge := DefaultAutomergeEnabled
322
324
parallelApply := DefaultParallelApplyEnabled
323
325
parallelPlan := DefaultParallelPlanEnabled
326
+ deleteBranchOnMerge := DefaultDeleteSourceBranchOnMerge
324
327
if repoCfgPtr != nil {
325
328
automerge = repoCfgPtr .Automerge
326
329
parallelApply = repoCfgPtr .ParallelApply
327
330
parallelPlan = repoCfgPtr .ParallelPlan
331
+ deleteBranchOnMerge = repoCfgPtr .DeleteSourceBranchOnMerge
328
332
}
329
- return p .buildCtx (ctx , cmd , projCfg , commentFlags , automerge , parallelApply , parallelPlan , verbose , repoDir ), nil
333
+ return p .buildCtx (ctx , cmd , projCfg , commentFlags , automerge , parallelApply , parallelPlan , verbose , repoDir , deleteBranchOnMerge ), nil
330
334
}
331
335
332
336
// getCfg returns the atlantis.yaml config (if it exists) for this project. If
@@ -418,7 +422,8 @@ func (p *DefaultProjectCommandBuilder) buildCtx(ctx *CommandContext,
418
422
parallelApplyEnabled bool ,
419
423
parallelPlanEnabled bool ,
420
424
verbose bool ,
421
- absRepoDir string ) models.ProjectCommandContext {
425
+ absRepoDir string ,
426
+ deleteBranchOnMerge bool ) models.ProjectCommandContext {
422
427
423
428
var steps []valid.Step
424
429
switch cmd {
@@ -435,27 +440,28 @@ func (p *DefaultProjectCommandBuilder) buildCtx(ctx *CommandContext,
435
440
}
436
441
437
442
return models.ProjectCommandContext {
438
- ApplyCmd : p .CommentBuilder .BuildApplyComment (projCfg .RepoRelDir , projCfg .Workspace , projCfg .Name ),
439
- BaseRepo : ctx .Pull .BaseRepo ,
440
- EscapedCommentArgs : p .escapeArgs (commentArgs ),
441
- AutomergeEnabled : automergeEnabled ,
442
- ParallelApplyEnabled : parallelApplyEnabled ,
443
- ParallelPlanEnabled : parallelPlanEnabled ,
444
- AutoplanEnabled : projCfg .AutoplanEnabled ,
445
- Steps : steps ,
446
- HeadRepo : ctx .HeadRepo ,
447
- Log : ctx .Log ,
448
- PullMergeable : ctx .PullMergeable ,
449
- Pull : ctx .Pull ,
450
- ProjectName : projCfg .Name ,
451
- ApplyRequirements : projCfg .ApplyRequirements ,
452
- RePlanCmd : p .CommentBuilder .BuildPlanComment (projCfg .RepoRelDir , projCfg .Workspace , projCfg .Name , commentArgs ),
453
- RepoRelDir : projCfg .RepoRelDir ,
454
- RepoConfigVersion : projCfg .RepoCfgVersion ,
455
- TerraformVersion : projCfg .TerraformVersion ,
456
- User : ctx .User ,
457
- Verbose : verbose ,
458
- Workspace : projCfg .Workspace ,
443
+ ApplyCmd : p .CommentBuilder .BuildApplyComment (projCfg .RepoRelDir , projCfg .Workspace , projCfg .Name ),
444
+ BaseRepo : ctx .Pull .BaseRepo ,
445
+ EscapedCommentArgs : p .escapeArgs (commentArgs ),
446
+ AutomergeEnabled : automergeEnabled ,
447
+ DeleteSourceBranchOnMerge : deleteBranchOnMerge ,
448
+ ParallelApplyEnabled : parallelApplyEnabled ,
449
+ ParallelPlanEnabled : parallelPlanEnabled ,
450
+ AutoplanEnabled : projCfg .AutoplanEnabled ,
451
+ Steps : steps ,
452
+ HeadRepo : ctx .HeadRepo ,
453
+ Log : ctx .Log ,
454
+ PullMergeable : ctx .PullMergeable ,
455
+ Pull : ctx .Pull ,
456
+ ProjectName : projCfg .Name ,
457
+ ApplyRequirements : projCfg .ApplyRequirements ,
458
+ RePlanCmd : p .CommentBuilder .BuildPlanComment (projCfg .RepoRelDir , projCfg .Workspace , projCfg .Name , commentArgs ),
459
+ RepoRelDir : projCfg .RepoRelDir ,
460
+ RepoConfigVersion : projCfg .RepoCfgVersion ,
461
+ TerraformVersion : projCfg .TerraformVersion ,
462
+ User : ctx .User ,
463
+ Verbose : verbose ,
464
+ Workspace : projCfg .Workspace ,
459
465
}
460
466
}
461
467
0 commit comments