Skip to content

Commit 93bd89f

Browse files
authored
config option to disable digger/apply status check (#2128)
* config option to disable digger/apply status check * add status check
1 parent e295bfc commit 93bd89f

File tree

5 files changed

+73
-37
lines changed

5 files changed

+73
-37
lines changed

backend/controllers/projects_helpers.go

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"fmt"
66
"github.com/diggerhq/digger/backend/models"
77
"github.com/diggerhq/digger/backend/utils"
8+
"github.com/diggerhq/digger/libs/digger_config"
89
orchestrator_scheduler "github.com/diggerhq/digger/libs/scheduler"
910
"log/slog"
1011
)
@@ -26,6 +27,27 @@ func UpdateCheckStatusForBatch(gh utils.GithubClientProvider, batch *models.Digg
2627
return fmt.Errorf("error getting github service: %v", err)
2728
}
2829

30+
diggerYmlString := batch.DiggerConfig
31+
diggerConfigYml, err := digger_config.LoadDiggerConfigYamlFromString(diggerYmlString)
32+
if err != nil {
33+
slog.Error("Error loading Digger config from batch",
34+
"batchId", batch.ID,
35+
"error", err,
36+
)
37+
return fmt.Errorf("error loading digger config from batch: %v", err)
38+
}
39+
40+
config, _, err := digger_config.ConvertDiggerYamlToConfig(diggerConfigYml)
41+
if err != nil {
42+
slog.Error("Error converting Digger YAML to config",
43+
"batchId", batch.ID,
44+
"error", err,
45+
)
46+
return fmt.Errorf("error converting Digger YAML to config: %v", err)
47+
}
48+
49+
disableDiggerApplyStatusCheck := config.DisableDiggerApplyStatusCheck
50+
2951
isPlanBatch := batch.BatchType == orchestrator_scheduler.DiggerCommandPlan
3052

3153
serializedBatch, err := batch.MapToJsonStruct()
@@ -41,10 +63,15 @@ func UpdateCheckStatusForBatch(gh utils.GithubClientProvider, batch *models.Digg
4163
"newStatus", serializedBatch.ToStatusCheck())
4264
if isPlanBatch {
4365
prService.SetStatus(batch.PrNumber, serializedBatch.ToStatusCheck(), "digger/plan")
44-
prService.SetStatus(batch.PrNumber, "pending", "digger/apply")
66+
if disableDiggerApplyStatusCheck == false {
67+
prService.SetStatus(batch.PrNumber, "pending", "digger/apply")
68+
}
69+
4570
} else {
4671
prService.SetStatus(batch.PrNumber, "success", "digger/plan")
47-
prService.SetStatus(batch.PrNumber, serializedBatch.ToStatusCheck(), "digger/apply")
72+
if disableDiggerApplyStatusCheck == false {
73+
prService.SetStatus(batch.PrNumber, serializedBatch.ToStatusCheck(), "digger/apply")
74+
}
4875
}
4976
return nil
5077
}

docs/ce/howto/apply-on-merge.mdx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ You can configure Digger to run apply on merge with the following entries in `di
88

99
```
1010
disable_digger_apply_comment: true
11+
disable_digger_apply_status_check: true
1112
1213
projects:
1314
...

libs/digger_config/config.go

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -12,23 +12,24 @@ const AutomergeStrategyRebase AutomergeStrategy = "rebase"
1212
const DefaultBranchName = "__default__"
1313

1414
type DiggerConfig struct {
15-
ApplyAfterMerge bool
16-
AllowDraftPRs bool
17-
CommentRenderMode string
18-
DependencyConfiguration DependencyConfiguration
19-
DeletePriorComments bool
20-
DisableDiggerApplyComment bool
21-
RespectLayers bool
22-
PrLocks bool
23-
Projects []Project
24-
AutoMerge bool
25-
AutoMergeStrategy AutomergeStrategy
26-
Telemetry bool
27-
Workflows map[string]Workflow
28-
MentionDriftedProjectsInPR bool
29-
TraverseToNestedProjects bool
30-
Reporting ReporterConfig
31-
ReportTerraformOutputs bool
15+
ApplyAfterMerge bool
16+
AllowDraftPRs bool
17+
CommentRenderMode string
18+
DependencyConfiguration DependencyConfiguration
19+
DeletePriorComments bool
20+
DisableDiggerApplyComment bool
21+
DisableDiggerApplyStatusCheck bool
22+
RespectLayers bool
23+
PrLocks bool
24+
Projects []Project
25+
AutoMerge bool
26+
AutoMergeStrategy AutomergeStrategy
27+
Telemetry bool
28+
Workflows map[string]Workflow
29+
MentionDriftedProjectsInPR bool
30+
TraverseToNestedProjects bool
31+
Reporting ReporterConfig
32+
ReportTerraformOutputs bool
3233
}
3334

