Skip to content

Commit 4209c8d

Browse files
committed
Refactor flattenRules and expandRules to use context
Signed-off-by: Timo Sand <timo.sand@f-secure.com>
1 parent a73dc0a commit 4209c8d

5 files changed

Lines changed: 20 additions & 25 deletions

github/resource_github_organization_ruleset.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -654,7 +654,7 @@ func resourceGithubOrganizationRulesetCreate(ctx context.Context, d *schema.Reso
654654
_ = d.Set("ruleset_id", ruleset.ID)
655655
_ = d.Set("node_id", ruleset.GetNodeID())
656656
_ = d.Set("etag", resp.Header.Get("ETag"))
657-
_ = d.Set("rules", flattenRules(ruleset.Rules, true))
657+
_ = d.Set("rules", flattenRules(ctx, ruleset.Rules, true))
658658

659659
tflog.Info(ctx, fmt.Sprintf("Created organization ruleset: %s/%s (ID: %d)", owner, name, *ruleset.ID), map[string]any{
660660
"owner": owner,
@@ -721,8 +721,8 @@ func resourceGithubOrganizationRulesetRead(ctx context.Context, d *schema.Resour
721721
_ = d.Set("target", ruleset.GetTarget())
722722
_ = d.Set("enforcement", ruleset.Enforcement)
723723
_ = d.Set("bypass_actors", flattenBypassActors(ruleset.BypassActors))
724-
_ = d.Set("conditions", flattenConditionsWithContext(ctx, ruleset.GetConditions(), true))
725-
_ = d.Set("rules", flattenRules(ruleset.Rules, true))
724+
_ = d.Set("conditions", flattenConditions(ctx, ruleset.GetConditions(), true))
725+
_ = d.Set("rules", flattenRules(ctx, ruleset.Rules, true))
726726
_ = d.Set("node_id", ruleset.GetNodeID())
727727
_ = d.Set("etag", resp.Header.Get("ETag"))
728728

github/resource_github_organization_ruleset_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -889,7 +889,7 @@ func TestOrganizationPushRulesetSupport(t *testing.T) {
889889
}
890890

891891
// Test flatten functionality (organization rulesets use org=true)
892-
flattenedResult := flattenRules(expandedRules, true)
892+
flattenedResult := flattenRules(t.Context(), expandedRules, true)
893893

894894
if len(flattenedResult) != 1 {
895895
t.Fatalf("Expected 1 flattened result, got %d", len(flattenedResult))

github/resource_github_repository_ruleset.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -657,7 +657,7 @@ func resourceGithubRepositoryRulesetCreate(ctx context.Context, d *schema.Resour
657657
_ = d.Set("ruleset_id", ruleset.ID)
658658
_ = d.Set("node_id", ruleset.GetNodeID())
659659
_ = d.Set("etag", resp.Header.Get("ETag"))
660-
_ = d.Set("rules", flattenRules(ruleset.Rules, false))
660+
_ = d.Set("rules", flattenRules(ctx, ruleset.Rules, false))
661661

662662
return nil
663663
}
@@ -704,8 +704,8 @@ func resourceGithubRepositoryRulesetRead(ctx context.Context, d *schema.Resource
704704
_ = d.Set("target", ruleset.GetTarget())
705705
_ = d.Set("enforcement", ruleset.Enforcement)
706706
_ = d.Set("bypass_actors", flattenBypassActors(ruleset.BypassActors))
707-
_ = d.Set("conditions", flattenConditions(ruleset.GetConditions(), false))
708-
_ = d.Set("rules", flattenRules(ruleset.Rules, false))
707+
_ = d.Set("conditions", flattenConditions(ctx, ruleset.GetConditions(), false))
708+
_ = d.Set("rules", flattenRules(ctx, ruleset.Rules, false))
709709
_ = d.Set("node_id", ruleset.GetNodeID())
710710
_ = d.Set("etag", resp.Header.Get("ETag"))
711711

github/util_rules.go

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package github
22

33
import (
44
"context"
5-
"log"
65
"reflect"
76
"sort"
87

@@ -219,11 +218,7 @@ func expandConditions(input []any, org bool) *github.RepositoryRulesetConditions
219218
return rulesetConditions
220219
}
221220

222-
func flattenConditions(conditions *github.RepositoryRulesetConditions, org bool) []any {
223-
return flattenConditionsWithContext(context.TODO(), conditions, org)
224-
}
225-
226-
func flattenConditionsWithContext(ctx context.Context, conditions *github.RepositoryRulesetConditions, org bool) []any {
221+
func flattenConditions(ctx context.Context, conditions *github.RepositoryRulesetConditions, org bool) []any {
227222
if conditions == nil || reflect.DeepEqual(conditions, &github.RepositoryRulesetConditions{}) {
228223
tflog.Debug(ctx, "Conditions are empty, returning empty list")
229224
return []any{}
@@ -537,7 +532,7 @@ func expandRules(input []any, org bool) *github.RepositoryRulesetRules {
537532
return rulesetRules
538533
}
539534

540-
func flattenRules(rules *github.RepositoryRulesetRules, org bool) []any {
535+
func flattenRules(ctx context.Context, rules *github.RepositoryRulesetRules, org bool) []any {
541536
if rules == nil {
542537
return []any{}
543538
}
@@ -582,7 +577,7 @@ func flattenRules(rules *github.RepositoryRulesetRules, org bool) []any {
582577
"required_review_thread_resolution": rules.PullRequest.RequiredReviewThreadResolution,
583578
"allowed_merge_methods": rules.PullRequest.AllowedMergeMethods,
584579
})
585-
log.Printf("[DEBUG] Flattened Pull Request rules slice: %#v", pullRequestSlice)
580+
tflog.Debug(ctx, "Flattened Pull Request rules slice", map[string]any{"pull_request": pullRequestSlice})
586581
rulesMap["pull_request"] = pullRequestSlice
587582
}
588583

github/util_rules_test.go

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ func TestFlattenRulesBasicRules(t *testing.T) {
5757
NonFastForward: &github.EmptyRuleParameters{},
5858
}
5959

60-
result := flattenRules(rules, false)
60+
result := flattenRules(t.Context(), rules, false)
6161

6262
if len(result) != 1 {
6363
t.Fatalf("Expected 1 element in result, got %d", len(result))
@@ -126,7 +126,7 @@ func TestFlattenRulesMaxFilePathLength(t *testing.T) {
126126
},
127127
}
128128

129-
result := flattenRules(rules, false)
129+
result := flattenRules(t.Context(), rules, false)
130130

131131
if len(result) != 1 {
132132
t.Fatalf("Expected 1 element in result, got %d", len(result))
@@ -167,7 +167,7 @@ func TestRoundTripMaxFilePathLength(t *testing.T) {
167167
}
168168

169169
// Flatten back to terraform format
170-
flattenedResult := flattenRules(expandedRules, false)
170+
flattenedResult := flattenRules(t.Context(), expandedRules, false)
171171

172172
if len(flattenedResult) != 1 {
173173
t.Fatalf("Expected 1 flattened result, got %d", len(flattenedResult))
@@ -224,7 +224,7 @@ func TestFlattenRulesMaxFileSize(t *testing.T) {
224224
},
225225
}
226226

227-
result := flattenRules(rules, false)
227+
result := flattenRules(t.Context(), rules, false)
228228

229229
if len(result) != 1 {
230230
t.Fatalf("Expected 1 element in result, got %d", len(result))
@@ -292,7 +292,7 @@ func TestFlattenRulesFileExtensionRestriction(t *testing.T) {
292292
},
293293
}
294294

295-
result := flattenRules(rules, false)
295+
result := flattenRules(t.Context(), rules, false)
296296

297297
if len(result) != 1 {
298298
t.Fatalf("Expected 1 element in result, got %d", len(result))
@@ -372,7 +372,7 @@ func TestCompletePushRulesetSupport(t *testing.T) {
372372
}
373373

374374
// Flatten back to terraform format
375-
flattenedResult := flattenRules(expandedRules, false)
375+
flattenedResult := flattenRules(t.Context(), expandedRules, false)
376376

377377
if len(flattenedResult) != 1 {
378378
t.Fatalf("Expected 1 flattened result, got %d", len(flattenedResult))
@@ -452,7 +452,7 @@ func TestCopilotCodeReviewRoundTrip(t *testing.T) {
452452
}
453453

454454
// Flatten back to terraform format
455-
flattenedResult := flattenRules(expandedRules, false)
455+
flattenedResult := flattenRules(t.Context(), expandedRules, false)
456456

457457
if len(flattenedResult) != 1 {
458458
t.Fatalf("Expected 1 flattened result, got %d", len(flattenedResult))
@@ -485,7 +485,7 @@ func TestFlattenConditions_PushRuleset_WithRepositoryNameOnly(t *testing.T) {
485485
},
486486
}
487487

488-
result := flattenConditions(conditions, true) // org=true for organization rulesets
488+
result := flattenConditions(t.Context(), conditions, true) // org=true for organization rulesets
489489

490490
if len(result) != 1 {
491491
t.Fatalf("Expected 1 conditions block, got %d", len(result))
@@ -531,7 +531,7 @@ func TestFlattenConditions_BranchRuleset_WithRefNameAndRepositoryName(t *testing
531531
},
532532
}
533533

534-
result := flattenConditions(conditions, true) // org=true for organization rulesets
534+
result := flattenConditions(t.Context(), conditions, true) // org=true for organization rulesets
535535

536536
if len(result) != 1 {
537537
t.Fatalf("Expected 1 conditions block, got %d", len(result))
@@ -599,7 +599,7 @@ func TestFlattenConditions_PushRuleset_WithRepositoryIdOnly(t *testing.T) {
599599
},
600600
}
601601

602-
result := flattenConditions(conditions, true) // org=true for organization rulesets
602+
result := flattenConditions(t.Context(), conditions, true) // org=true for organization rulesets
603603

604604
if len(result) != 1 {
605605
t.Fatalf("Expected 1 conditions block, got %d", len(result))

0 commit comments

Comments
 (0)