-
Notifications
You must be signed in to change notification settings - Fork 949
[BUG]: github_organization_ruleset doesn't work with push rulesets #2929
Copy link
Copy link
Closed
Labels
Status: TriageThis is being looked at and prioritizedThis is being looked at and prioritizedType: BugSomething isn't working as documentedSomething isn't working as documented
Description
Expected Behavior
github_organization_ruleset should support push rulesets but the github provider (v6.8.3) fails.
using the exact example from the documentation:
https://registry.terraform.io/providers/integrations/github/latest/docs/resources/organization_ruleset
# Example with push ruleset
resource "github_organization_ruleset" "example_push" {
name = "example_push"
target = "push"
enforcement = "active"
conditions {
ref_name {
include = ["~ALL"]
exclude = []
}
repository_name {
include = ["~ALL"]
exclude = []
}
}
rules {
file_path_restriction {
restricted_file_paths = [".github/workflows/*", "*.env"]
}
max_file_size {
max_file_size = 104857600 # 100 MB in bytes
}
max_file_path_length {
max_file_path_length = 255
}
file_extension_restriction {
restricted_file_extensions = ["*.exe", "*.dll", "*.so"]
}
}
}should create a new push ruleset.
Actual Behavior
instead it causes an error or the provider crashes:
│ Error: POST https://api.github.com/orgs/xxx/rulesets: 422 Validation Failed [{Resource: Field: Code: Message:Target ref_name is not supported for push rulesets}]
removing the ref_name object from the condition causes the provider to crash:
Stack trace from the terraform-provider-github_v6.8.3 plugin:
panic: interface conversion: interface {} is nil, not map[string]interface {}
goroutine 52 [running]:
github.com/integrations/terraform-provider-github/v6/github.expandConditions({0xc000559d70, 0xf35f06?, 0x0?}, 0x1)
github.com/integrations/terraform-provider-github/v6/github/respository_rules_utils.go:105 +0xae8
github.com/integrations/terraform-provider-github/v6/github.resourceGithubRulesetObject(0xc0001fde00, {0xc0003f82c0, 0x10})
github.com/integrations/terraform-provider-github/v6/github/respository_rules_utils.go:32 +0x27c
github.com/integrations/terraform-provider-github/v6/github.resourceGithubOrganizationRulesetCreate(0xc0001fde00, {0xd49780, 0xc0006da0c0})
github.com/integrations/terraform-provider-github/v6/github/resource_github_organization_ruleset.go:591 +0x5d
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).create(0x1096870?, {0x1096870?, 0xc000504ba0?}, 0xd?, {0xd49780?, 0xc0006da0c0?})
github.com/hashicorp/terraform-plugin-sdk/v2@v2.34.0/helper/schema/resource.go:794 +0x15f
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).Apply(0xc00037b500, {0x1096870, 0xc000504ba0}, 0xc00050a9c0, 0xc0001fdc80, {0xd49780, 0xc0006da0c0})
github.com/hashicorp/terraform-plugin-sdk/v2@v2.34.0/helper/schema/resource.go:937 +0xa89
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*GRPCProviderServer).ApplyResourceChange(0xc00034c660, {0x1096870?, 0xc000504ae0?}, 0xc0002356d0)
github.com/hashicorp/terraform-plugin-sdk/v2@v2.34.0/helper/schema/grpc_provider.go:1153 +0xd5c
github.com/hashicorp/terraform-plugin-go/tfprotov5/tf5server.(*server).ApplyResourceChange(0xc000249900, {0x1096870?, 0xc000504120?}, 0xc0001f6ee0)
github.com/hashicorp/terraform-plugin-go@v0.23.0/tfprotov5/tf5server/server.go:865 +0x3d0
github.com/hashicorp/terraform-plugin-go/tfprotov5/internal/tfplugin5._Provider_ApplyResourceChange_Handler({0xef6da0, 0xc000249900}, {0x1096870, 0xc000504120}, 0xc0001fd180, 0x0)
github.com/hashicorp/terraform-plugin-go@v0.23.0/tfprotov5/internal/tfplugin5/tfplugin5_grpc.pb.go:518 +0x1a6
google.golang.org/grpc.(*Server).processUnaryRPC(0xc000173000, {0x1096870, 0xc000504090}, {0x109b280, 0xc00025a300}, 0xc0004fd440, 0xc000293110, 0x173c578, 0x0)
google.golang.org/grpc@v1.63.2/server.go:1369 +0xdf8
google.golang.org/grpc.(*Server).handleStream(0xc000173000, {0x109b280, 0xc00025a300}, 0xc0004fd440)
google.golang.org/grpc@v1.63.2/server.go:1780 +0xe8b
google.golang.org/grpc.(*Server).serveStreams.func2.1()
google.golang.org/grpc@v1.63.2/server.go:1019 +0x8b
created by google.golang.org/grpc.(*Server).serveStreams.func2 in goroutine 15
google.golang.org/grpc@v1.63.2/server.go:1030 +0x125
Error: The terraform-provider-github_v6.8.3 plugin crashed!
This is always indicative of a bug within the plugin. It would be immensely
helpful if you could report the crash with the plugin's maintainers so that it
can be fixed. The output above should help diagnose the issue.
Terraform Version
OpenTofu v1.10.6
GitHub Provider v6.8.3
Affected Resource(s)
- github_organization_ruleset
Terraform Configuration Files
# Example with push ruleset
resource "github_organization_ruleset" "example_push" {
name = "example_push"
target = "push"
enforcement = "active"
conditions {
ref_name {
include = ["~ALL"]
exclude = []
}
repository_name {
include = ["~ALL"]
exclude = []
}
}
rules {
file_path_restriction {
restricted_file_paths = [".github/workflows/*", "*.env"]
}
max_file_size {
max_file_size = 104857600 # 100 MB in bytes
}
max_file_path_length {
max_file_path_length = 255
}
file_extension_restriction {
restricted_file_extensions = ["*.exe", "*.dll", "*.so"]
}
}
}Steps to Reproduce
No response
Debug Output
Panic Output
Code of Conduct
- I agree to follow this project's Code of Conduct
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Status: TriageThis is being looked at and prioritizedThis is being looked at and prioritizedType: BugSomething isn't working as documentedSomething isn't working as documented
Type
Projects
Status
Done