Skip to content

Commit 8751f3d

Browse files
authored
Add missing installation permissions (#1880)
Fixes: #1879.
1 parent 8b2866e commit 8751f3d

File tree

4 files changed

+203
-56
lines changed

4 files changed

+203
-56
lines changed

github/apps.go

Lines changed: 37 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -55,37 +55,44 @@ type InstallationTokenOptions struct {
5555
// InstallationPermissions lists the repository and organization permissions for an installation.
5656
//
5757
// Permission names taken from:
58-
// https://docs.github.com/en/free-pro-team@latest/rest/reference/apps/permissions/
59-
// https://developer.github.com/enterprise/v3/apps/permissions/
58+
// https://docs.github.com/en/[email protected]/rest/reference/apps#create-an-installation-access-token-for-an-app
59+
// https://docs.github.com/en/rest/reference/apps#create-an-installation-access-token-for-an-app
6060
type InstallationPermissions struct {
61-
Actions *string `json:"actions,omitempty"`
62-
Administration *string `json:"administration,omitempty"`
63-
Blocking *string `json:"blocking,omitempty"`
64-
Checks *string `json:"checks,omitempty"`
65-
Contents *string `json:"contents,omitempty"`
66-
ContentReferences *string `json:"content_references,omitempty"`
67-
Deployments *string `json:"deployments,omitempty"`
68-
Emails *string `json:"emails,omitempty"`
69-
Followers *string `json:"followers,omitempty"`
70-
Issues *string `json:"issues,omitempty"`
71-
Metadata *string `json:"metadata,omitempty"`
72-
Members *string `json:"members,omitempty"`
73-
OrganizationAdministration *string `json:"organization_administration,omitempty"`
74-
OrganizationHooks *string `json:"organization_hooks,omitempty"`
75-
OrganizationPlan *string `json:"organization_plan,omitempty"`
76-
OrganizationPreReceiveHooks *string `json:"organization_pre_receive_hooks,omitempty"`
77-
OrganizationProjects *string `json:"organization_projects,omitempty"`
78-
OrganizationUserBlocking *string `json:"organization_user_blocking,omitempty"`
79-
Packages *string `json:"packages,omitempty"`
80-
Pages *string `json:"pages,omitempty"`
81-
PullRequests *string `json:"pull_requests,omitempty"`
82-
RepositoryHooks *string `json:"repository_hooks,omitempty"`
83-
RepositoryProjects *string `json:"repository_projects,omitempty"`
84-
RepositoryPreReceiveHooks *string `json:"repository_pre_receive_hooks,omitempty"`
85-
SingleFile *string `json:"single_file,omitempty"`
86-
Statuses *string `json:"statuses,omitempty"`
87-
TeamDiscussions *string `json:"team_discussions,omitempty"`
88-
VulnerabilityAlerts *string `json:"vulnerability_alerts,omitempty"`
61+
Actions *string `json:"actions,omitempty"`
62+
Administration *string `json:"administration,omitempty"`
63+
Blocking *string `json:"blocking,omitempty"`
64+
Checks *string `json:"checks,omitempty"`
65+
Contents *string `json:"contents,omitempty"`
66+
ContentReferences *string `json:"content_references,omitempty"`
67+
Deployments *string `json:"deployments,omitempty"`
68+
Emails *string `json:"emails,omitempty"`
69+
Environments *string `json:"environments,omitempty"`
70+
Followers *string `json:"followers,omitempty"`
71+
Issues *string `json:"issues,omitempty"`
72+
Metadata *string `json:"metadata,omitempty"`
73+
Members *string `json:"members,omitempty"`
74+
OrganizationAdministration *string `json:"organization_administration,omitempty"`
75+
OrganizationHooks *string `json:"organization_hooks,omitempty"`
76+
OrganizationPlan *string `json:"organization_plan,omitempty"`
77+
OrganizationPreReceiveHooks *string `json:"organization_pre_receive_hooks,omitempty"`
78+
OrganizationProjects *string `json:"organization_projects,omitempty"`
79+
OrganizationSecrets *string `json:"organization_secrets,omitempty"`
80+
OrganizationSelfHostedRunners *string `json:"organization_self_hosted_runners,omitempty"`
81+
OrganizationUserBlocking *string `json:"organization_user_blocking,omitempty"`
82+
Packages *string `json:"packages,omitempty"`
83+
Pages *string `json:"pages,omitempty"`
84+
PullRequests *string `json:"pull_requests,omitempty"`
85+
RepositoryHooks *string `json:"repository_hooks,omitempty"`
86+
RepositoryProjects *string `json:"repository_projects,omitempty"`
87+
RepositoryPreReceiveHooks *string `json:"repository_pre_receive_hooks,omitempty"`
88+
Secrets *string `json:"secrets,omitempty"`
89+
SecretScanningAlerts *string `json:"secret_scanning_alerts,omitempty"`
90+
SecurityEvents *string `json:"security_events,omitempty"`
91+
SingleFile *string `json:"single_file,omitempty"`
92+
Statuses *string `json:"statuses,omitempty"`
93+
TeamDiscussions *string `json:"team_discussions,omitempty"`
94+
VulnerabilityAlerts *string `json:"vulnerability_alerts,omitempty"`
95+
Workflows *string `json:"workflows,omitempty"`
8996
}
9097

9198
// Installation represents a GitHub Apps installation.

github/apps_test.go

Lines changed: 40 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ func TestAppsService_ListInstallations(t *testing.T) {
9494
"contents": "read",
9595
"content_references": "read",
9696
"deployments": "read",
97+
"environments": "read",
9798
"issues": "write",
9899
"metadata": "read",
99100
"members": "read",
@@ -102,17 +103,23 @@ func TestAppsService_ListInstallations(t *testing.T) {
102103
"organization_plan": "read",
103104
"organization_pre_receive_hooks": "write",
104105
"organization_projects": "read",
106+
"organization_secrets": "read",
107+
"organization_self_hosted_runners": "read",
105108
"organization_user_blocking": "write",
106109
"packages": "read",
107110
"pages": "read",
108111
"pull_requests": "write",
109112
"repository_hooks": "write",
110113
"repository_projects": "read",
111114
"repository_pre_receive_hooks": "read",
115+
"secrets": "read",
116+
"secret_scanning_alerts": "read",
117+
"security_events": "read",
112118
"single_file": "write",
113119
"statuses": "write",
114120
"team_discussions": "read",
115-
"vulnerability_alerts": "read"
121+
"vulnerability_alerts": "read",
122+
"workflows": "write"
116123
},
117124
"events": [
118125
"push",
@@ -141,31 +148,38 @@ func TestAppsService_ListInstallations(t *testing.T) {
141148
SingleFileName: String("config.yml"),
142149
RepositorySelection: String("selected"),
143150
Permissions: &InstallationPermissions{
144-
Actions: String("read"),
145-
Administration: String("read"),
146-
Checks: String("read"),
147-
Contents: String("read"),
148-
ContentReferences: String("read"),
149-
Deployments: String("read"),
150-
Issues: String("write"),
151-
Metadata: String("read"),
152-
Members: String("read"),
153-
OrganizationAdministration: String("write"),
154-
OrganizationHooks: String("write"),
155-
OrganizationPlan: String("read"),
156-
OrganizationPreReceiveHooks: String("write"),
157-
OrganizationProjects: String("read"),
158-
OrganizationUserBlocking: String("write"),
159-
Packages: String("read"),
160-
Pages: String("read"),
161-
PullRequests: String("write"),
162-
RepositoryHooks: String("write"),
163-
RepositoryProjects: String("read"),
164-
RepositoryPreReceiveHooks: String("read"),
165-
SingleFile: String("write"),
166-
Statuses: String("write"),
167-
TeamDiscussions: String("read"),
168-
VulnerabilityAlerts: String("read")},
151+
Actions: String("read"),
152+
Administration: String("read"),
153+
Checks: String("read"),
154+
Contents: String("read"),
155+
ContentReferences: String("read"),
156+
Deployments: String("read"),
157+
Environments: String("read"),
158+
Issues: String("write"),
159+
Metadata: String("read"),
160+
Members: String("read"),
161+
OrganizationAdministration: String("write"),
162+
OrganizationHooks: String("write"),
163+
OrganizationPlan: String("read"),
164+
OrganizationPreReceiveHooks: String("write"),
165+
OrganizationProjects: String("read"),
166+
OrganizationSecrets: String("read"),
167+
OrganizationSelfHostedRunners: String("read"),
168+
OrganizationUserBlocking: String("write"),
169+
Packages: String("read"),
170+
Pages: String("read"),
171+
PullRequests: String("write"),
172+
RepositoryHooks: String("write"),
173+
RepositoryProjects: String("read"),
174+
RepositoryPreReceiveHooks: String("read"),
175+
Secrets: String("read"),
176+
SecretScanningAlerts: String("read"),
177+
SecurityEvents: String("read"),
178+
SingleFile: String("write"),
179+
Statuses: String("write"),
180+
TeamDiscussions: String("read"),
181+
VulnerabilityAlerts: String("read"),
182+
Workflows: String("write")},
169183
Events: []string{"push", "pull_request"},
170184
CreatedAt: &date,
171185
UpdatedAt: &date,

github/github-accessors.go

Lines changed: 56 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

github/github-accessors_test.go

Lines changed: 70 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)