Skip to content

Commit cf15eae

Browse files
authored
fix: Correct ruleset pr allowed merge method logic (#3128)
Signed-off-by: Steve Hipwell <[email protected]>
1 parent fe26d26 commit cf15eae

4 files changed

Lines changed: 8 additions & 2 deletions

github/resource_github_organization_ruleset.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,7 @@ func resourceGithubOrganizationRuleset() *schema.Resource {
201201
"allowed_merge_methods": {
202202
Type: schema.TypeList,
203203
Optional: true,
204+
Computed: true,
204205
MinItems: 1,
205206
Description: "Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled.",
206207
Elem: &schema.Schema{
@@ -644,6 +645,7 @@ func resourceGithubOrganizationRulesetCreate(ctx context.Context, d *schema.Reso
644645
_ = d.Set("ruleset_id", ruleset.ID)
645646
_ = d.Set("node_id", ruleset.GetNodeID())
646647
_ = d.Set("etag", resp.Header.Get("ETag"))
648+
_ = d.Set("rules", flattenRules(ruleset.Rules, true))
647649

648650
tflog.Info(ctx, fmt.Sprintf("Created organization ruleset: %s/%s (ID: %d)", owner, name, *ruleset.ID), map[string]any{
649651
"owner": owner,

github/resource_github_organization_ruleset_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ resource "github_organization_ruleset" "test" {
165165
resource.TestCheckResourceAttr("github_organization_ruleset.test", "bypass_actors.2.actor_id", "1"),
166166
resource.TestCheckResourceAttr("github_organization_ruleset.test", "bypass_actors.2.actor_type", "OrganizationAdmin"),
167167
resource.TestCheckResourceAttr("github_organization_ruleset.test", "bypass_actors.2.bypass_mode", "always"),
168+
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.pull_request.0.allowed_merge_methods.#", "3"),
168169
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.required_workflows.0.do_not_enforce_on_create", "true"),
169170
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.required_workflows.0.required_workflow.0.path", workflowFilePath),
170171
resource.TestCheckResourceAttr("github_organization_ruleset.test", "rules.0.required_code_scanning.0.required_code_scanning_tool.0.alerts_threshold", "errors"),

github/resource_github_repository_ruleset.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ func resourceGithubRepositoryRuleset() *schema.Resource {
192192
"allowed_merge_methods": {
193193
Type: schema.TypeList,
194194
Optional: true,
195+
Computed: true,
195196
MinItems: 1,
196197
Description: "Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled.",
197198
Elem: &schema.Schema{
@@ -654,6 +655,7 @@ func resourceGithubRepositoryRulesetCreate(ctx context.Context, d *schema.Resour
654655
_ = d.Set("ruleset_id", ruleset.ID)
655656
_ = d.Set("node_id", ruleset.GetNodeID())
656657
_ = d.Set("etag", resp.Header.Get("ETag"))
658+
_ = d.Set("rules", flattenRules(ruleset.Rules, false))
657659

658660
return nil
659661
}

github/resource_github_repository_ruleset_test.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ func TestAccGithubRepositoryRuleset(t *testing.T) {
1717
if testAccConf.authMode == enterprise {
1818
baseVisibility = "private" // Enable tests to run on GHEC EMU
1919
}
20+
2021
t.Run("create_branch_ruleset", func(t *testing.T) {
2122
randomID := acctest.RandStringFromCharSet(5, acctest.CharSetAlphaNum)
2223
repoName := fmt.Sprintf("%srepo-ruleset-%s", testResourcePrefix, randomID)
@@ -25,7 +26,6 @@ func TestAccGithubRepositoryRuleset(t *testing.T) {
2526
resource "github_repository" "test" {
2627
name = "%s"
2728
auto_init = true
28-
default_branch = "main"
2929
vulnerability_alerts = true
3030
visibility = "%s"
3131
}
@@ -135,6 +135,7 @@ resource "github_repository_ruleset" "test" {
135135
resource.TestCheckResourceAttr("github_repository_ruleset.test", "bypass_actors.1.actor_id", "5"),
136136
resource.TestCheckResourceAttr("github_repository_ruleset.test", "bypass_actors.1.actor_type", "RepositoryRole"),
137137
resource.TestCheckResourceAttr("github_repository_ruleset.test", "bypass_actors.1.bypass_mode", "always"),
138+
resource.TestCheckResourceAttr("github_repository_ruleset.test", "rules.0.pull_request.0.allowed_merge_methods.#", "3"),
138139
resource.TestCheckResourceAttr("github_repository_ruleset.test", "rules.0.required_code_scanning.0.required_code_scanning_tool.0.alerts_threshold", "errors"),
139140
resource.TestCheckResourceAttr("github_repository_ruleset.test", "rules.0.required_code_scanning.0.required_code_scanning_tool.0.security_alerts_threshold", "high_or_higher"),
140141
resource.TestCheckResourceAttr("github_repository_ruleset.test", "rules.0.required_code_scanning.0.required_code_scanning_tool.0.tool", "CodeQL"),
@@ -479,7 +480,7 @@ resource "github_repository_ruleset" "test" {
479480
auto_init = true
480481
default_branch = "main"
481482
vulnerability_alerts = true
482-
visibility = "%s"
483+
visibility = "%s"
483484
}
484485
485486
resource "github_repository_environment" "example" {

0 commit comments

Comments
 (0)