Skip to content

Commit e869d13

Browse files
committed
fix: add custom repository roles support
1 parent dc52c4d commit e869d13

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

main.tf

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -378,12 +378,19 @@ resource "github_repository_collaborators" "default" {
378378
}
379379

380380
locals {
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+
399408
data "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

Comments
 (0)