Skip to content

Commit 7846436

Browse files
authored
fix: inherited maintainer & member (#6)
* fix: inherited maintainer & member * fix: inherited maintainer & member
1 parent 994c3d5 commit 7846436

File tree

4 files changed

+58
-28
lines changed

4 files changed

+58
-28
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,3 +35,4 @@ override.tf.json
3535
# Ignore CLI configuration files
3636
.terraformrc
3737
terraform.rc
38+
.terraform.lock.hcl

README.md

Lines changed: 10 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ Map of organization members with their roles
101101

102102
```hcl
103103
module "github_teams" {
104-
source = "./terraform/github/teams"
104+
source = "./terraform-github-teams"
105105
106106
organization = "kitabisa"
107107
@@ -130,11 +130,11 @@ module "github_teams" {
130130
```hcl
131131
module "github_teams" {
132132
source = "./terraform-github-teams"
133-
133+
134134
organization = "kitabisa"
135135
136136
teams = {
137-
engineering = {
137+
engineer = {
138138
platform = {
139139
devops = {
140140
description = "DevOps Team"
@@ -147,34 +147,26 @@ module "github_teams" {
147147
maintainers = ["eve"]
148148
}
149149
}
150+
150151
backend = {
151152
api = {
152153
members = ["frank", "grace"]
154+
inherit_members_from = [
155+
"engineer/platform/sre",
156+
]
153157
}
154158
data = {
155159
members = ["henry"]
156160
}
157161
}
158-
# All team (inherits members from all sub-teams)
159-
all = {
160-
description = "All Platform Engineers"
161-
inherit_members_from = [
162-
"engineering/platform/devops",
163-
"engineering/platform/sre",
164-
"engineering/platform/api",
165-
"engineering/platform/data"
166-
]
167-
}
168-
# Leadership team (inherits only maintainers)
162+
169163
leads = {
170-
description = "Platform Leadership"
171164
inherit_maintainers_from = [
172-
"engineering/platform/devops",
173-
"engineering/platform/sre"
165+
"engineer/platform",
166+
"engineer/backend"
174167
]
175168
}
176169
}
177-
non-engineering = {}
178170
}
179171
180172
org_members = {

main.tf

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ locals {
2323
name = l2_key
2424
value = l2_val
2525
}
26-
if l2_key != "description" && l2_key != "privacy" && l2_key != "members" && l2_key != "maintainers" && try(l2_val != null && length(keys(l2_val)) > 0, false)
26+
if l2_key != "description" && l2_key != "privacy" && l2_key != "members" && l2_key != "maintainers" && l2_key != "inherit_members_from" && l2_key != "inherit_maintainers_from" && try(l2_val != null && length(keys(l2_val)) > 0, false)
2727
]
2828
])
2929

@@ -43,7 +43,7 @@ locals {
4343
name = l3_key
4444
value = l3_val
4545
}
46-
if l3_key != "parent_key" && l3_key != "name" && l3_key != "description" && l3_key != "privacy" && l3_key != "members" && l3_key != "maintainers"
46+
if l3_key != "parent_key" && l3_key != "name" && l3_key != "description" && l3_key != "privacy" && l3_key != "members" && l3_key != "maintainers" && l3_key != "inherit_members_from" && l3_key != "inherit_maintainers_from"
4747
]
4848
])
4949

@@ -62,8 +62,8 @@ locals {
6262
name = l4_key
6363
value = l4_val
6464
}
65-
if l4_key != "parent_key" && l4_key != "name" && l4_key != "description" && l4_key != "privacy" && l4_key != "members" && l4_key != "maintainers"
66-
&& can(length(keys(l4_val)))
65+
if l4_key != "parent_key" && l4_key != "name" && l4_key != "description" && l4_key != "privacy" && l4_key != "members" && l4_key != "maintainers" && l4_key != "inherit_members_from" && l4_key != "inherit_maintainers_from"
66+
&& can(length(keys(l4_val)))
6767
]
6868
])
6969

@@ -81,16 +81,16 @@ locals {
8181
level1_members_flat = flatten([
8282
for l1_key, l1_val in local.level1_teams : concat(
8383
[for member in try(l1_val.members, []) : {
84-
team_key = l1_key
84+
team_key = l1_key
8585
team_id_ref = "github_team.level1[\"${l1_key}\"].id"
86-
username = member
87-
role = "member"
86+
username = member
87+
role = "member"
8888
}],
8989
[for maintainer in try(l1_val.maintainers, []) : {
90-
team_key = l1_key
90+
team_key = l1_key
9191
team_id_ref = "github_team.level1[\"${l1_key}\"].id"
92-
username = maintainer
93-
role = "maintainer"
92+
username = maintainer
93+
role = "maintainer"
9494
}]
9595
)
9696
])

terraform.tfvars.example

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
organization = "kitabisa"
2+
3+
teams = {
4+
engineer = {
5+
platform = {
6+
devops = {
7+
description = "DevOps Team"
8+
privacy = "closed"
9+
members = ["alice", "bob"]
10+
maintainers = ["charlie"]
11+
}
12+
sre = {
13+
members = ["david"]
14+
maintainers = ["eve"]
15+
}
16+
}
17+
18+
backend = {
19+
api = {
20+
members = ["frank", "grace"]
21+
inherit_members_from = [
22+
"engineer/platform/sre",
23+
]
24+
}
25+
data = {
26+
members = ["henry"]
27+
}
28+
}
29+
30+
leads = {
31+
inherit_maintainers_from = [
32+
"engineer/platform",
33+
"engineer/backend"
34+
]
35+
}
36+
}
37+
}

0 commit comments

Comments
 (0)