3435
type ReporterConfig struct {

libs/digger_config/converters.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -217,6 +217,12 @@ func ConvertDiggerYamlToConfig(diggerYaml *DiggerConfigYaml) (*DiggerConfig, gra
217217
diggerConfig.DisableDiggerApplyComment = false
218218
}
219219

220+
if diggerYaml.DisableDiggerApplyStatusCheck != nil {
221+
diggerConfig.DisableDiggerApplyStatusCheck = *diggerYaml.DisableDiggerApplyStatusCheck
222+
} else {
223+
diggerConfig.DisableDiggerApplyStatusCheck = false
224+
}
225+
220226
if diggerYaml.ReportTerraformOutputs != nil {
221227
diggerConfig.ReportTerraformOutputs = *diggerYaml.ReportTerraformOutputs
222228
} else {

libs/digger_config/yaml.go

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,24 +8,25 @@ import (
88
)
99

1010
type DiggerConfigYaml struct {
11-
ApplyAfterMerge *bool `yaml:"apply_after_merge"`
12-
RespectLayers *bool `yaml:"respect_layers"`
13-
AllowDraftPRs *bool `yaml:"allow_draft_prs"`
14-
DependencyConfiguration *DependencyConfigurationYaml `yaml:"dependency_configuration"`
15-
DeletePriorComments *bool `yaml:"delete_prior_comments"`
16-
DisableDiggerApplyComment *bool `yaml:"disable_digger_apply_comment"`
17-
PrLocks *bool `yaml:"pr_locks"`
18-
Projects []*ProjectYaml `yaml:"projects"`
19-
AutoMerge *bool `yaml:"auto_merge"`
20-
AutoMergeStrategy *string `yaml:"auto_merge_strategy"`
21-
CommentRenderMode *string `yaml:"comment_render_mode"`
22-
Workflows map[string]*WorkflowYaml `yaml:"workflows"`
23-
Telemetry *bool `yaml:"telemetry,omitempty"`
24-
GenerateProjectsConfig *GenerateProjectsConfigYaml `yaml:"generate_projects"`
25-
TraverseToNestedProjects *bool `yaml:"traverse_to_nested_projects"`
26-
MentionDriftedProjectsInPR *bool `yaml:"mention_drifted_projects_in_pr"`
27-
ReportTerraformOutputs *bool `yaml:"report_terraform_outputs"`
28-
Reporting *ReportingConfigYaml `yaml:"reporting"`
11+
ApplyAfterMerge *bool `yaml:"apply_after_merge"`
12+
RespectLayers *bool `yaml:"respect_layers"`
13+
AllowDraftPRs *bool `yaml:"allow_draft_prs"`
14+
DependencyConfiguration *DependencyConfigurationYaml `yaml:"dependency_configuration"`
15+
DeletePriorComments *bool `yaml:"delete_prior_comments"`
16+
DisableDiggerApplyComment *bool `yaml:"disable_digger_apply_comment"`
17+
DisableDiggerApplyStatusCheck *bool `yaml:"disable_digger_apply_status_check,omitempty"`
18+
PrLocks *bool `yaml:"pr_locks"`
19+
Projects []*ProjectYaml `yaml:"projects"`
20+
AutoMerge *bool `yaml:"auto_merge"`
21+
AutoMergeStrategy *string `yaml:"auto_merge_strategy"`
22+
CommentRenderMode *string `yaml:"comment_render_mode"`
23+
Workflows map[string]*WorkflowYaml `yaml:"workflows"`
24+
Telemetry *bool `yaml:"telemetry,omitempty"`
25+
GenerateProjectsConfig *GenerateProjectsConfigYaml `yaml:"generate_projects"`
26+
TraverseToNestedProjects *bool `yaml:"traverse_to_nested_projects"`
27+
MentionDriftedProjectsInPR *bool `yaml:"mention_drifted_projects_in_pr"`
28+
ReportTerraformOutputs *bool `yaml:"report_terraform_outputs"`
29+
Reporting *ReportingConfigYaml `yaml:"reporting"`
2930
}
3031

3132
type ReportingConfigYaml struct {

0 commit comments

Comments
 (0)