-
Notifications
You must be signed in to change notification settings - Fork 1
/
github.specapi
284 lines (268 loc) · 8.23 KB
/
github.specapi
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
package org.specapi.github
api GithubAPI https://api.github.com {
/*
* List repositories for the authenticated user. Note that this
* does not include repositories owned by organizations which the
* user can access. You can list user organizations and list organization
* repositories separately.
*
* @param type Can be one of all, owner, public, private, member. Default: all
* @param sort Can be one of created, updated, pushed, full_name. Default: full_name
* @param direction Can be one of asc or desc. Default: when using full_name: asc; otherwise desc
*/
get listRepositories /user/repos {
params type:string, sort:string, direction:string
response Repository[]
response 401 ErrorMessage
}
/*
* List public repositories for the specified user.
*
* @param user the unique user name
* @param type Can be one of all, owner, public, private, member. Default: all
* @param sort Can be one of created, updated, pushed, full_name. Default: full_name
* @param direction Can be one of asc or desc. Default: when using full_name: asc; otherwise desc
*/
get listUserRepositories /users/user:string/repos {
params type:string, sort:string, direction:string
response Repository[]
}
/*
* List repositories for the specified org.
*
* @param org the unique organisation name
* @param type Can be one of all, public, private, forks, sources, member. Default: all
* @param sort Can be one of created, updated, pushed, full_name. Default: full_name
* @param direction Can be one of asc or desc. Default: when using full_name: asc; otherwise desc
* @response an array of repository entities
*/
get listOrganizationRepositories /orgs/org:string/repos {
params type:string, sort:string, direction:string
response Repository[]
}
/*
* This provides a dump of every public repository, in the order that they were created.
* Note: Pagination is powered exclusively by the since parameter. Use the Link header
* to get the URL for the next page of repositories.
*
* @param since The integer ID of the last Repository that you've seen.
* @response an array of repository entities
*/
get listAllPublicRepositories /repositories {
params since:string
response Repository[]
}
/*
* Create a new repository for the authenticated user.
*
* @response an entity describing the newly created repository
*/
post createRepository /user/repos {
request RepositoryProperties
response 201 Repository
response 400 ErrorMessage
response 401 ErrorMessage
response 422 ErrorMessage
}
/*
* Create a new repository in this organization.
* The authenticated user must be a member of the specified organization.
*
* @param org the unique organisation name
* @response an entity describing the newly created repository
*/
post createOrganizationRepository /orgs/org:string/repos {
request RepositoryProperties
response 201 Repository
response 400 ErrorMessage
response 401 ErrorMessage
response 422 ErrorMessage
}
patch editRepository /repos/owner:string/repo:string {
request RepositoryPatch
response 200 Repository
}
}
entity Repository {
id:long,
name:string,
full_name:string,
owner:RepositoryOwner,
private:boolean,
html_url:string,
description:string,
fork: boolean,
url: string,
forks_url:string,
keys_url:string,
collaborators_url:string,
teams_url:string,
hooks_url:string,
issue_events_url:string,
events_url:string,
assignees_url:string,
branches_url:string,
tags_url:string,
blobs_url:string,
git_tags_url:string,
git_refs_url:string,
trees_url:string,
statuses_url:string,
languages_url:string,
stargazers_url:string,
contributors_url:string,
subscribers_url:string,
subscription_url:string,
commits_url:string,
git_commits_url:string,
comments_url:string,
issue_comment_url:string,
contents_url:string,
compare_url:string,
merges_url:string,
archive_url:string,
downloads_url:string,
issues_url:string,
pulls_url:string,
milestones_url:string,
notifications_url:string,
labels_url:string,
releases_url:string,
created_at:string,
updated_at:string,
pushed_at:string,
git_url:string,
ssh_url:string,
clone_url:string,
svn_url:string,
homepage:string,
size: int,
stargazers_count: int,
watchers_count: int,
language:string,
has_issues: boolean,
has_downloads: boolean,
has_wiki: boolean,
forks_count: int,
mirror_url: string,
open_issues_count: int,
forks: int,
open_issues: int,
watchers: int,
default_branch:string,
permissions: RepositoryPermissions
}
entity RepositoryOwner {
login:string,
id: long,
avatar_url:string,
gravatar_id:string,
url:string,
html_url:string,
followers_url:string,
following_url:string,
gists_url:string,
starred_url:string,
subscriptions_url:string,
organizations_url:string,
repos_url:string,
events_url:string,
received_events_url:string,
type:string,
site_admin: boolean
}
entity RepositoryPermissions {
admin: boolean,
push: boolean,
pull: boolean
}
entity RepositoryProperties {
/* Required. The name of the repository */
name: string,
/* A short description of the repository */
description:string,
/* A URL with more information about the repository */
homepage:string,
/* Either true to create a private repository, or false
* to create a public one. Creating private repositories
* requires a paid GitHub account. Default: false
*/
private:boolean,
/* Either true to enable issues for this repository,
* false to disable them. Default: true
*/
has_issues:boolean,
/* Either true to enable the wiki for this repository,
* false to disable it. Default: true
*/
has_wiki:boolean,
/* Either true to enable downloads for this repository,
* false to disable them. Default: true
*/
has_downloads:boolean,
/*
* The id of the team that will be granted access to this
* repository. This is only valid when creating a repository
* in an organization.
*/
team_id:long,
/* Pass true to create an initial commit with empty README.
* Default: false
*/
auto_init:boolean,
/* Desired language or platform .gitignore template to
* apply. Use the name of the template without the
* extension. For example, �Haskell�. Ignored if the
* auto_init parameter is not provided.
*/
gitigore_template:string,
/*
* Desired LICENSE template to apply. Use the name of
* the template without the extension. For example,
* �mit� or �mozilla�. Ignored if the auto_init parameter
* is not provided.
*/
license_template:string
}
entity RepositoryPatch {
/* Required. The name of the repository */
name: string,
/* A short description of the repository */
description:string,
/* A URL with more information about the repository */
homepage:string,
/* Either true to create a private repository, or false
* to create a public one. Creating private repositories
* requires a paid GitHub account. Default: false
*/
private:boolean,
/* Either true to enable issues for this repository,
* false to disable them. Default: true
*/
has_issues:boolean,
/* Either true to enable the wiki for this repository,
* false to disable it. Default: true
*/
has_wiki:boolean,
/* Either true to enable downloads for this repository,
* false to disable them. Default: true
*/
has_downloads:boolean
}
entity ErrorMessage {
message:string,
documentation_url:string,
errors:Error[]
}
entity Error {
resource:string,
code:ErrorCode,
field:string,
message:string
}
enum ErrorCode {
missing,
missing_field,
invalid,
already_exists
}