@@ -378,12 +378,19 @@ resource "github_repository_collaborators" "default" {
378378}
379379
380380locals {
381- organization_roles_map = {
381+ base_repository_roles_map = {
382382 " maintain" = " 2"
383383 " write" = " 4"
384384 " admin" = " 5"
385385 }
386-
386+ custom_repository_roles_map = {
387+ for role in data . github_organization_repository_roles . ruleset_rules_repository_roles . roles :
388+ role.name = > role.role_id
389+ }
390+ repository_roles_map = merge (
391+ local. base_repository_roles_map ,
392+ local. custom_repository_roles_map ,
393+ )
387394 ruleset_rules_teams = flatten ([
388395 for e , c in local . rulesets :
389396 c . bypass_actors != null ? compact ([for b in c . bypass_actors : b . actor_type == " Team" ? b . actor_id : null ]) : []
@@ -396,6 +403,8 @@ locals {
396403 }
397404}
398405
406+ data "github_organization_repository_roles" "ruleset_rules_repository_roles" {}
407+
399408data "github_team" "ruleset_rules_teams" {
400409 for_each = toset (local. ruleset_rules_teams )
401410
@@ -435,7 +444,7 @@ resource "github_repository_ruleset" "default" {
435444 content {
436445 bypass_mode = bypass_actors. value . bypass_mode
437446 actor_id = (bypass_actors. value . actor_type == " OrganizationAdmin" ? " 0" :
438- bypass_actors. value . actor_type == " RepositoryRole" ? local. organization_roles_map [bypass_actors . value . actor_id ] :
447+ bypass_actors. value . actor_type == " RepositoryRole" ? local. repository_roles_map [bypass_actors . value . actor_id ] :
439448 bypass_actors. value . actor_type == " Team" ? data. github_team . ruleset_rules_teams [bypass_actors . value . actor_id ]. id :
440449 bypass_actors. value . actor_id )
441450 actor_type = bypass_actors. value . actor_type
0 commit comments