Skip to content

Commit df4cf3c

Browse files
garnertbkfcampbell
andauthored
Expose additional attributes for GitHub organizations. (#1850)
Co-authored-by: Keegan Campbell <[email protected]>
1 parent d106f39 commit df4cf3c

File tree

3 files changed

+126
-0
lines changed

3 files changed

+126
-0
lines changed

github/data_source_github_organization.go

+90
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,78 @@ func dataSourceGithubOrganization() *schema.Resource {
6262
},
6363
},
6464
},
65+
"default_repository_permission": {
66+
Type: schema.TypeString,
67+
Computed: true,
68+
},
69+
"members_can_create_repositories": {
70+
Type: schema.TypeBool,
71+
Computed: true,
72+
},
73+
"two_factor_requirement_enabled": {
74+
Type: schema.TypeBool,
75+
Computed: true,
76+
},
77+
"members_allowed_repository_creation_type": {
78+
Type: schema.TypeString,
79+
Computed: true,
80+
},
81+
"members_can_create_public_repositories": {
82+
Type: schema.TypeBool,
83+
Computed: true,
84+
},
85+
"members_can_create_private_repositories": {
86+
Type: schema.TypeBool,
87+
Computed: true,
88+
},
89+
"members_can_create_internal_repositories": {
90+
Type: schema.TypeBool,
91+
Computed: true,
92+
},
93+
"members_can_create_pages": {
94+
Type: schema.TypeBool,
95+
Computed: true,
96+
},
97+
"members_can_create_public_pages": {
98+
Type: schema.TypeBool,
99+
Computed: true,
100+
},
101+
"members_can_create_private_pages": {
102+
Type: schema.TypeBool,
103+
Computed: true,
104+
},
105+
"members_can_fork_private_repositories": {
106+
Type: schema.TypeBool,
107+
Computed: true,
108+
},
109+
"web_commit_signoff_required": {
110+
Type: schema.TypeBool,
111+
Computed: true,
112+
},
113+
"advanced_security_enabled_for_new_repositories": {
114+
Type: schema.TypeBool,
115+
Computed: true,
116+
},
117+
"dependabot_alerts_enabled_for_new_repositories": {
118+
Type: schema.TypeBool,
119+
Computed: true,
120+
},
121+
"dependabot_security_updates_enabled_for_new_repositories": {
122+
Type: schema.TypeBool,
123+
Computed: true,
124+
},
125+
"dependency_graph_enabled_for_new_repositories": {
126+
Type: schema.TypeBool,
127+
Computed: true,
128+
},
129+
"secret_scanning_enabled_for_new_repositories": {
130+
Type: schema.TypeBool,
131+
Computed: true,
132+
},
133+
"secret_scanning_push_protection_enabled_for_new_repositories": {
134+
Type: schema.TypeBool,
135+
Computed: true,
136+
},
65137
},
66138
}
67139
}
@@ -162,6 +234,24 @@ func dataSourceGithubOrganizationRead(d *schema.ResourceData, meta interface{})
162234
d.Set("repositories", repoList)
163235
d.Set("members", members)
164236
d.Set("users", users)
237+
d.Set("two_factor_requirement_enabled", organization.GetTwoFactorRequirementEnabled())
238+
d.Set("default_repository_permission", organization.GetDefaultRepoPermission())
239+
d.Set("members_can_create_repositories", organization.GetMembersCanCreateRepos())
240+
d.Set("members_allowed_repository_creation_type", organization.GetMembersAllowedRepositoryCreationType())
241+
d.Set("members_can_create_public_repositories", organization.GetMembersCanCreatePublicRepos())
242+
d.Set("members_can_create_private_repositories", organization.GetMembersCanCreatePrivateRepos())
243+
d.Set("members_can_create_internal_repositories", organization.GetMembersCanCreateInternalRepos())
244+
d.Set("members_can_fork_private_repositories", organization.GetMembersCanCreatePrivateRepos())
245+
d.Set("web_commit_signoff_required", organization.GetWebCommitSignoffRequired())
246+
d.Set("members_can_create_pages", organization.GetMembersCanCreatePages())
247+
d.Set("members_can_create_public_pages", organization.GetMembersCanCreatePublicPages())
248+
d.Set("members_can_create_private_pages", organization.GetMembersCanCreatePrivatePages())
249+
d.Set("advanced_security_enabled_for_new_repositories", organization.GetAdvancedSecurityEnabledForNewRepos())
250+
d.Set("dependabot_alerts_enabled_for_new_repositories", organization.GetDependabotAlertsEnabledForNewRepos())
251+
d.Set("dependabot_security_updates_enabled_for_new_repositories", organization.GetDependabotSecurityUpdatesEnabledForNewRepos())
252+
d.Set("dependency_graph_enabled_for_new_repositories", organization.GetDependencyGraphEnabledForNewRepos())
253+
d.Set("secret_scanning_enabled_for_new_repositories", organization.GetSecretScanningEnabledForNewRepos())
254+
d.Set("secret_scanning_push_protection_enabled_for_new_repositories", organization.GetSecretScanningPushProtectionEnabledForNewRepos())
165255

