-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathteams.tf
More file actions
104 lines (90 loc) · 3.71 KB
/
teams.tf
File metadata and controls
104 lines (90 loc) · 3.71 KB
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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
# see https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team
resource "github_team" "maintainers" {
name = "maintainers"
description = "Maintainers 🛠️"
create_default_maintainer = false
privacy = "closed"
}
# see https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team_settings
resource "github_team_settings" "maintainers" {
team_id = github_team.maintainers.id
review_request_delegation {
algorithm = "LOAD_BALANCE"
member_count = 1
notify = true
}
}
# add all members of `var.organization_owners` to the `maintainers` team
# see https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team_membership
resource "github_team_membership" "maintainers" {
# see https://developer.hashicorp.com/terraform/language/meta-arguments/for_each
for_each = {
for member in github_membership.organization :
member.username => member
}
team_id = github_team.maintainers.id
username = each.value.username
role = "maintainer"
}
# see https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team
resource "github_team" "contributors" {
name = "contributors"
description = "Contributors ❤️"
create_default_maintainer = false
privacy = "closed"
}
# add all members of `var.github_organization_members` to the `contributors` team
# see https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team_membership
resource "github_team_membership" "contributors" {
# see https://developer.hashicorp.com/terraform/language/meta-arguments/for_each
for_each = {
for member in github_membership.members :
member.username => member
}
team_id = github_team.contributors.id
username = each.value.username
role = "member"
}
# see https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team
resource "github_team" "reviewers" {
name = "reviewers"
description = "Reviewers 🔎"
create_default_maintainer = false
privacy = "closed"
}
# see https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team
resource "github_team" "reviewers_children" {
for_each = {
for team in var.reviewer_teams :
team.name_suffix => team
}
name = "${github_team.reviewers.name}/${each.value.name_suffix}"
description = "${each.value.description} Reviewers 🔎"
create_default_maintainer = false
parent_team_id = github_team.reviewers.id
privacy = each.value.privacy
}
# see https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team_settings
resource "github_team_settings" "reviewers_children" {
# see https://developer.hashicorp.com/terraform/language/meta-arguments/for_each
for_each = github_team.reviewers_children
team_id = each.value.id
# see https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team_settings#github-review-request-delegation-configuration
review_request_delegation {
algorithm = "LOAD_BALANCE"
member_count = 1
notify = true
}
}
## see https://registry.terraform.io/providers/integrations/github/latest/docs/resources/team_membership
#resource "github_team_membership" "reviewers" {
# # see https://developer.hashicorp.com/terraform/language/meta-arguments/for_each
# for_each = {
# for member in github_membership.members :
# member.username => member
# }
#
# team_id = github_team.maintainers.id
# username = each.value.username
# role = "maintainer"
#}