-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathteams.tf
47 lines (38 loc) · 1.12 KB
/
teams.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
# Create teams from the contents of "teams.csv"
resource "github_team" "all" {
for_each = {
for team in csvdecode(file("teams.csv")) :
team.name => team
}
name = each.value.name
description = each.value.description
privacy = each.value.privacy
}
# Populate team members based on the csv files in the team-members directory.
resource "github_team_membership" "members" {
for_each = { for tm in local.team_members : tm.name => tm }
team_id = each.value.team_id
username = each.value.username
role = each.value.role
depends_on = [
github_team.all
]
}
# This creates an "all-members" team containing all organization members.
resource "github_team" "all-members" {
name = "all-members"
description = "All organization members"
privacy = "closed"
}
resource "github_team_membership" "all-members" {
for_each = {
for member in csvdecode(file("members.csv")) :
member.username => member
}
team_id = "all-members"
role = each.value.role == "admin" ? "maintainer" : "member"
username = each.value.username
depends_on = [
github_team.all-members
]
}