Skip to content

Commit 0de5d83

Browse files
fixed installtion and installation-repositories
1 parent 80133c2 commit 0de5d83

File tree

4 files changed

+93
-86
lines changed

4 files changed

+93
-86
lines changed

github/payload.go

Lines changed: 54 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,27 @@ type Repository struct {
9696
Watchers int64 `json:"watchers"`
9797
DefaultBranch string `json:"default_branch"`
9898
}
99-
99+
type Permissions struct {
100+
Administration string `json:"administration"`
101+
Checks string `json:"checks"`
102+
Contents string `json:"contents"`
103+
Deployments string `json:"deployments"`
104+
Issues string `json:"issues"`
105+
Members string `json:"members"`
106+
Metadata string `json:"metadata"`
107+
OrganizatonAdministration string `json:"organization_administration"`
108+
OrganizationHooks string `json:"organization_hooks"`
109+
OrganizationPlan string `json:"organization_plan"`
110+
OrganizationProjects string `json:"organization_projects"`
111+
OrganizationUserBlocking string `json:"organization_user_blocking"`
112+
Pages string `json:"pages"`
113+
PullRequests string `json:"pull_requests"`
114+
RepositoryHooks string `json:"repository_hooks"`
115+
RepositoryProjects string `json:"repository_projects"`
116+
Statuses string `json:"statuses"`
117+
TeamDiscussion string `json:"team_discussions"`
118+
VulnerabilityAlerts string `json:"vulnerability_alerts"`
119+
}
100120
type Installation struct {
101121
ID int64 `json:"id"`
102122
NodeID string `json:"node_id"`
@@ -149,34 +169,14 @@ type CheckApp struct {
149169
Type string `json:"type"`
150170
SiteAdmin bool `json:"site_admin"`
151171
} `json:"owner"`
152-
Name string `json:"name"`
153-
Description string `json:"description"`
154-
ExternalURL string `json:"external_url"`
155-
HtmlURL string `json:"html_url"`
156-
CreatedAt string `json:"created_at"`
157-
UpdatedAt string `json:"updated_at"`
158-
Permissions struct {
159-
Administration string `json:"administration"`
160-
Checks string `json:"checks"`
161-
Contents string `json:"contents"`
162-
Deployments string `json:"deployments"`
163-
Issues string `json:"issues"`
164-
Members string `json:"members"`
165-
Metadata string `json:"metadata"`
166-
OrganizatonAdministration string `json:"organization_administration"`
167-
OrganizationHooks string `json:"organization_hooks"`
168-
OrganizationPlan string `json:"organization_plan"`
169-
OrganizationProjects string `json:"organization_projects"`
170-
OrganizationUserBlocking string `json:"organization_user_blocking"`
171-
Pages string `json:"pages"`
172-
PullRequests string `json:"pull_requests"`
173-
RepositoryHooks string `json:"repository_hooks"`
174-
RepositoryProjects string `json:"repository_projects"`
175-
Statuses string `json:"statuses"`
176-
TeamDiscussion string `json:"team_discussions"`
177-
VulnerabilityAlerts string `json:"vulnerability_alerts"`
178-
} `json:"permissions"`
179-
Events []string `json:"events"` //TODO: check
172+
Name string `json:"name"`
173+
Description string `json:"description"`
174+
ExternalURL string `json:"external_url"`
175+
HtmlURL string `json:"html_url"`
176+
CreatedAt string `json:"created_at"`
177+
UpdatedAt string `json:"updated_at"`
178+
Permissions Permissions `json:"permissions"`
179+
Events []string `json:"events"` //TODO: check
180180
}
181181
type CheckRunPayload struct {
182182
Action string `json:"action"`
@@ -738,8 +738,7 @@ type GollumPayload struct {
738738
type InstallationPayload struct {
739739
Action string `json:"action"`
740740
Installation struct {
741-
ID int64 `json:"id"`
742-
NodeID string `json:"node_id"`
741+
ID int64 `json:"id"`
743742
Account struct {
744743
Login string `json:"login"`
745744
ID int64 `json:"id"`
@@ -767,22 +766,19 @@ type InstallationPayload struct {
767766
AppID int `json:"app_id"`
768767
TargetID int `json:"target_id"`
769768
TargetType string `json:"target_type"`
770-
Permissions struct {
771-
Issues string `json:"issues"`
772-
Metadata string `json:"metadata"`
773-
PullRequests string `json:"pull_requests"`
774-
RepositoryProjects string `json:"repository_projects"`
775-
} `json:"permissions"`
776-
Events []string `json:"events"`
777-
CreatedAt int64 `json:"created_at"`
778-
UpdatedAt int64 `json:"updated_at"`
779-
SingleFileName *string `json:"single_file_name"`
769+
//TODO check, assuming installation permissions are the same as those defined in
770+
//App object for CheckRun and CheckSuite
771+
Permissions Permissions `json:"permissions"`
772+
Events []string `json:"events"`
773+
CreatedAt int64 `json:"created_at"`
774+
UpdatedAt int64 `json:"updated_at"`
775+
SingleFileName *string `json:"single_file_name"`
780776
} `json:"installation"`
781777
Repositories []struct {
782778
ID int64 `json:"id"`
783-
NodeID string `json:"node_id"`
784779
Name string `json:"name"`
785780
FullName string `json:"full_name"`
781+
Private bool `json:"private"`
786782
} `json:"repositories"`
787783
Sender struct {
788784
Login string `json:"login"`
@@ -808,10 +804,10 @@ type InstallationPayload struct {
808804

809805
// InstallationRepositoriesPayload contains the information for GitHub's installation_repositories hook events
810806
type InstallationRepositoriesPayload struct {
811-
Action string `json:"action"`
812-
Installation struct {
813-
ID int64 `json:"id"`
814-
NodeID string `json:"node_id"`
807+
Action string `json:"action"`
808+
RepositorySelection string `json:"repository_selection"`
809+
Installation struct {
810+
ID int64 `json:"id"`
815811
Account struct {
816812
Login string `json:"login"`
817813
ID int64 `json:"id"`
@@ -832,28 +828,18 @@ type InstallationRepositoriesPayload struct {
832828
Type string `json:"type"`
833829
SiteAdmin bool `json:"site_admin"`
834830
} `json:"account"`
835-
RepositorySelection string `json:"repository_selection"`
836-
AccessTokensURL string `json:"access_tokens_url"`
837-
RepositoriesURL string `json:"repositories_url"`
838-
HTMLURL string `json:"html_url"`
839-
AppID int `json:"app_id"`
840-
TargetID int `json:"target_id"`
841-
TargetType string `json:"target_type"`
842-
Permissions struct {
843-
Issues string `json:"issues"`
844-
Metadata string `json:"metadata"`
845-
PullRequests string `json:"pull_requests"`
846-
RepositoryProjects string `json:"repository_projects"`
847-
VulnerabilityAlerts string `json:"vulnerability_alerts"`
848-
Statuses string `json:"statuses"`
849-
Administration string `json:"administration"`
850-
Deployments string `json:"deployments"`
851-
Contents string `json:"contents"`
852-
} `json:"permissions"`
853-
Events []string `json:"events"`
854-
CreatedAt int64 `json:"created_at"`
855-
UpdatedAt int64 `json:"updated_at"`
856-
SingleFileName *string `json:"single_file_name"`
831+
RepositorySelection string `json:"repository_selection"`
832+
AccessTokensURL string `json:"access_tokens_url"`
833+
RepositoriesURL string `json:"repositories_url"`
834+
HTMLURL string `json:"html_url"`
835+
AppID int `json:"app_id"`
836+
TargetID int `json:"target_id"`
837+
TargetType string `json:"target_type"`
838+
Permissions Permissions `json:"permissions"`
839+
Events []string `json:"events"`
840+
CreatedAt int64 `json:"created_at"`
841+
UpdatedAt int64 `json:"updated_at"`
842+
SingleFileName *string `json:"single_file_name"`
857843
} `json:"installation"`
858844
RepositoriesAdded []struct {
859845
ID int64 `json:"id"`

github/payload_test.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,16 @@ func TestPayloads(t *testing.T) {
7474
filename: "gollum.json",
7575
typ: &GollumPayload{},
7676
},
77-
// {
78-
// name: "InstallationRepositoriesPayload",
79-
// filename: "installation-repositories.json",
80-
// typ: &InstallationRepositoriesPayload{},
81-
// },
77+
{
78+
name: "InstallationPayload",
79+
filename: "installation.json",
80+
typ: &InstallationPayload{},
81+
},
82+
{
83+
name: "InstallationRepositoriesPayload",
84+
filename: "installation-repositories.json",
85+
typ: &InstallationRepositoriesPayload{},
86+
},
8287
// {
8388
// name: "IssueCommentPayload",
8489
// filename: "issue-comment.json",
@@ -245,7 +250,7 @@ func TestSingle(t *testing.T) {
245250
},
246251
}
247252
}
248-
tests := createTest("installation.json", &InstallationPayload{}, &InstallationPayload{})
253+
tests := createTest("issue-comment.json", &IssueCommentPayload{}, &IssueCommentPayload{})
249254
for _, tt := range tests {
250255
tc := tt
251256
t.Run(tt.name, func(t *testing.T) {

tmp/installation-repositories.json

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,16 @@
4141
"contents": "write",
4242
"checks": "write",
4343
"metadata": "read",
44-
"vulnerability_alerts": "read"
44+
"vulnerability_alerts": "read",
45+
"members": "read",
46+
"organization_administration": "read",
47+
"organization_hooks": "read",
48+
"organization_plan": "read",
49+
"organization_projects": "read",
50+
"organization_user_blocking": "read",
51+
"team_discussions": "read"
4552
},
46-
"events": [
47-
48-
],
53+
"events": [],
4954
"created_at": 1557933591,
5055
"updated_at": 1557933591,
5156
"single_file_name": null
@@ -60,9 +65,7 @@
6065
"private": false
6166
}
6267
],
63-
"repositories_removed": [
64-
65-
],
68+
"repositories_removed": [],
6669
"sender": {
6770
"login": "Codertocat",
6871
"id": 21031067,

tmp/installation.json

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,25 @@
3232
"permissions": {
3333
"metadata": "read",
3434
"contents": "read",
35-
"issues": "write"
35+
"issues": "write",
36+
"administration": "read",
37+
"checks": "read",
38+
"deployments": "read",
39+
"members": "read",
40+
"organization_administration": "read",
41+
"organization_hooks": "read",
42+
"organization_plan": "read",
43+
"organization_projects": "read",
44+
"organization_user_blocking": "read",
45+
"pages": "read",
46+
"pull_requests": "read",
47+
"repository_hooks": "read",
48+
"repository_projects": "read",
49+
"statuses": "read",
50+
"team_discussions": "read",
51+
"vulnerability_alerts": "read"
3652
},
37-
"events": [
38-
"push",
39-
"pull_request"
40-
],
53+
"events": ["push", "pull_request"],
4154
"created_at": 1525109898,
4255
"updated_at": 1525109899,
4356
"single_file_name": "config.yml"

0 commit comments

Comments
 (0)