166256
return nil
167257
}

github/data_source_github_organization_test.go

+18
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,24 @@ func TestAccGithubOrganizationDataSource(t *testing.T) {
2626
resource.TestCheckResourceAttrSet("data.github_organization.test", "plan"),
2727
resource.TestCheckResourceAttrSet("data.github_organization.test", "repositories.#"),
2828
resource.TestCheckResourceAttrSet("data.github_organization.test", "members.#"),
29+
resource.TestCheckResourceAttrSet("data.github_organization.test", "two_factor_requirement_enabled"),
30+
resource.TestCheckResourceAttrSet("data.github_organization.test", "default_repository_permission"),
31+
resource.TestCheckResourceAttrSet("data.github_organization.test", "members_can_create_repositories"),
32+
resource.TestCheckResourceAttrSet("data.github_organization.test", "members_allowed_repository_creation_type"),
33+
resource.TestCheckResourceAttrSet("data.github_organization.test", "members_can_create_public_repositories"),
34+
resource.TestCheckResourceAttrSet("data.github_organization.test", "members_can_create_private_repositories"),
35+
resource.TestCheckResourceAttrSet("data.github_organization.test", "members_can_create_internal_repositories"),
36+
resource.TestCheckResourceAttrSet("data.github_organization.test", "members_can_fork_private_repositories"),
37+
resource.TestCheckResourceAttrSet("data.github_organization.test", "web_commit_signoff_required"),
38+
resource.TestCheckResourceAttrSet("data.github_organization.test", "members_can_create_pages"),
39+
resource.TestCheckResourceAttrSet("data.github_organization.test", "members_can_create_public_pages"),
40+
resource.TestCheckResourceAttrSet("data.github_organization.test", "members_can_create_private_pages"),
41+
resource.TestCheckResourceAttrSet("data.github_organization.test", "advanced_security_enabled_for_new_repositories"),
42+
resource.TestCheckResourceAttrSet("data.github_organization.test", "dependabot_alerts_enabled_for_new_repositories"),
43+
resource.TestCheckResourceAttrSet("data.github_organization.test", "dependabot_security_updates_enabled_for_new_repositories"),
44+
resource.TestCheckResourceAttrSet("data.github_organization.test", "dependency_graph_enabled_for_new_repositories"),
45+
resource.TestCheckResourceAttrSet("data.github_organization.test", "secret_scanning_enabled_for_new_repositories"),
46+
resource.TestCheckResourceAttrSet("data.github_organization.test", "secret_scanning_push_protection_enabled_for_new_repositories"),
2947
)
3048

3149
testCase := func(t *testing.T, mode string) {

website/docs/d/organization.html.markdown

+18
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,21 @@ data "github_organization" "example" {
3333
* `login` - The members login
3434
* `email` - Publicly available email
3535
* `role` - Member role `ADMIN`, `MEMBER`
36+
* `two_factor_requirement_enabled` - Whether two-factor authentication is required for all members of the organization.
37+
* `default_repository_permission` - Default permission level members have for organization repositories.
38+
* `members_allowed_repository_creation_type` - The type of repository allowed to be created by members of the organization. Can be one of `ALL`, `PUBLIC`, `PRIVATE`, `NONE`.
39+
* `members_can_create_repositories` - Whether non-admin organization members can create repositories.
40+
* `members_can_create_internal_repositories` - Whether organization members can create internal repositories.
41+
* `members_can_create_private_repositories` - Whether organization members can create private repositories.
42+
* `members_can_create_public_repositories` - Whether organization members can create public repositories.
43+
* `members_can_create_pages` - Whether organization members can create pages sites.
44+
* `members_can_create_public_pages` - Whether organization members can create public pages sites.
45+
* `members_can_create_private_pages` - Whether organization members can create private pages sites.
46+
* `members_can_fork_private_repositories` - Whether organization members can create private repository forks.
47+
* `web_commit_signoff_required` - Whether organization members must sign all commits.
48+
* `advanced_security_enabled_for_new_repositories` - Whether advanced security is enabled for new repositories.
49+
* `dependabot_alerts_enabled_for_new_repositories` - Whether Dependabot alerts is automatically enabled for new repositories.
50+
* `dependabot_security_updates_enabled_for_new_repositories` - Whether Dependabot security updates is automatically enabled for new repositories.
51+
* `dependency_graph_enabled_for_new_repositories` - Whether dependency graph is automatically enabled for new repositories.
52+
* `secret_scanning_enabled_for_new_repositories` - Whether secret scanning is automatically enabled for new repositories.
53+
* `secret_scanning_push_protection_enabled_for_new_repositories` - Whether secret scanning push protection is automatically enabled for new repositories.

0 commit comments

Comments
 (0)