-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmembership.tf
51 lines (43 loc) · 1.04 KB
/
membership.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
locals {
members = [
for member in var.members : {
username = member
role = "member"
}
]
maintainers = [
for maintainer in var.maintainers : {
username = maintainer
role = "maintainer"
}
]
membership = concat(local.members, local.maintainers)
unsynced_membership = (!var.membership_sync_enabled
? local.membership
: []
)
}
###################################################
# Membership of GitHub Organization Team
###################################################
resource "github_team_membership" "this" {
for_each = {
for member in local.unsynced_membership :
member.username => member
}
team_id = github_team.this.id
username = each.key
role = each.value.role
}
resource "github_team_members" "this" {
count = var.membership_sync_enabled ? 1 : 0
team_id = github_team.this.id
dynamic "members" {
for_each = local.membership
iterator = member
content {
username = member.value.username
role = member.value.role
}
}
}