@@ -25,32 +25,26 @@ data "local_file" "users" {
25
25
filename = " ${ path . module } /users.json"
26
26
}
27
27
28
- locals {
29
- users = jsondecode (data. local_file . users . content )
30
- }
31
-
32
28
data "local_file" "teams" {
33
29
filename = " ${ path . module } /teams.json"
34
30
}
35
31
36
- locals {
37
- teams = jsondecode (data. local_file . teams . content )
38
- }
39
32
data "local_file" "repos" {
40
33
filename = " ${ path . module } /repos.json"
41
34
}
42
35
43
- locals {
44
- repos = jsondecode (data. local_file . repos . content )
45
- }
46
36
data "local_file" "repo_permissions" {
47
37
filename = " ${ path . module } /repo_permissions.json"
48
38
}
49
39
50
40
locals {
41
+ users = jsondecode (data. local_file . users . content )
42
+ teams = jsondecode (data. local_file . teams . content )
43
+ repos = jsondecode (data. local_file . repos . content )
51
44
repo_permissions = jsondecode (data. local_file . repo_permissions . content )
52
45
}
53
46
47
+
54
48
55
49
resource "github_organization_settings" "org_settings" {
56
50
billing_email = " [email protected] "
@@ -130,20 +124,32 @@ resource "github_team_repository" "team_repos" {
130
124
}
131
125
132
126
127
+ resource "github_branch" "main" {
128
+ for_each = { for repo in local . repos : repo . name => repo }
129
+
130
+ repository = each. value . name
131
+ branch = " main"
132
+ }
133
+
134
+ resource "github_branch_default" "default" {
135
+ for_each = { for repo in local . repos : repo . name => repo }
136
+
137
+ repository = each. value . name
138
+ branch = " main"
139
+ }
140
+
133
141
# main branch must have Reviews
134
- resource "github_organization_ruleset " "review_ruleset" {
135
- name = " restrict-repo-deletion "
142
+ resource "github_repository_ruleset " "review_ruleset" {
143
+ name = " require_reviews "
136
144
target = " branch"
145
+ for_each = { for repo in local . repos : repo . name => repo }
137
146
147
+ repository = each. value . name
138
148
enforcement = " active"
139
149
140
150
conditions {
141
151
ref_name {
142
- include = [ " main" , " deploy" ]
143
- exclude = []
144
- }
145
- repository_name {
146
- include = [" ~ALL" ]
152
+ include = [ " ~DEFAULT_BRANCH" ]
147
153
exclude = []
148
154
}
149
155
}
0 commit comments