-
Notifications
You must be signed in to change notification settings - Fork 0
/
github-app.tf
43 lines (39 loc) · 1.03 KB
/
github-app.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
locals {
repository_links = flatten([
for repo_object in var.repositories : [
for team_name, team_permission in repo_object["teams"] :
{
repository_name = repo_object["name"]
team_name = team_name
team_permission = team_permission
}
]
])
repository_link_map = {
for link_map in local.repository_links :
"${link_map.repository_name}-${link_map.team_name}" => link_map
}
}
resource "github_repository" "this" {
for_each = {
for team in var.repositories :
team["name"] => team
}
name = each.key
description = each.value.description
}
resource "github_team" "this" {
for_each = {
for team in var.teams :
team["name"] => team
}
name = each.key
description = each.value.description
privacy = "closed"
}
resource "github_team_repository" "this" {
for_each = local.repository_link_map
repository = each.value.repository_name
team_id = github_team.this[each.value.team_name].id
permission = each.value.team_permission
}