blob: f69b955a0ca83e3af58e36fe7181863bf5fd6f26 [file] [log] [blame]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08001= Gerrit Code Review - /projects/ REST API
Edwin Kempind0a63922013-01-23 16:32:59 +01002
3This page describes the project related REST endpoints.
4Please also take note of the general information on the
5link:rest-api.html[REST API].
6
Edwin Kempinc3fe3cb2013-02-13 15:09:23 +01007[[project-endpoints]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08008== Project Endpoints
Edwin Kempinc3fe3cb2013-02-13 15:09:23 +01009
Edwin Kempin76202742013-02-15 13:51:50 +010010[[list-projects]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -080011=== List Projects
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -080012--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +010013'GET /projects/'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -080014--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +010015
Edwin Kempind0a63922013-01-23 16:32:59 +010016Lists the projects accessible by the caller. This is the same as
17using the link:cmd-ls-projects.html[ls-projects] command over SSH,
18and accepts the same options as query parameters.
19
Edwin Kempin51a6dc92013-02-04 15:43:59 +010020As result a map is returned that maps the project names to
21link:#project-info[ProjectInfo] entries. The entries in the map are sorted
22by project name.
23
Edwin Kempin37440832013-02-06 11:36:00 +010024.Request
Edwin Kempind0a63922013-01-23 16:32:59 +010025----
26 GET /projects/?d HTTP/1.0
Edwin Kempin37440832013-02-06 11:36:00 +010027----
Edwin Kempind0a63922013-01-23 16:32:59 +010028
Edwin Kempin37440832013-02-06 11:36:00 +010029.Response
30----
Edwin Kempind0a63922013-01-23 16:32:59 +010031 HTTP/1.1 200 OK
32 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +090033 Content-Type: application/json; charset=UTF-8
Edwin Kempind0a63922013-01-23 16:32:59 +010034
35 )]}'
36 {
37 "external/bison": {
Edwin Kempind0a63922013-01-23 16:32:59 +010038 "id": "external%2Fbison",
39 "description": "GNU parser generator"
40 },
41 "external/gcc": {
Edwin Kempin068511b2015-01-20 09:17:12 +010042 "id": "external%2Fgcc"
Edwin Kempind0a63922013-01-23 16:32:59 +010043 },
44 "external/openssl": {
Edwin Kempind0a63922013-01-23 16:32:59 +010045 "id": "external%2Fopenssl",
46 "description": "encryption\ncrypto routines"
47 },
48 "test": {
Edwin Kempind0a63922013-01-23 16:32:59 +010049 "id": "test",
50 "description": "\u003chtml\u003e is escaped"
51 }
52 }
53----
54
Hugo Arèsbdd7f682014-07-08 10:57:52 -040055[[project-options]]
56==== Project Options
57
58Branch(b)::
59Limit the results to the projects having the specified branch and
60include the sha1 of the branch in the results.
61+
62Get projects that have a 'master' branch:
63+
64.Request
65----
66GET /projects/?b=master HTTP/1.0
67----
68+
69.Response
70----
71 HTTP/1.1 200 OK
72 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +090073 Content-Type: application/json; charset=UTF-8
Hugo Arèsbdd7f682014-07-08 10:57:52 -040074
75 )]}'
76 {
77 "some-project": {
78 "id": "some-project",
79 "branches": {
80 "master": "c5ed9dfcbf002ca0e432d788dab6ca2387829ca7"
81 }
82 },
83 "some-other-project": {
84 "id": "some-other-project",
85 "branches": {
86 "master": "ef1c270142f9581ecf768f4193fc8f8a81102ec2"
87 }
88 },
89 }
90----
91
92Description(d)::
93Include project description in the results.
94+
95Get all the projects with their description:
96+
97.Request
98----
99GET /projects/?d HTTP/1.0
100----
101+
102.Response
103----
104 HTTP/1.1 200 OK
105 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900106 Content-Type: application/json; charset=UTF-8
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400107
108 )]}'
109 {
110 "some-project": {
111 "id": "some-project",
112 "description": "Description of some project."
113 },
114 "some-other-project": {
115 "id": "some-other-project",
116 "description": "Description of some other project."
117 }
118 },
119 }
120----
121
122Limit(n)::
123Limit the number of projects to be included in the results.
124+
125Query the first project in the project list:
126+
127.Request
128----
129 GET /projects/?n=1 HTTP/1.0
130----
131+
132.Response
133----
134 HTTP/1.1 200 OK
135 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900136 Content-Type: application/json; charset=UTF-8
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400137
138 )]}'
139 {
140 "some-project": {
141 "id": "some-project"
142 }
143 }
144----
145
Edwin Kempina64c4b92013-01-23 11:30:40 +0100146
Edwin Kempind0a63922013-01-23 16:32:59 +0100147[[suggest-projects]]
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400148Prefix(p)::
149Limit the results to those projects that start with the specified
Edwin Kempind0a63922013-01-23 16:32:59 +0100150prefix.
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400151+
Edwin Kempind0a63922013-01-23 16:32:59 +0100152List all projects that start with `platform/`:
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400153+
Edwin Kempin37440832013-02-06 11:36:00 +0100154.Request
Edwin Kempind0a63922013-01-23 16:32:59 +0100155----
156 GET /projects/?p=platform%2F HTTP/1.0
Edwin Kempin37440832013-02-06 11:36:00 +0100157----
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400158+
Edwin Kempin37440832013-02-06 11:36:00 +0100159.Response
160----
Edwin Kempind0a63922013-01-23 16:32:59 +0100161 HTTP/1.1 200 OK
162 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900163 Content-Type: application/json; charset=UTF-8
Edwin Kempind0a63922013-01-23 16:32:59 +0100164
165 )]}'
166 {
167 "platform/drivers": {
Edwin Kempin068511b2015-01-20 09:17:12 +0100168 "id": "platform%2Fdrivers"
Edwin Kempind0a63922013-01-23 16:32:59 +0100169 },
170 "platform/tools": {
Edwin Kempin068511b2015-01-20 09:17:12 +0100171 "id": "platform%2Ftools"
Edwin Kempind0a63922013-01-23 16:32:59 +0100172 }
173 }
174----
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400175+
Edwin Kempind0a63922013-01-23 16:32:59 +0100176E.g. this feature can be used by suggestion client UI's to limit results.
177
Hugo Arèsb8aae412014-07-08 11:04:43 -0400178Regex(r)::
179Limit the results to those projects that match the specified regex.
180+
181Boundary matchers '^' and '$' are implicit. For example: the regex 'test.*' will
182match any projects that start with 'test' and regex '.*test' will match any
183project that end with 'test'.
184+
185List all projects that match regex `test.*project`:
186+
187.Request
188----
189 GET /projects/?r=test.*project HTTP/1.0
190----
191+
192.Response
193----
194 HTTP/1.1 200 OK
195 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900196 Content-Type: application/json; charset=UTF-8
Hugo Arèsb8aae412014-07-08 11:04:43 -0400197
198 )]}'
199 {
200 "test/some-project": {
Edwin Kempin068511b2015-01-20 09:17:12 +0100201 "id": "test%2Fsome-project"
Hugo Arèsb8aae412014-07-08 11:04:43 -0400202 },
203 "test/some-other-project": {
Edwin Kempin068511b2015-01-20 09:17:12 +0100204 "id": "test%2Fsome-other-project"
Hugo Arèsb8aae412014-07-08 11:04:43 -0400205 }
206 }
207
208----
209
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400210Skip(S)::
211Skip the given number of projects from the beginning of the list.
212+
213Query the second project in the project list:
214+
215.Request
Anthony Chin5f44cc52014-03-12 10:37:10 -0400216----
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400217 GET /projects/?n=1&S=1 HTTP/1.0
218----
219+
220.Response
221----
222 HTTP/1.1 200 OK
223 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900224 Content-Type: application/json; charset=UTF-8
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400225
226 )]}'
227 {
228 "some-other-project": {
229 "id": "some-other-project"
230 }
231 }
Anthony Chin5f44cc52014-03-12 10:37:10 -0400232----
233
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400234Substring(m)::
235Limit the results to those projects that match the specified substring.
236+
237List all projects that match substring `test/`:
238+
239.Request
Anthony Chin5f44cc52014-03-12 10:37:10 -0400240----
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400241 GET /projects/?m=test%2F HTTP/1.0
242----
243+
244.Response
245----
246 HTTP/1.1 200 OK
247 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900248 Content-Type: application/json; charset=UTF-8
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400249
250 )]}'
251 {
252 "test/some-project": {
Edwin Kempin068511b2015-01-20 09:17:12 +0100253 "id": "test%2Fsome-project"
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400254 },
255 "some-path/test/some-other-project": {
Edwin Kempin068511b2015-01-20 09:17:12 +0100256 "id": "some-path%2Ftest%2Fsome-other-project"
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400257 }
258 }
259----
260
261Tree(t)::
262Get projects inheritance in a tree-like format. This option does
263not work together with the branch option.
264+
265Get all the projects with tree option:
266+
267.Request
268----
269GET /projects/?t HTTP/1.0
270----
271+
272.Response
273----
274 HTTP/1.1 200 OK
275 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900276 Content-Type: application/json; charset=UTF-8
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400277
278 )]}'
279 {
280 "All-Projects" {
281 "id": "All-Projects"
282 },
283 "child-project": {
284 "id": "child-project",
285 "parent":"parent-project"
286 },
287 "parent-project": {
288 "id": "parent-project",
289 "parent":"All-Projects"
290 }
291 }
292----
293
294Type(type)::
295Get projects with specified type: ALL, CODE, PERMISSIONS.
296+
297Get all the projects of type 'PERMISSIONS':
298+
299.Request
300----
301GET /projects/?type=PERMISSIONS HTTP/1.0
302----
303+
304.Response
305----
306 HTTP/1.1 200 OK
307 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900308 Content-Type: application/json; charset=UTF-8
Hugo Arèsbdd7f682014-07-08 10:57:52 -0400309
310 )]}'
311 {
312 "All-Projects" {
313 "id": "All-Projects"
314 },
315 "some-parent-project": {
316 "id": "some-parent-project"
317 }
318 }
Anthony Chin5f44cc52014-03-12 10:37:10 -0400319----
320
Edwin Kempin5c544e22013-03-06 13:35:45 +0100321[[get-project]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800322=== Get Project
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800323--
Edwin Kempin5c544e22013-03-06 13:35:45 +0100324'GET /projects/link:#project-name[\{project-name\}]'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800325--
Edwin Kempin5c544e22013-03-06 13:35:45 +0100326
327Retrieves a project.
328
329.Request
330----
331 GET /projects/plugins%2Freplication HTTP/1.0
332----
333
334As response a link:#project-info[ProjectInfo] entity is returned that
335describes the project.
336
337.Response
338----
339 HTTP/1.1 200 OK
340 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900341 Content-Type: application/json; charset=UTF-8
Edwin Kempin5c544e22013-03-06 13:35:45 +0100342
343 )]}'
344 {
Edwin Kempin5c544e22013-03-06 13:35:45 +0100345 "id": "plugins%2Freplication",
346 "name": "plugins/replication",
347 "parent": "Public-Plugins",
Shawn Pearce21a6c212014-04-23 12:35:10 -0700348 "description": "Copies to other servers using the Git protocol",
349 "state": "ACTIVE"
Edwin Kempin5c544e22013-03-06 13:35:45 +0100350 }
351----
352
Bruce Zu798ea122013-02-18 16:55:43 +0800353[[create-project]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800354=== Create Project
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800355--
Bruce Zu798ea122013-02-18 16:55:43 +0800356'PUT /projects/link:#project-name[\{project-name\}]'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800357--
Bruce Zu798ea122013-02-18 16:55:43 +0800358
359Creates a new project.
360
361In the request body additional data for the project can be provided as
362link:#project-input[ProjectInput].
363
364.Request
365----
366 PUT /projects/MyProject HTTP/1.0
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900367 Content-Type: application/json; charset=UTF-8
Bruce Zu798ea122013-02-18 16:55:43 +0800368
369 {
370 "description": "This is a demo project.",
371 "submit_type": "CHERRY_PICK",
372 "owners": [
373 "MyProject-Owners"
374 ]
375 }
376----
377
378As response the link:#project-info[ProjectInfo] entity is returned that
379describes the created project.
380
381.Response
382----
383 HTTP/1.1 201 Created
384 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900385 Content-Type: application/json; charset=UTF-8
Bruce Zu798ea122013-02-18 16:55:43 +0800386
387 )]}'
388 {
Bruce Zu798ea122013-02-18 16:55:43 +0800389 "id": "MyProject",
390 "name": "MyProject",
391 "parent": "All-Projects",
392 "description": "This is a demo project."
393 }
394----
395
Edwin Kempin57f303c2013-02-13 15:52:22 +0100396[[get-project-description]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800397=== Get Project Description
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800398--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +0100399'GET /projects/link:#project-name[\{project-name\}]/description'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800400--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +0100401
Edwin Kempin57f303c2013-02-13 15:52:22 +0100402Retrieves the description of a project.
403
404.Request
405----
406 GET /projects/plugins%2Freplication/description HTTP/1.0
407----
408
409.Response
410----
411 HTTP/1.1 200 OK
412 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900413 Content-Type: application/json; charset=UTF-8
Edwin Kempin57f303c2013-02-13 15:52:22 +0100414
415 )]}'
416 "Copies to other servers using the Git protocol"
417----
418
Edwin Kempinefec4492013-02-22 10:09:23 +0100419If the project does not have a description an empty string is returned.
420
Edwin Kempin57f303c2013-02-13 15:52:22 +0100421[[set-project-description]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800422=== Set Project Description
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800423--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +0100424'PUT /projects/link:#project-name[\{project-name\}]/description'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800425--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +0100426
Edwin Kempin57f303c2013-02-13 15:52:22 +0100427Sets the description of a project.
428
429The new project description must be provided in the request body inside
430a link:#project-description-input[ProjectDescriptionInput] entity.
431
432.Request
433----
434 PUT /projects/plugins%2Freplication/description HTTP/1.0
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900435 Content-Type: application/json; charset=UTF-8
Edwin Kempin57f303c2013-02-13 15:52:22 +0100436
437 {
438 "description": "Plugin for Gerrit that handles the replication.",
439 "commit_message": "Update the project description"
440 }
441----
442
443As response the new project description is returned.
444
445.Response
446----
447 HTTP/1.1 200 OK
448 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900449 Content-Type: application/json; charset=UTF-8
Edwin Kempin57f303c2013-02-13 15:52:22 +0100450
451 )]}'
452 "Plugin for Gerrit that handles the replication."
453----
454
Edwin Kempin114ab162013-02-28 09:25:37 +0100455If the description was deleted the response is "`204 No Content`".
456
Edwin Kempin57f303c2013-02-13 15:52:22 +0100457[[delete-project-description]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800458=== Delete Project Description
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800459--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +0100460'DELETE /projects/link:#project-name[\{project-name\}]/description'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800461--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +0100462
Edwin Kempin57f303c2013-02-13 15:52:22 +0100463Deletes the description of a project.
464
Edwin Kempinefec4492013-02-22 10:09:23 +0100465The request body does not need to include a
466link:#project-description-input[ProjectDescriptionInput] entity if no
467commit message is specified.
Edwin Kempin57f303c2013-02-13 15:52:22 +0100468
Edwin Kempinefec4492013-02-22 10:09:23 +0100469Please note that some proxies prohibit request bodies for DELETE
Edwin Kempin57f303c2013-02-13 15:52:22 +0100470requests. In this case, if you want to specify a commit message, use
471link:#set-project-description[PUT] to delete the description.
472
473.Request
474----
475 DELETE /projects/plugins%2Freplication/description HTTP/1.0
476----
477
478.Response
479----
480 HTTP/1.1 204 No Content
481----
482
Edwin Kempinecad88c2013-02-14 12:09:44 +0100483[[get-project-parent]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800484=== Get Project Parent
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800485--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +0100486'GET /projects/link:#project-name[\{project-name\}]/parent'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800487--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +0100488
Edwin Kempinecad88c2013-02-14 12:09:44 +0100489Retrieves the name of a project's parent project. For the
490`All-Projects` root project an empty string is returned.
491
492.Request
493----
494 GET /projects/plugins%2Freplication/parent HTTP/1.0
495----
496
497.Response
498----
499 HTTP/1.1 200 OK
500 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900501 Content-Type: application/json; charset=UTF-8
Edwin Kempinecad88c2013-02-14 12:09:44 +0100502
503 )]}'
504 "All-Projects"
505----
506
507[[set-project-parent]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800508=== Set Project Parent
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800509--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +0100510'PUT /projects/link:#project-name[\{project-name\}]/parent'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800511--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +0100512
Edwin Kempinecad88c2013-02-14 12:09:44 +0100513Sets the parent project for a project.
514
515The new name of the parent project must be provided in the request body
516inside a link:#project-parent-input[ProjectParentInput] entity.
517
518.Request
519----
520 PUT /projects/plugins%2Freplication/parent HTTP/1.0
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900521 Content-Type: application/json; charset=UTF-8
Edwin Kempinecad88c2013-02-14 12:09:44 +0100522
523 {
524 "parent": "Public-Plugins",
525 "commit_message": "Update the project parent"
526 }
527----
528
529As response the new parent project name is returned.
530
531.Response
532----
533 HTTP/1.1 200 OK
534 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900535 Content-Type: application/json; charset=UTF-8
Edwin Kempinecad88c2013-02-14 12:09:44 +0100536
537 )]}'
538 "Public-Plugins"
539----
540
Edwin Kempin6b813372013-03-13 17:07:33 +0100541[[get-head]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800542=== Get HEAD
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800543--
Edwin Kempin6b813372013-03-13 17:07:33 +0100544'GET /projects/link:#project-name[\{project-name\}]/HEAD'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800545--
Edwin Kempin6b813372013-03-13 17:07:33 +0100546
547Retrieves for a project the name of the branch to which `HEAD` points.
548
549.Request
550----
551 GET /projects/plugins%2Freplication/HEAD HTTP/1.0
552----
553
554.Response
555----
556 HTTP/1.1 200 OK
557 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900558 Content-Type: application/json; charset=UTF-8
Edwin Kempin6b813372013-03-13 17:07:33 +0100559
560 )]}'
561 "refs/heads/master"
562----
563
564[[set-head]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800565=== Set HEAD
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800566--
Edwin Kempin6b813372013-03-13 17:07:33 +0100567'PUT /projects/link:#project-name[\{project-name\}]/HEAD'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800568--
Edwin Kempin6b813372013-03-13 17:07:33 +0100569
570Sets `HEAD` for a project.
571
572The new ref to which `HEAD` should point must be provided in the
573request body inside a link:#head-input[HeadInput] entity.
574
575.Request
576----
577 PUT /projects/plugins%2Freplication/HEAD HTTP/1.0
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900578 Content-Type: application/json; charset=UTF-8
Edwin Kempin6b813372013-03-13 17:07:33 +0100579
580 {
581 "ref": "refs/heads/stable"
582 }
583----
584
585As response the new ref to which `HEAD` points is returned.
586
587.Response
588----
589 HTTP/1.1 200 OK
590 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900591 Content-Type: application/json; charset=UTF-8
Edwin Kempin6b813372013-03-13 17:07:33 +0100592
593 )]}'
594 "refs/heads/stable"
595----
596
Edwin Kempin19ea9b92013-03-20 13:20:26 +0100597[[get-repository-statistics]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800598=== Get Repository Statistics
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800599--
Edwin Kempin19ea9b92013-03-20 13:20:26 +0100600'GET /projects/link:#project-name[\{project-name\}]/statistics.git'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800601--
Edwin Kempin19ea9b92013-03-20 13:20:26 +0100602
603Return statistics for the repository of a project.
604
605.Request
606----
607 GET /projects/plugins%2Freplication/statistics.git HTTP/1.0
608----
609
610The repository statistics are returned as a
611link:#repository-statistics-info[RepositoryStatisticsInfo] entity.
612
613.Response
614----
615 HTTP/1.1 200 OK
616 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900617 Content-Type: application/json; charset=UTF-8
Edwin Kempin19ea9b92013-03-20 13:20:26 +0100618
619 )]}'
620 {
621 "number_of_loose_objects": 127,
622 "number_of_loose_refs": 15,
623 "number_of_pack_files": 15,
624 "number_of_packed_objects": 67,
625 "number_of_packed_refs": 0,
626 "size_of_loose_objects": 29466,
627 "size_of_packed_objects": 9646
628 }
629----
630
Dave Borowitz237073a2013-04-04 16:52:27 -0700631[[get-config]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800632=== Get Config
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800633--
Dave Borowitz237073a2013-04-04 16:52:27 -0700634'GET /projects/link:#project-name[\{project-name\}]/config'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800635--
Dave Borowitz237073a2013-04-04 16:52:27 -0700636
637Gets some configuration information about a project. Note that this
638config info is not simply the contents of `project.config`; it generally
639contains fields that may have been inherited from parent projects.
640
641.Request
642----
643 GET /projects/myproject/config
644----
645
646A link:#config-info[ConfigInfo] entity is returned that describes the
647project configuration. Some fields are only visible to users that have
648read access to `refs/meta/config`.
649
650.Response
651----
652 HTTP/1.1 200 OK
653 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900654 Content-Type: application/json; charset=UTF-8
Dave Borowitz237073a2013-04-04 16:52:27 -0700655
656 )]}'
657 {
Edwin Kempina23eb102013-07-17 09:10:54 +0200658 "description": "demo project",
Edwin Kempin0cb5a562013-07-12 15:41:04 +0200659 "use_contributor_agreements": {
660 "value": true,
661 "configured_value": "TRUE",
662 "inherited_value": false
663 },
664 "use_content_merge": {
665 "value": true,
666 "configured_value": "INHERIT",
667 "inherited_value": true
668 },
669 "use_signed_off_by": {
670 "value": false,
671 "configured_value": "INHERIT",
672 "inherited_value": false
673 },
Deniz Türkoglu52777272014-09-08 17:02:48 +0200674 "create_new_change_for_all_not_in_target": {
675 "value": false,
676 "configured_value": "INHERIT",
677 "inherited_value": false
678 },
Edwin Kempin0cb5a562013-07-12 15:41:04 +0200679 "require_change_id": {
680 "value": false,
681 "configured_value": "FALSE",
682 "inherited_value": true
Edwin Kempin3c99f592013-07-15 10:12:27 +0200683 },
684 "max_object_size_limit": {
685 "value": "15m",
686 "configured_value": "15m",
687 "inherited_value": "20m"
688 },
689 "submit_type": "MERGE_IF_NECESSARY",
690 "state": "ACTIVE",
David Ostrovsky9e8b2fb2013-08-30 08:09:53 +0200691 "commentlinks": {},
Edwin Kempin9ce4f552013-11-15 16:00:00 +0100692 "plugin_config": {
693 "helloworld": {
694 "language": {
695 "display_name": "Preferred Language",
696 "type": "STRING",
697 "value": "en"
698 }
699 }
700 },
David Ostrovsky9e8b2fb2013-08-30 08:09:53 +0200701 "actions": {
702 "cookbook~hello-project": {
703 "method": "POST",
704 "label": "Say hello",
705 "title": "Say hello in different languages",
706 "enabled": true
707 }
708 }
Dave Borowitz237073a2013-04-04 16:52:27 -0700709 }
710----
711
Edwin Kempina23eb102013-07-17 09:10:54 +0200712[[set-config]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800713=== Set Config
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800714--
Edwin Kempina23eb102013-07-17 09:10:54 +0200715'PUT /projects/link:#project-name[\{project-name\}]/config'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800716--
Edwin Kempina23eb102013-07-17 09:10:54 +0200717
718Sets the configuration of a project.
719
720The new configuration must be provided in the request body as a
721link:#config-input[ConfigInput] entity.
722
723.Request
724----
725 PUT /projects/myproject/config HTTP/1.0
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900726 Content-Type: application/json; charset=UTF-8
Edwin Kempina23eb102013-07-17 09:10:54 +0200727
728 {
729 "description": "demo project",
730 "use_contributor_agreements": "FALSE",
731 "use_content_merge": "INHERIT",
732 "use_signed_off_by": "INHERIT",
Deniz Türkoglu52777272014-09-08 17:02:48 +0200733 "create_new_change_for_all_not_in_target": "INHERIT",
Dave Borowitz5170e0f2015-06-18 21:05:29 -0400734 "enable_signed_push": "INHERIT",
Dave Borowitz0543c732015-10-20 10:35:26 -0400735 "require_signed_push": "INHERIT",
Saša Živkov225b7a72015-11-17 17:37:43 +0100736 "reject_implicit_merges": "INHERIT",
Edwin Kempina23eb102013-07-17 09:10:54 +0200737 "require_change_id": "TRUE",
738 "max_object_size_limit": "10m",
739 "submit_type": "REBASE_IF_NECESSARY",
740 "state": "ACTIVE"
741 }
742----
743
744As response the new configuration is returned as a link:#config-info[
745ConfigInfo] entity.
746
747.Response
748----
749 HTTP/1.1 200 OK
750 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900751 Content-Type: application/json; charset=UTF-8
Edwin Kempina23eb102013-07-17 09:10:54 +0200752
753 )]}'
754 {
Edwin Kempina23eb102013-07-17 09:10:54 +0200755 "use_contributor_agreements": {
756 "value": false,
757 "configured_value": "FALSE",
758 "inherited_value": false
759 },
760 "use_content_merge": {
761 "value": true,
762 "configured_value": "INHERIT",
763 "inherited_value": true
764 },
765 "use_signed_off_by": {
766 "value": false,
767 "configured_value": "INHERIT",
768 "inherited_value": false
769 },
Deniz Türkoglu52777272014-09-08 17:02:48 +0200770 "create_new_change_for_all_not_in_target": {
771 "value": true,
772 "configured_value": "INHERIT",
773 "inherited_value": false
774 },
Edwin Kempina23eb102013-07-17 09:10:54 +0200775 "require_change_id": {
776 "value": true,
777 "configured_value": "TRUE",
778 "inherited_value": true
779 },
Dave Borowitz5170e0f2015-06-18 21:05:29 -0400780 "enable_signed_push": {
781 "value": true,
782 "configured_value": "INHERIT",
783 "inherited_value": false
784 },
Dave Borowitz0543c732015-10-20 10:35:26 -0400785 "require_signed_push": {
786 "value": false,
787 "configured_value": "INHERIT",
788 "inherited_value": false
789 },
Saša Živkov225b7a72015-11-17 17:37:43 +0100790 "reject_implicit_merges": {
791 "value": false,
792 "configured_value": "INHERIT",
793 "inherited_value": false
794 },
Edwin Kempina23eb102013-07-17 09:10:54 +0200795 "max_object_size_limit": {
796 "value": "10m",
797 "configured_value": "10m",
798 "inherited_value": "20m"
799 },
800 "submit_type": "REBASE_IF_NECESSARY",
801 "state": "ACTIVE",
802 "commentlinks": {}
803 }
804----
805
Edwin Kempinef3542f2013-03-19 13:31:49 +0100806[[run-gc]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -0800807=== Run GC
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800808--
Edwin Kempinef3542f2013-03-19 13:31:49 +0100809'POST /projects/link:#project-name[\{project-name\}]/gc'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -0800810--
Edwin Kempinef3542f2013-03-19 13:31:49 +0100811
812Run the Git garbage collection for the repository of a project.
813
Edwin Kempin4bdc72d2013-11-13 13:30:49 +0100814Options for the Git garbage collection can be specified in the
815request body as a link:#gc-input[GCInput] entity.
816
Edwin Kempinef3542f2013-03-19 13:31:49 +0100817.Request
818----
819 POST /projects/plugins%2Freplication/gc HTTP/1.0
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900820 Content-Type: application/json; charset=UTF-8
Edwin Kempin4bdc72d2013-11-13 13:30:49 +0100821
822 {
823 "show_progress": true
824 }
Edwin Kempinef3542f2013-03-19 13:31:49 +0100825----
826
827The response is the streamed output of the garbage collection.
828
829.Response
830----
831 HTTP/1.1 200 OK
832 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900833 Content-Type: text/plain; charset=UTF-8
Edwin Kempinef3542f2013-03-19 13:31:49 +0100834
835 collecting garbage for "plugins/replication":
836 Pack refs: 100% (21/21)
837 Counting objects: 20
838 Finding sources: 100% (20/20)
839 Getting sizes: 100% (13/13)
840 Compressing objects: 83% (5/6)
841 Writing objects: 100% (20/20)
842 Selecting commits: 100% (7/7)
843 Building bitmaps: 100% (7/7)
844 Finding sources: 100% (41/41)
845 Getting sizes: 100% (25/25)
846 Compressing objects: 52% (12/23)
847 Writing objects: 100% (41/41)
848 Prune loose objects also found in pack files: 100% (36/36)
849 Prune loose, unreferenced objects: 100% (36/36)
850 done.
851----
852
Adrian Görler92410a12015-11-03 16:20:56 +0100853==== Asynchronous Execution
854
855The option `async` allows to schedule a background task that asynchronously
856executes a Git garbage collection.
857
858The `Location` header of the response refers to the link:rest-api-config.html#get-task[background task]
859which allows to inspect the progress of its execution. In case of asynchronous
860execution the `show_progress` option is ignored.
861
862.Request
863----
864 POST /projects/plugins%2Freplication/gc HTTP/1.0
865 Content-Type: application/json;charset=UTF-8
866
867 {
868 "async": true
869 }
870----
871
872The response is empty.
873
874.Response
875----
876 HTTP/1.1 202 Accepted
877 Content-Disposition: attachment
878 Location: https:<host>/a/config/server/tasks/383a0602
879----
880
Edwin Kempin62946742014-07-09 11:17:58 +0200881[[ban-commit]]
882=== Ban Commit
883--
884'PUT /projects/link:#project-name[\{project-name\}]/ban'
885--
886
887Marks commits as banned for the project. If a commit is banned Gerrit
888rejects every push that includes this commit with
889link:error-contains-banned-commit.html[contains banned commit ...].
890
891[NOTE]
892This REST endpoint only marks the commits as banned, but it does not
893remove the commits from the history of any central branch. This needs
894to be done manually.
895
896The commits to be banned must be specified in the request body as a
897link:#ban-input[BanInput] entity.
898
899The caller must be project owner.
900
901.Request
902----
903 PUT /projects/plugins%2Freplication/ban HTTP/1.0
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900904 Content-Type: application/json; charset=UTF-8
Edwin Kempin62946742014-07-09 11:17:58 +0200905
906 {
907 "commits": [
908 "a8a477efffbbf3b44169bb9a1d3a334cbbd9aa96",
909 "cf5b56541f84b8b57e16810b18daca9c3adc377b"
910 ],
911 "reason": "Violates IP"
912 }
913----
914
915As response a link:#ban-result-info[BanResultInfo] entity is returned.
916
917.Response
918----
919 HTTP/1.1 200 OK
920 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +0900921 Content-Type: application/json; charset=UTF-8
Edwin Kempin62946742014-07-09 11:17:58 +0200922
923 )]}'
924 {
925 "newly_banned": [
926 "a8a477efffbbf3b44169bb9a1d3a334cbbd9aa96",
927 "cf5b56541f84b8b57e16810b18daca9c3adc377b"
928 ]
929 }
930----
931
Patrick Hiesel21816f12016-04-22 08:53:06 +0200932[[get-access]]
933=== List Access Rights for Project
934--
935'GET /projects/link:rest-api-projects.html#project-name[\{project-name\}]/access'
936--
937
938Lists the access rights for a single project.
939
940As result a link:#project-access-info[ProjectAccessInfo] entity is returned.
941
942.Request
943----
944 GET /projects/MyProject/access HTTP/1.0
945----
946
947.Response
948----
949 HTTP/1.1 200 OK
950 Content-Type: application/json; charset=UTF-8
951
952 )]}'
953 {
954 "revision": "61157ed63e14d261b6dca40650472a9b0bd88474",
955 "inherits_from": {
956 "id": "All-Projects",
957 "name": "All-Projects",
958 "description": "Access inherited by all other projects."
959 },
960 "local": {
961 "refs/*": {
962 "permissions": {
963 "read": {
964 "rules": {
965 "c2ce4749a32ceb82cd6adcce65b8216e12afb41c": {
966 "action": "ALLOW",
967 "force": false
968 },
969 "global:Anonymous-Users": {
970 "action": "ALLOW",
971 "force": false
972 }
973 }
974 }
975 }
976 }
977 },
978 "is_owner": true,
979 "owner_of": [
980 "refs/*"
981 ],
982 "can_upload": true,
983 "can_add": true,
984 "config_visible": true
985 }
986----
987
988[[set-access]]
989=== Add, Update and Delete Access Rights for Project
990--
991'POST /projects/link:rest-api-projects.html#project-name[\{project-name\}]/access'
992--
993
994Sets access rights for the project using the diff schema provided by
995link:#project-access-input[ProjectAccessInput]. Deductions are used to
996remove access sections, permissions or permission rules. The backend will remove
997the entity with the finest granularity in the request, meaning that if an
998access section without permissions is posted, the access section will be
999removed; if an access section with a permission but no permission rules is
1000posted, the permission will be removed; if an access section with a permission
1001and a permission rule is posted, the permission rule will be removed.
1002
1003Additionally, access sections and permissions will be cleaned up after applying
1004the deductions by removing items that have no child elements.
1005
1006After removals have been applied, additions will be applied.
1007
1008As result a link:#project-access-info[ProjectAccessInfo] entity is returned.
1009
1010.Request
1011----
1012 POST /projects/MyProject/access HTTP/1.0
1013 Content-Type: application/json; charset=UTF-8
1014
1015 {
1016 "remove": [
1017 "refs/*": {
1018 "permissions": {
1019 "read": {
1020 "rules": {
1021 "c2ce4749a32ceb82cd6adcce65b8216e12afb41c": {
1022 "action": "ALLOW"
1023 }
1024 }
1025 }
1026 }
1027 }
1028 ]
1029 }
1030----
1031
1032.Response
1033----
1034 HTTP/1.1 200 OK
1035 Content-Type: application/json; charset=UTF-8
1036
1037 )]}'
1038 {
1039 "revision": "61157ed63e14d261b6dca40650472a9b0bd88474",
1040 "inherits_from": {
1041 "id": "All-Projects",
1042 "name": "All-Projects",
1043 "description": "Access inherited by all other projects."
1044 },
1045 "local": {
1046 "refs/*": {
1047 "permissions": {
1048 "read": {
1049 "rules": {
1050 "global:Anonymous-Users": {
1051 "action": "ALLOW",
1052 "force": false
1053 }
1054 }
1055 }
1056 }
1057 }
1058 },
1059 "is_owner": true,
1060 "owner_of": [
1061 "refs/*"
1062 ],
1063 "can_upload": true,
1064 "can_add": true,
1065 "config_visible": true
1066 }
1067----
1068
Edwin Kempina686de92013-05-09 15:12:34 +02001069[[branch-endpoints]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08001070== Branch Endpoints
Edwin Kempina686de92013-05-09 15:12:34 +02001071
1072[[list-branches]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08001073=== List Branches
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08001074--
Edwin Kempina686de92013-05-09 15:12:34 +02001075'GET /projects/link:#project-name[\{project-name\}]/branches/'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08001076--
Edwin Kempina686de92013-05-09 15:12:34 +02001077
1078List the branches of a project.
1079
1080As result a list of link:#branch-info[BranchInfo] entries is
1081returned.
1082
1083.Request
1084----
1085 GET /projects/work%2Fmy-project/branches/ HTTP/1.0
1086----
1087
1088.Response
1089----
1090 HTTP/1.1 200 OK
1091 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001092 Content-Type: application/json; charset=UTF-8
Edwin Kempina686de92013-05-09 15:12:34 +02001093
1094 )]}'
1095 [
1096 {
1097 "ref": "HEAD",
1098 "revision": "master"
1099 },
1100 {
1101 "ref": "refs/meta/config",
1102 "revision": "76016386a0d8ecc7b6be212424978bb45959d668"
1103 },
1104 {
1105 "ref": "refs/heads/master",
1106 "revision": "67ebf73496383c6777035e374d2d664009e2aa5c"
1107 },
1108 {
1109 "ref": "refs/heads/stable",
1110 "revision": "64ca533bd0eb5252d2fee83f63da67caae9b4674",
1111 "can_delete": true
1112 }
1113 ]
1114----
1115
Hugo Arès3133b4b2014-10-14 14:05:10 -04001116[[branch-options]]
1117==== Branch Options
1118
Hugo Arès15856622014-10-14 14:19:01 -04001119Limit(n)::
1120Limit the number of branches to be included in the results.
1121+
1122.Request
1123----
1124 GET /projects/testproject/branches?n=1 HTTP/1.0
1125----
1126+
1127.Response
1128----
1129 HTTP/1.1 200 OK
1130 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001131 Content-Type: application/json; charset=UTF-8
Hugo Arès15856622014-10-14 14:19:01 -04001132
1133 )]}'
1134 [
1135 {
1136 "ref": "HEAD",
1137 "revision": "master",
1138 "can_delete": false
1139 }
1140 ]
1141----
1142
1143Skip(s)::
1144Skip the given number of branches from the beginning of the list.
1145+
1146.Request
1147----
1148 GET /projects/testproject/branches?n=1&s=0 HTTP/1.0
1149----
1150+
1151.Response
1152----
1153 HTTP/1.1 200 OK
1154 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001155 Content-Type: application/json; charset=UTF-8
Hugo Arès15856622014-10-14 14:19:01 -04001156
1157 )]}'
1158 [
1159 {
1160 "ref": "HEAD",
1161 "revision": "master",
1162 "can_delete": false
1163 }
1164 ]
1165----
1166
Hugo Arès3133b4b2014-10-14 14:05:10 -04001167Substring(m)::
1168Limit the results to those projects that match the specified substring.
1169+
1170List all projects that match substring `test`:
1171+
1172.Request
1173----
1174 GET /projects/testproject/branches?m=test HTTP/1.0
1175----
1176+
1177.Response
1178----
1179 HTTP/1.1 200 OK
1180 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001181 Content-Type: application/json; charset=UTF-8
Hugo Arès3133b4b2014-10-14 14:05:10 -04001182
1183 )]}'
1184 [
1185 {
1186 "ref": "refs/heads/test1",
1187 "revision": "9c9d08a438e55e52f33b608415e6dddd9b18550d",
1188 "can_delete": true
1189 }
1190 ]
1191----
1192
1193Regex(r)::
1194Limit the results to those branches that match the specified regex.
1195Boundary matchers '^' and '$' are implicit. For example: the regex 't*' will
1196match any branches that start with 'test' and regex '*t' will match any
1197branches that end with 'test'.
1198+
1199List all branches that match regex `t.*1`:
1200+
1201.Request
1202----
1203 GET /projects/testproject/branches?r=t.*1 HTTP/1.0
1204----
1205+
1206.Response
1207----
1208 HTTP/1.1 200 OK
1209 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001210 Content-Type: application/json; charset=UTF-8
Hugo Arès3133b4b2014-10-14 14:05:10 -04001211
1212 )]}'
1213 [
1214 {
1215 "ref": "refs/heads/test1",
1216 "revision": "9c9d08a438e55e52f33b608415e6dddd9b18550d",
1217 "can_delete": true
1218 }
1219 ]
1220----
1221
Edwin Kempin196e1732013-05-09 15:12:34 +02001222[[get-branch]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08001223=== Get Branch
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08001224--
Edwin Kempin196e1732013-05-09 15:12:34 +02001225'GET /projects/link:#project-name[\{project-name\}]/branches/link:#branch-id[\{branch-id\}]'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08001226--
Edwin Kempin196e1732013-05-09 15:12:34 +02001227
1228Retrieves a branch of a project.
1229
1230.Request
1231----
1232 GET /projects/work%2Fmy-project/branches/master HTTP/1.0
1233----
1234
1235As response a link:#branch-info[BranchInfo] entity is returned that
1236describes the branch.
1237
1238.Response
1239----
1240 HTTP/1.1 200 OK
1241 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001242 Content-Type: application/json; charset=UTF-8
Edwin Kempin196e1732013-05-09 15:12:34 +02001243
1244 )]}'
1245 {
1246 "ref": "refs/heads/master",
1247 "revision": "67ebf73496383c6777035e374d2d664009e2aa5c"
1248 }
1249----
1250
Edwin Kempin5c0d6b32013-05-09 19:54:37 +02001251[[create-branch]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08001252=== Create Branch
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08001253--
Edwin Kempin5c0d6b32013-05-09 19:54:37 +02001254'PUT /projects/link:#project-name[\{project-name\}]/branches/link:#branch-id[\{branch-id\}]'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08001255--
Edwin Kempin5c0d6b32013-05-09 19:54:37 +02001256
1257Creates a new branch.
1258
1259In the request body additional data for the branch can be provided as
1260link:#branch-input[BranchInput].
1261
1262.Request
1263----
1264 PUT /projects/MyProject/branches/stable HTTP/1.0
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001265 Content-Type: application/json; charset=UTF-8
Edwin Kempin5c0d6b32013-05-09 19:54:37 +02001266
1267 {
1268 "revision": "76016386a0d8ecc7b6be212424978bb45959d668"
1269 }
1270----
1271
1272As response a link:#branch-info[BranchInfo] entity is returned that
1273describes the created branch.
1274
1275.Response
1276----
1277 HTTP/1.1 201 Created
1278 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001279 Content-Type: application/json; charset=UTF-8
Edwin Kempin5c0d6b32013-05-09 19:54:37 +02001280
1281 )]}'
1282 {
1283 "ref": "refs/heads/stable",
1284 "revision": "76016386a0d8ecc7b6be212424978bb45959d668",
1285 "can_delete": true
1286 }
1287----
1288
Edwin Kempin6ce96a12013-06-06 13:20:01 +02001289[[delete-branch]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08001290=== Delete Branch
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08001291--
Edwin Kempin6ce96a12013-06-06 13:20:01 +02001292'DELETE /projects/link:#project-name[\{project-name\}]/branches/link:#branch-id[\{branch-id\}]'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08001293--
Edwin Kempin6ce96a12013-06-06 13:20:01 +02001294
1295Deletes a branch.
1296
1297.Request
1298----
1299 DELETE /projects/MyProject/branches/stable HTTP/1.0
1300----
1301
1302.Response
1303----
1304 HTTP/1.1 204 No Content
1305----
1306
Hugo Arèsef8e3202015-01-12 15:09:06 -05001307[[delete-branches]]
1308=== Delete Branches
1309--
1310'POST /projects/link:#project-name[\{project-name\}]/branches:delete'
1311--
1312
1313Delete one or more branches.
1314
1315The branches to be deleted must be provided in the request body as a
1316link:#delete-branches-input[DeleteBranchesInput] entity.
1317
1318.Request
1319----
1320 POST /projects/MyProject/branches:delete HTTP/1.0
1321 Content-Type: application/json;charset=UTF-8
1322
1323 {
1324 "branches": [
1325 "stable-1.0",
1326 "stable-2.0"
1327 ]
1328 }
1329----
1330
1331.Response
1332----
1333 HTTP/1.1 204 No Content
1334----
1335
1336If some branches could not be deleted, the response is "`409 Conflict`" and the
1337error message is contained in the response body.
1338
Edwin Kempind31e5582013-11-30 12:07:08 +01001339[[get-content]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08001340=== Get Content
Edwin Kempind31e5582013-11-30 12:07:08 +01001341--
1342'GET /projects/link:#project-name[\{project-name\}]/branches/link:#branch-id[\{branch-id\}]/files/link:rest-api-changes.html#file-id[\{file-id\}]/content'
1343--
1344
1345Gets the content of a file from the HEAD revision of a certain branch.
1346
1347.Request
1348----
1349 GET /projects/gerrit/branches/master/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/content HTTP/1.0
1350----
1351
1352The content is returned as base64 encoded string.
1353
1354.Response
1355----
1356 HTTP/1.1 200 OK
1357 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001358 Content-Type: text/plain; charset=UTF-8
Edwin Kempind31e5582013-11-30 12:07:08 +01001359
1360 Ly8gQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY...
1361----
1362
Zhen Chenf7d85ea2016-05-02 15:14:43 -07001363
1364[[get-mergeable-info]]
1365=== Get Mergeable Information
1366--
1367'GET /projects/link:#project-name[\{project-name\}]/branches/link:#branch-id[\{branch-id\}]/mergeable'
1368--
1369
1370Gets whether the source is mergeable with the target branch.
1371
Zhen Chen8f00d552016-07-26 16:54:59 -07001372The `source` query parameter is required, which can be anything that could be
1373resolved to a commit, see examples of the `source` attribute in
1374link:rest-api-changes.html#merge-input[MergeInput].
Zhen Chenf7d85ea2016-05-02 15:14:43 -07001375
1376Also takes an optional parameter `strategy`, which can be `recursive`, `resolve`,
1377`simple-two-way-in-core`, `ours` or `theirs`, default will use project settings.
1378
1379.Request
1380----
1381 GET /projects/test/branches/master/mergeable?source=testbranch&strategy=recursive HTTP/1.0
1382----
1383
Zhen Chen8f00d552016-07-26 16:54:59 -07001384As response a link:rest-api-changes.html#mergeable-info[MergeableInfo] entity is returned.
Zhen Chenf7d85ea2016-05-02 15:14:43 -07001385
1386.Response
1387----
1388 HTTP/1.1 200 OK
1389 Content-Disposition: attachment
1390 Content-Type: application/json; charset=UTF-8
1391
1392 )]}'
1393 {
Zhen Chen8f00d552016-07-26 16:54:59 -07001394 "submit_type": "MERGE_IF_NECESSARY",
1395 "strategy": "recursive",
1396 "mergeable": true,
1397 "commit_merged": false,
1398 "content_merged": false
1399 }
1400----
1401
1402or when there were conflicts.
1403
1404.Response
1405----
1406 HTTP/1.1 200 OK
1407 Content-Disposition: attachment
1408 Content-Type: application/json; charset=UTF-8
1409
1410 )]}'
1411 {
1412 "submit_type": "MERGE_IF_NECESSARY",
1413 "strategy": "recursive",
1414 "mergeable": false,
1415 "conflicts": [
1416 "common.txt",
1417 "shared.txt"
1418 ]
1419 }
1420----
1421
1422or when the 'testbranch' has been already merged.
1423
1424.Response
1425----
1426 HTTP/1.1 200 OK
1427 Content-Disposition: attachment
1428 Content-Type: application/json; charset=UTF-8
1429
1430 )]}'
1431 {
1432 "submit_type": "MERGE_IF_NECESSARY",
1433 "strategy": "recursive",
1434 "mergeable": true,
1435 "commit_merged": true,
1436 "content_merged": true
1437 }
1438----
1439
1440or when only the content of 'testbranch' has been merged.
1441
1442.Response
1443----
1444 HTTP/1.1 200 OK
1445 Content-Disposition: attachment
1446 Content-Type: application/json; charset=UTF-8
1447
1448 )]}'
1449 {
1450 "submit_type": "MERGE_IF_NECESSARY",
1451 "strategy": "recursive",
1452 "mergeable": true,
1453 "commit_merged": false,
1454 "content_merged": true
Zhen Chenf7d85ea2016-05-02 15:14:43 -07001455 }
1456----
1457
Edwin Kempin87504d92014-07-04 12:59:19 +02001458[[get-reflog]]
1459=== Get Reflog
1460--
1461'GET /projects/link:#project-name[\{project-name\}]/branches/link:#branch-id[\{branch-id\}]/reflog'
1462--
1463
1464Gets the reflog of a certain branch.
1465
1466The caller must be project owner.
1467
1468.Request
1469----
1470 GET /projects/gerrit/branches/master/reflog HTTP/1.0
1471----
1472
1473As response a list of link:#reflog-entry-info[ReflogEntryInfo] entities
1474is returned that describe the reflog entries. The reflog entries are
1475returned in reverse order.
1476
1477.Response
1478----
1479 HTTP/1.1 200 OK
1480 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001481 Content-Type: application/json; charset=UTF-8
Edwin Kempin87504d92014-07-04 12:59:19 +02001482
1483 )]}'
1484 [
1485 {
1486 "old_id": "976ced8f4fc0909d7e1584d18455299545881d60",
1487 "new_id": "2eaa94bac536654eb592c941e33b91f925698d16",
1488 "who": {
1489 "name": "Jane Roe",
1490 "email": "jane.roe@example.com",
1491 "date": "2014-06-30 11:53:43.000000000",
1492 "tz": 120
1493 },
1494 "comment": "merged: fast forward"
1495 },
1496 {
1497 "old_id": "c271c6a7161b74f85560c5899c8c73ee89ca5e29",
1498 "new_id": "976ced8f4fc0909d7e1584d18455299545881d60",
1499 "who": {
1500 "name": "John Doe",
1501 "email": "john.doe@example.com",
1502 "date": "2013-10-02 10:45:26.000000000",
1503 "tz": 120
1504 },
1505 "comment": "merged: fast forward"
1506 },
1507 {
1508 "old_id": "0000000000000000000000000000000000000000",
1509 "new_id": "c271c6a7161b74f85560c5899c8c73ee89ca5e29",
1510 "who": {
1511 "name": "John Doe",
1512 "email": "john.doe@example.com",
1513 "date": "2013-09-30 19:08:44.000000000",
1514 "tz": 120
1515 },
1516 "comment": ""
1517 }
1518 ]
1519----
1520
1521The get reflog endpoint also accepts a limit integer in the `n`
1522parameter. This limits the results to show the last `n` reflog entries.
1523
1524Query the last 25 reflog entries.
1525----
1526 GET /projects/gerrit/branches/master/reflog?n=25 HTTP/1.0
1527----
1528
Edwin Kempin2a581fd2014-07-04 14:04:54 +02001529The reflog can also be filtered by timestamp by specifying the `from`
1530and `to` parameters. The timestamp for `from` and `to` must be given as
1531UTC in the following format: `yyyyMMdd_HHmm`.
1532
1533----
1534 GET /projects/gerrit/branches/master/reflog?from=20130101_0000&to=20140101_0000=25 HTTP/1.0
1535----
1536
Edwin Kempin4425c742013-03-18 13:23:00 +01001537[[child-project-endpoints]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08001538== Child Project Endpoints
Edwin Kempin4425c742013-03-18 13:23:00 +01001539
1540[[list-child-projects]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08001541=== List Child Projects
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08001542--
Edwin Kempin4425c742013-03-18 13:23:00 +01001543'GET /projects/link:#project-name[\{project-name\}]/children/'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08001544--
Edwin Kempin4425c742013-03-18 13:23:00 +01001545
1546List the direct child projects of a project.
1547
1548.Request
1549----
1550 GET /projects/Public-Plugins/children/ HTTP/1.0
1551----
1552
1553As result a list of link:#project-info[ProjectInfo] entries is
1554returned that describe the child projects.
1555
1556.Response
1557----
1558 HTTP/1.1 200 OK
1559 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001560 Content-Type: application/json; charset=UTF-8
Edwin Kempin4425c742013-03-18 13:23:00 +01001561
1562 )]}'
1563 [
1564 {
Edwin Kempin4425c742013-03-18 13:23:00 +01001565 "id": "plugins%2Freplication",
1566 "name": "plugins/replication",
1567 "parent": "Public-Plugins",
1568 "description": "Copies to other servers using the Git protocol"
1569 },
1570 {
Edwin Kempin4425c742013-03-18 13:23:00 +01001571 "id": "plugins%2Freviewnotes",
1572 "name": "plugins/reviewnotes",
1573 "parent": "Public-Plugins",
1574 "description": "Annotates merged commits using notes on refs/notes/review."
1575 },
1576 {
Edwin Kempin4425c742013-03-18 13:23:00 +01001577 "id": "plugins%2Fsingleusergroup",
1578 "name": "plugins/singleusergroup",
1579 "parent": "Public-Plugins",
1580 "description": "GroupBackend enabling users to be directly added to access rules"
1581 }
1582 ]
1583----
1584
Edwin Kempinf95bd172013-03-19 11:10:57 +01001585To resolve the child projects of a project recursively the parameter
1586`recursive` can be set.
1587
1588Child projects that are not visible to the calling user are ignored and
1589are not resolved further.
1590
1591.Request
1592----
1593 GET /projects/Public-Projects/children/?recursive HTTP/1.0
1594----
1595
1596.Response
1597----
1598 HTTP/1.1 200 OK
1599 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001600 Content-Type: application/json; charset=UTF-8
Edwin Kempinf95bd172013-03-19 11:10:57 +01001601
1602 )]}'
1603 [
1604 {
Edwin Kempinf95bd172013-03-19 11:10:57 +01001605 "id": "gerrit",
1606 "name": "gerrit",
1607 "parent": "Public-Projects",
1608 "description": "Gerrit Code Review"
1609 },
1610 {
Edwin Kempinf95bd172013-03-19 11:10:57 +01001611 "id": "plugins%2Freplication",
1612 "name": "plugins/replication",
1613 "parent": "Public-Plugins",
1614 "description": "Copies to other servers using the Git protocol"
1615 },
1616 {
Edwin Kempinf95bd172013-03-19 11:10:57 +01001617 "id": "plugins%2Freviewnotes",
1618 "name": "plugins/reviewnotes",
1619 "parent": "Public-Plugins",
1620 "description": "Annotates merged commits using notes on refs/notes/review."
1621 },
1622 {
Edwin Kempinf95bd172013-03-19 11:10:57 +01001623 "id": "plugins%2Fsingleusergroup",
1624 "name": "plugins/singleusergroup",
1625 "parent": "Public-Plugins",
1626 "description": "GroupBackend enabling users to be directly added to access rules"
1627 },
1628 {
Edwin Kempinf95bd172013-03-19 11:10:57 +01001629 "id": "Public-Plugins",
1630 "name": "Public-Plugins",
1631 "parent": "Public-Projects",
1632 "description": "Parent project for plugins/*"
1633 }
1634 ]
1635----
1636
Edwin Kempin5b6c4062013-03-19 09:26:03 +01001637[[get-child-project]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08001638=== Get Child Project
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08001639--
Edwin Kempin5b6c4062013-03-19 09:26:03 +01001640'GET /projects/link:#project-name[\{project-name\}]/children/link:#project-name[\{project-name\}]'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08001641--
Edwin Kempin5b6c4062013-03-19 09:26:03 +01001642
Edwin Kempin8a3fb5b2013-03-21 15:02:22 +01001643Retrieves a child project. If a non-direct child project should be
1644retrieved the parameter `recursive` must be set.
Edwin Kempin5b6c4062013-03-19 09:26:03 +01001645
1646.Request
1647----
1648 GET /projects/Public-Plugins/children/plugins%2Freplication HTTP/1.0
1649----
1650
1651As response a link:#project-info[ProjectInfo] entity is returned that
1652describes the child project.
1653
1654.Response
1655----
1656 HTTP/1.1 200 OK
1657 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001658 Content-Type: application/json; charset=UTF-8
Edwin Kempin5b6c4062013-03-19 09:26:03 +01001659
1660 )]}'
1661 {
Edwin Kempin5b6c4062013-03-19 09:26:03 +01001662 "id": "plugins%2Freplication",
1663 "name": "plugins/replication",
1664 "parent": "Public-Plugins",
1665 "description": "Copies to other servers using the Git protocol"
1666 }
1667----
1668
David Pursehouse8cc68902014-10-06 18:17:16 +09001669[[tag-endpoints]]
1670== Tag Endpoints
1671
David Pursehouse6a446192016-06-03 10:00:34 +09001672[[create-tag]]
1673=== Create Tag
1674
1675--
1676'PUT /projects/link:#project-name[\{project-name\}]/tags/link:#tag-id[\{tag-id\}]'
1677--
1678
1679Create a new tag on the project.
1680
1681In the request body additional data for the tag can be provided as
1682link:#tag-input[TagInput].
1683
1684If a message is provided in the input, the tag is created as an
1685annotated tag with the current user as tagger. Signed tags are not
1686supported.
1687
1688.Request
1689----
1690 PUT /projects/MyProject/tags/v1.0 HTTP/1.0
1691 Content-Type: application/json; charset=UTF-8
1692
1693 {
1694 "message": "annotation",
1695 "revision": "c83117624b5b5d8a7f86093824e2f9c1ed309d63"
1696 }
1697----
1698
1699As response a link:#tag-info[TagInfo] entity is returned that describes
1700the created tag.
1701
1702.Response
1703----
1704 HTTP/1.1 201 Created
1705 Content-Disposition: attachment
1706 Content-Type: application/json; charset=UTF-8
1707
1708 )]}'
1709
1710 "object": "d48d304adc4b6674e11dc2c018ea05fcbdda32fd",
1711 "message": "annotation",
1712 "tagger": {
1713 "name": "David Pursehouse",
1714 "email": "dpursehouse@collab.net",
1715 "date": "2016-06-06 01:22:03.000000000",
1716 "tz": 540
1717 },
1718 "ref": "refs/tags/v1.0",
1719 "revision": "c83117624b5b5d8a7f86093824e2f9c1ed309d63"
1720 }
1721----
1722
David Pursehouse8cc68902014-10-06 18:17:16 +09001723[[list-tags]]
1724=== List Tags
1725--
1726'GET /projects/link:#project-name[\{project-name\}]/tags/'
1727--
1728
1729List the tags of a project.
1730
1731As result a list of link:#tag-info[TagInfo] entries is returned.
1732
1733Only includes tags under the `refs/tags/` namespace.
1734
1735.Request
1736----
1737 GET /projects/work%2Fmy-project/tags/ HTTP/1.0
1738----
1739
1740.Response
1741----
1742 HTTP/1.1 200 OK
1743 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001744 Content-Type: application/json; charset=UTF-8
David Pursehouse8cc68902014-10-06 18:17:16 +09001745
1746 )]}'
1747 [
1748 {
1749 "ref": "refs/tags/v1.0",
1750 "revision": "49ce77fdcfd3398dc0dedbe016d1a425fd52d666",
1751 "object": "1624f5af8ae89148d1a3730df8c290413e3dcf30",
1752 "message": "Annotated tag",
1753 "tagger": {
1754 "name": "David Pursehouse",
1755 "email": "david.pursehouse@sonymobile.com",
1756 "date": "2014-10-06 07:35:03.000000000",
1757 "tz": 540
1758 }
1759 },
1760 {
1761 "ref": "refs/tags/v2.0",
1762 "revision": "1624f5af8ae89148d1a3730df8c290413e3dcf30"
1763 },
1764 {
1765 "ref": "refs/tags/v3.0",
1766 "revision": "c628685b3c5a3614571ecb5c8fceb85db9112313",
1767 "object": "1624f5af8ae89148d1a3730df8c290413e3dcf30",
1768 "message": "Signed tag\n-----BEGIN PGP SIGNATURE-----\nVersion: GnuPG v1.4.11 (GNU/Linux)\n\niQEcBAABAgAGBQJUMlqYAAoJEPI2qVPgglptp7MH/j+KFcittFbxfSnZjUl8n5IZ\nveZo7wE+syjD9sUbMH4EGv0WYeVjphNTyViBof+stGTNkB0VQzLWI8+uWmOeiJ4a\nzj0LsbDOxodOEMI5tifo02L7r4Lzj++EbqtKv8IUq2kzYoQ2xjhKfFiGjeYOn008\n9PGnhNblEHZgCHguGR6GsfN8bfA2XNl9B5Ysl5ybX1kAVs/TuLZR4oDMZ/pW2S75\nhuyNnSgcgq7vl2gLGefuPs9lxkg5Fj3GZr7XPZk4pt/x1oiH7yXxV4UzrUwg2CC1\nfHrBlNbQ4uJNY8TFcwof52Z0cagM5Qb/ZSLglHbqEDGA68HPqbwf5z2hQyU2/U4\u003d\n\u003dZtUX\n-----END PGP SIGNATURE-----",
1769 "tagger": {
1770 "name": "David Pursehouse",
1771 "email": "david.pursehouse@sonymobile.com",
1772 "date": "2014-10-06 09:02:16.000000000",
1773 "tz": 540
1774 }
1775 }
1776 ]
1777----
1778
David Pursehouseb0ba1512015-09-10 14:17:05 +09001779[[tag-options]]
1780==== Tag Options
1781
1782Limit(n)::
1783Limit the number of tags to be included in the results.
1784+
1785.Request
1786----
1787 GET /projects/work%2Fmy-project/tags?n=2 HTTP/1.0
1788----
1789+
1790.Response
1791----
1792 HTTP/1.1 200 OK
1793 Content-Disposition: attachment
1794 Content-Type: application/json; charset=UTF-8
1795
1796 )]}'
1797 [
1798 {
1799 "ref": "refs/tags/v1.0",
1800 "revision": "49ce77fdcfd3398dc0dedbe016d1a425fd52d666",
1801 "object": "1624f5af8ae89148d1a3730df8c290413e3dcf30",
1802 "message": "Annotated tag",
1803 "tagger": {
1804 "name": "David Pursehouse",
1805 "email": "david.pursehouse@sonymobile.com",
1806 "date": "2014-10-06 07:35:03.000000000",
1807 "tz": 540
1808 }
1809 },
1810 {
1811 "ref": "refs/tags/v2.0",
1812 "revision": "1624f5af8ae89148d1a3730df8c290413e3dcf30"
1813 }
1814 ]
1815----
1816
1817Skip(s)::
1818Skip the given number of tags from the beginning of the list.
1819+
1820.Request
1821----
1822 GET /projects/work%2Fmy-project/tags?n=2&s=1 HTTP/1.0
1823----
1824+
1825.Response
1826----
1827 HTTP/1.1 200 OK
1828 Content-Disposition: attachment
1829 Content-Type: application/json; charset=UTF-8
1830
1831 )]}'
1832 [
1833 {
1834 "ref": "refs/tags/v2.0",
1835 "revision": "1624f5af8ae89148d1a3730df8c290413e3dcf30"
1836 },
1837 {
1838 "ref": "refs/tags/v3.0",
1839 "revision": "c628685b3c5a3614571ecb5c8fceb85db9112313",
1840 "object": "1624f5af8ae89148d1a3730df8c290413e3dcf30",
1841 "message": "Signed tag\n-----BEGIN PGP SIGNATURE-----\nVersion: GnuPG v1.4.11 (GNU/Linux)\n\niQEcBAABAgAGBQJUMlqYAAoJEPI2qVPgglptp7MH/j+KFcittFbxfSnZjUl8n5IZ\nveZo7wE+syjD9sUbMH4EGv0WYeVjphNTyViBof+stGTNkB0VQzLWI8+uWmOeiJ4a\nzj0LsbDOxodOEMI5tifo02L7r4Lzj++EbqtKv8IUq2kzYoQ2xjhKfFiGjeYOn008\n9PGnhNblEHZgCHguGR6GsfN8bfA2XNl9B5Ysl5ybX1kAVs/TuLZR4oDMZ/pW2S75\nhuyNnSgcgq7vl2gLGefuPs9lxkg5Fj3GZr7XPZk4pt/x1oiH7yXxV4UzrUwg2CC1\nfHrBlNbQ4uJNY8TFcwof52Z0cagM5Qb/ZSLglHbqEDGA68HPqbwf5z2hQyU2/U4\u003d\n\u003dZtUX\n-----END PGP SIGNATURE-----",
1842 "tagger": {
1843 "name": "David Pursehouse",
1844 "email": "david.pursehouse@sonymobile.com",
1845 "date": "2014-10-06 09:02:16.000000000",
1846 "tz": 540
1847 }
1848 }
1849 ]
1850----
1851
1852
David Pursehouse8cc68902014-10-06 18:17:16 +09001853[[get-tag]]
1854=== Get Tag
1855--
1856'GET /projects/link:#project-name[\{project-name\}]/tags/link:#tag-id[\{tag-id\}]'
1857--
1858
1859Retrieves a tag of a project.
1860
1861.Request
1862----
1863 GET /projects/work%2Fmy-project/tags/v1.0 HTTP/1.0
1864----
1865
1866As response a link:#tag-info[TagInfo] entity is returned that describes the tag.
1867
1868.Response
1869----
1870 HTTP/1.1 200 OK
1871 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001872 Content-Type: application/json; charset=UTF-8
David Pursehouse8cc68902014-10-06 18:17:16 +09001873
1874 )]}'
1875 {
1876 "ref": "refs/tags/v1.0",
1877 "revision": "49ce77fdcfd3398dc0dedbe016d1a425fd52d666",
1878 "object": "1624f5af8ae89148d1a3730df8c290413e3dcf30",
1879 "message": "Annotated tag",
1880 "tagger": {
1881 "name": "David Pursehouse",
1882 "email": "david.pursehouse@sonymobile.com",
1883 "date": "2014-10-06 07:35:03.000000000",
1884 "tz": 540
1885 }
1886 }
1887----
1888
David Pursehousee1132162016-11-30 20:42:33 +09001889[[delete-tag]]
1890=== Delete Tag
1891--
1892'DELETE /projects/link:#project-name[\{project-name\}]/tags/link:#tag-id[\{tag-id\}]'
1893--
1894
1895Deletes a tag.
1896
1897.Request
1898----
1899 DELETE /projects/MyProject/tags/v1.0 HTTP/1.0
1900----
1901
1902.Response
1903----
1904 HTTP/1.1 204 No Content
1905----
David Pursehouse8cc68902014-10-06 18:17:16 +09001906
David Pursehouse467aecb2016-12-02 14:18:42 +09001907[[delete-tags]]
1908=== Delete Tags
1909--
1910'POST /projects/link:#project-name[\{project-name\}]/tags:delete'
1911--
1912
1913Delete one or more tags.
1914
1915The tags to be deleted must be provided in the request body as a
1916link:#delete-tags-input[DeleteTagsInput] entity.
1917
1918.Request
1919----
1920 POST /projects/MyProject/tags:delete HTTP/1.0
1921 Content-Type: application/json;charset=UTF-8
1922
1923 {
1924 "tags": [
1925 "v1.0",
1926 "v2.0"
1927 ]
1928 }
1929----
1930
1931.Response
1932----
1933 HTTP/1.1 204 No Content
1934----
1935
1936If some tags could not be deleted, the response is "`409 Conflict`" and the
1937error message is contained in the response body.
1938
Edwin Kempin1b993602014-07-08 16:18:45 +02001939[[commit-endpoints]]
1940== Commit Endpoints
1941
1942[[get-commit]]
1943=== Get Commit
1944--
1945'GET /projects/link:#project-name[\{project-name\}]/commits/link:#commit-id[\{commit-id\}]'
1946--
1947
1948Retrieves a commit of a project.
1949
1950The commit must be visible to the caller.
1951
1952.Request
1953----
1954 GET /projects/work%2Fmy-project/commits/a8a477efffbbf3b44169bb9a1d3a334cbbd9aa96 HTTP/1.0
1955----
1956
1957As response a link:rest-api-changes.html#commit-info[CommitInfo] entity
1958is returned that describes the commit.
1959
1960.Response
1961----
1962 HTTP/1.1 200 OK
1963 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09001964 Content-Type: application/json; charset=UTF-8
Edwin Kempin1b993602014-07-08 16:18:45 +02001965
1966 )]}'
1967 {
1968 "commit": "184ebe53805e102605d11f6b143486d15c23a09c",
1969 "parents": [
1970 {
1971 "commit": "1eee2c9d8f352483781e772f35dc586a69ff5646",
1972 "subject": "Migrate contributor agreements to All-Projects."
1973 }
1974 ],
1975 "author": {
1976 "name": "Shawn O. Pearce",
1977 "email": "sop@google.com",
1978 "date": "2012-04-24 18:08:08.000000000",
1979 "tz": -420
1980 },
1981 "committer": {
1982 "name": "Shawn O. Pearce",
1983 "email": "sop@google.com",
1984 "date": "2012-04-24 18:08:08.000000000",
1985 "tz": -420
1986 },
1987 "subject": "Use an EventBus to manage star icons",
1988 "message": "Use an EventBus to manage star icons\n\nImage widgets that need to ..."
1989 }
1990----
1991
Gustaf Lundh1386d592016-10-19 23:19:08 +02001992[[get-included-in]]
1993=== Get Included In
1994--
1995'GET /projects/link:#project-name[\{project-name\}]/commits/link:#commit-id[\{commit-id\}]/in'
1996--
1997
1998Retrieves the branches and tags in which a change is included. As result
1999an link:rest-api-changes.html#included-in-info[IncludedInInfo] entity is returned.
2000
2001.Request
2002----
2003 GET /projects/work%2Fmy-project/commits/a8a477efffbbf3b44169bb9a1d3a334cbbd9aa96/in HTTP/1.0
2004----
2005
2006.Response
2007----
2008 HTTP/1.1 200 OK
2009 Content-Disposition: attachment
2010 Content-Type: application/json;charset=UTF-8
2011
2012 )]}'
2013 {
2014 "branches": [
2015 "master"
2016 ],
2017 "tags": []
2018 }
2019----
2020
Zhen Chend1462d82016-05-12 13:55:37 -07002021[[get-content-from-commit]]
Edwin Kempin6f7410a2014-07-09 15:46:22 +02002022=== Get Content
2023--
2024'GET /projects/link:#project-name[\{project-name\}]/commits/link:#commit-id[\{commit-id\}]/files/link:rest-api-changes.html#file-id[\{file-id\}]/content'
2025--
2026
2027Gets the content of a file from a certain commit.
2028
2029.Request
2030----
2031 GET /projects/work%2Fmy-project/commits/a8a477efffbbf3b44169bb9a1d3a334cbbd9aa96/files/gerrit-server%2Fsrc%2Fmain%2Fjava%2Fcom%2Fgoogle%2Fgerrit%2Fserver%2Fproject%2FRefControl.java/content HTTP/1.0
2032----
2033
2034The content is returned as base64 encoded string.
2035
2036.Response
2037----
2038 HTTP/1.1 200 OK
2039 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09002040 Content-Type: text/plain; charset=UTF-8
Edwin Kempin6f7410a2014-07-09 15:46:22 +02002041
2042 Ly8gQ29weXJpZ2h0IChDKSAyMDEwIFRoZSBBbmRyb2lkIE9wZW4gU291cmNlIFByb2plY...
2043----
2044
Edwin Kempinc3fe3cb2013-02-13 15:09:23 +01002045[[dashboard-endpoints]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002046== Dashboard Endpoints
Edwin Kempinc3fe3cb2013-02-13 15:09:23 +01002047
Edwin Kempin76202742013-02-15 13:51:50 +01002048[[list-dashboards]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002049=== List Dashboards
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08002050--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +01002051'GET /projects/link:#project-name[\{project-name\}]/dashboards/'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08002052--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +01002053
Edwin Kempind0a63922013-01-23 16:32:59 +01002054List custom dashboards for a project.
2055
Edwin Kempin55367622013-02-05 09:09:23 +01002056As result a list of link:#dashboard-info[DashboardInfo] entries is
2057returned.
2058
Edwin Kempind0a63922013-01-23 16:32:59 +01002059List all dashboards for the `work/my-project` project:
Edwin Kempin37440832013-02-06 11:36:00 +01002060
2061.Request
Edwin Kempind0a63922013-01-23 16:32:59 +01002062----
2063 GET /projects/work%2Fmy-project/dashboards/ HTTP/1.0
Edwin Kempin37440832013-02-06 11:36:00 +01002064----
Edwin Kempind0a63922013-01-23 16:32:59 +01002065
Edwin Kempin37440832013-02-06 11:36:00 +01002066.Response
2067----
Edwin Kempind0a63922013-01-23 16:32:59 +01002068 HTTP/1.1 200 OK
2069 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09002070 Content-Type: application/json; charset=UTF-8
Edwin Kempind0a63922013-01-23 16:32:59 +01002071
2072 )]}'
2073 [
2074 {
Edwin Kempind0a63922013-01-23 16:32:59 +01002075 "id": "main:closed",
2076 "ref": "main",
2077 "path": "closed",
2078 "description": "Merged and abandoned changes in last 7 weeks",
2079 "url": "/dashboard/?title\u003dClosed+changes\u0026Merged\u003dstatus:merged+age:7w\u0026Abandoned\u003dstatus:abandoned+age:7w",
2080 "default": true,
2081 "title": "Closed changes",
2082 "sections": [
2083 {
2084 "name": "Merged",
2085 "query": "status:merged age:7w"
2086 },
2087 {
2088 "name": "Abandoned",
2089 "query": "status:abandoned age:7w"
2090 }
2091 ]
2092 }
2093 ]
2094----
2095
Edwin Kempina64c4b92013-01-23 11:30:40 +01002096.Get all dashboards of the 'All-Projects' project
2097****
2098get::/projects/All-Projects/dashboards/
2099****
2100
Edwin Kempin67e923c2013-02-14 13:57:12 +01002101[[get-dashboard]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002102=== Get Dashboard
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08002103--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +01002104'GET /projects/link:#project-name[\{project-name\}]/dashboards/link:#dashboard-id[\{dashboard-id\}]'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08002105--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +01002106
Edwin Kempin67e923c2013-02-14 13:57:12 +01002107Retrieves a project dashboard. The dashboard can be defined on that
2108project or be inherited from a parent project.
2109
2110.Request
2111----
2112 GET /projects/work%2Fmy-project/dashboards/main:closed HTTP/1.0
2113----
2114
2115As response a link:#dashboard-info[DashboardInfo] entity is returned
2116that describes the dashboard.
2117
2118.Response
2119----
2120 HTTP/1.1 200 OK
2121 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09002122 Content-Type: application/json; charset=UTF-8
Edwin Kempin67e923c2013-02-14 13:57:12 +01002123
2124 )]}'
2125 {
Edwin Kempin67e923c2013-02-14 13:57:12 +01002126 "id": "main:closed",
2127 "ref": "main",
2128 "path": "closed",
2129 "description": "Merged and abandoned changes in last 7 weeks",
2130 "url": "/dashboard/?title\u003dClosed+changes\u0026Merged\u003dstatus:merged+age:7w\u0026Abandoned\u003dstatus:abandoned+age:7w",
2131 "default": true,
2132 "title": "Closed changes",
2133 "sections": [
2134 {
2135 "name": "Merged",
2136 "query": "status:merged age:7w"
2137 },
2138 {
2139 "name": "Abandoned",
2140 "query": "status:abandoned age:7w"
2141 }
2142 ]
2143 }
2144----
2145
2146To retrieve the default dashboard of a project use `default` as
2147dashboard-id.
Edwin Kempin37440832013-02-06 11:36:00 +01002148
2149.Request
Edwin Kempind0a63922013-01-23 16:32:59 +01002150----
2151 GET /projects/work%2Fmy-project/dashboards/default HTTP/1.0
Edwin Kempin37440832013-02-06 11:36:00 +01002152----
Edwin Kempind0a63922013-01-23 16:32:59 +01002153
Edwin Kempin37440832013-02-06 11:36:00 +01002154.Response
2155----
Edwin Kempind0a63922013-01-23 16:32:59 +01002156 HTTP/1.1 200 OK
2157 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09002158 Content-Type: application/json; charset=UTF-8
Edwin Kempind0a63922013-01-23 16:32:59 +01002159
2160 )]}'
2161 {
Edwin Kempind0a63922013-01-23 16:32:59 +01002162 "id": "main:closed",
2163 "ref": "main",
2164 "path": "closed",
Edwin Kempin67e923c2013-02-14 13:57:12 +01002165 "description": "Merged and abandoned changes in last 7 weeks",
2166 "url": "/dashboard/?title\u003dClosed+changes\u0026Merged\u003dstatus:merged+age:7w\u0026Abandoned\u003dstatus:abandoned+age:7w",
Edwin Kempind0a63922013-01-23 16:32:59 +01002167 "default": true,
Edwin Kempin67e923c2013-02-14 13:57:12 +01002168 "title": "Closed changes",
2169 "sections": [
2170 {
2171 "name": "Merged",
2172 "query": "status:merged age:7w"
2173 },
2174 {
2175 "name": "Abandoned",
2176 "query": "status:abandoned age:7w"
2177 }
2178 ]
Edwin Kempind0a63922013-01-23 16:32:59 +01002179 }
2180----
2181
Edwin Kempin67e923c2013-02-14 13:57:12 +01002182[[set-dashboard]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002183=== Set Dashboard
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08002184--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +01002185'PUT /projects/link:#project-name[\{project-name\}]/dashboards/link:#dashboard-id[\{dashboard-id\}]'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08002186--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +01002187
Edwin Kempin67e923c2013-02-14 13:57:12 +01002188Updates/Creates a project dashboard.
2189
2190Currently only supported for the `default` dashboard.
2191
2192The creation/update information for the dashboard must be provided in
2193the request body as a link:#dashboard-input[DashboardInput] entity.
2194
2195.Request
2196----
2197 PUT /projects/work%2Fmy-project/dashboards/default HTTP/1.0
David Pursehouse56bf1cb2015-01-06 15:44:00 +09002198 Content-Type: application/json; charset=UTF-8
Edwin Kempin67e923c2013-02-14 13:57:12 +01002199
2200 {
2201 "id": "main:closed",
2202 "commit_message": "Define the default dashboard"
2203 }
2204----
2205
2206As response the new/updated dashboard is returned as a
2207link:#dashboard-info[DashboardInfo] entity.
2208
2209.Response
2210----
2211 HTTP/1.1 200 OK
2212 Content-Disposition: attachment
David Pursehouse56bf1cb2015-01-06 15:44:00 +09002213 Content-Type: application/json; charset=UTF-8
Edwin Kempin67e923c2013-02-14 13:57:12 +01002214
2215 )]}'
2216 {
Edwin Kempin67e923c2013-02-14 13:57:12 +01002217 "id": "main:closed",
2218 "ref": "main",
2219 "path": "closed",
2220 "description": "Merged and abandoned changes in last 7 weeks",
2221 "url": "/dashboard/?title\u003dClosed+changes\u0026Merged\u003dstatus:merged+age:7w\u0026Abandoned\u003dstatus:abandoned+age:7w",
2222 "default": true,
2223 "title": "Closed changes",
2224 "sections": [
2225 {
2226 "name": "Merged",
2227 "query": "status:merged age:7w"
2228 },
2229 {
2230 "name": "Abandoned",
2231 "query": "status:abandoned age:7w"
2232 }
2233 ]
2234 }
2235----
2236
2237[[delete-dashboard]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002238=== Delete Dashboard
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08002239--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +01002240'DELETE /projects/link:#project-name[\{project-name\}]/dashboards/link:#dashboard-id[\{dashboard-id\}]'
Yuxuan 'fishy' Wangd85b6872013-11-15 11:47:46 -08002241--
Edwin Kempin50d3d9b2013-03-06 16:38:26 +01002242
Edwin Kempin67e923c2013-02-14 13:57:12 +01002243Deletes a project dashboard.
2244
2245Currently only supported for the `default` dashboard.
2246
Edwin Kempinefec4492013-02-22 10:09:23 +01002247The request body does not need to include a link:#dashboard-input[
John Spurlockd25fad12013-03-09 11:48:49 -05002248DashboardInput] entity if no commit message is specified.
Edwin Kempin67e923c2013-02-14 13:57:12 +01002249
2250Please note that some proxies prohibit request bodies for DELETE
2251requests.
2252
2253.Request
2254----
2255 DELETE /projects/work%2Fmy-project/dashboards/default HTTP/1.0
2256----
2257
2258.Response
2259----
2260 HTTP/1.1 204 No Content
2261----
2262
Edwin Kempin34d83352013-02-06 10:40:17 +01002263
2264[[ids]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002265== IDs
Edwin Kempin34d83352013-02-06 10:40:17 +01002266
Edwin Kempin196e1732013-05-09 15:12:34 +02002267[[branch-id]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002268=== \{branch-id\}
Edwin Kempin196e1732013-05-09 15:12:34 +02002269The name of a branch or `HEAD`. The prefix `refs/heads/` can be
2270omitted.
2271
Edwin Kempin1b993602014-07-08 16:18:45 +02002272[[commit-id]]
2273=== \{commit-id\}
2274Commit ID.
2275
David Pursehouse8cc68902014-10-06 18:17:16 +09002276[[tag-id]]
2277=== \{tag-id\}
2278The name of a tag. The prefix `refs/tags/` can be omitted.
2279
Edwin Kempin50d3d9b2013-03-06 16:38:26 +01002280[[dashboard-id]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002281=== \{dashboard-id\}
Edwin Kempin67e923c2013-02-14 13:57:12 +01002282The ID of a dashboard in the format '<ref>:<path>'.
2283
2284A special dashboard ID is `default` which represents the default
2285dashboard of a project.
2286
Edwin Kempin50d3d9b2013-03-06 16:38:26 +01002287[[project-name]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002288=== \{project-name\}
Edwin Kempin34d83352013-02-06 10:40:17 +01002289The name of the project.
2290
Edwin Kempina9e94ab2015-03-06 10:35:39 +01002291If the name ends with `.git`, the suffix will be automatically removed.
2292
Edwin Kempin34d83352013-02-06 10:40:17 +01002293
Edwin Kempin51a6dc92013-02-04 15:43:59 +01002294[[json-entities]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002295== JSON Entities
Edwin Kempin51a6dc92013-02-04 15:43:59 +01002296
Edwin Kempin62946742014-07-09 11:17:58 +02002297[[ban-input]]
2298=== BanInput
2299The `BanInput` entity contains information for banning commits in a
2300project.
2301
David Pursehouseae367192014-11-25 17:24:47 +09002302[options="header",cols="1,^2,4"]
Edwin Kempin62946742014-07-09 11:17:58 +02002303|=======================
2304|Field Name||Description
2305|`commits` ||List of commits to be banned.
2306|`reason` |optional|Reason for banning the commits.
2307|=======================
2308
2309[[ban-result-info]]
2310=== BanResultInfo
2311The `BanResultInfo` entity describes the result of banning commits.
2312
David Pursehouseae367192014-11-25 17:24:47 +09002313[options="header",cols="1,^2,4"]
Edwin Kempin62946742014-07-09 11:17:58 +02002314|=============================
2315|Field Name ||Description
2316|`newly_banned` |optional|List of newly banned commits.
2317|`already_banned`|optional|List of commits that were already banned.
2318|`ignored` |optional|List of object IDs that were ignored.
2319|=============================
2320
Edwin Kempin521c1242015-01-23 12:44:44 +01002321[[branch-info]]
2322=== BranchInfo
2323The `BranchInfo` entity contains information about a branch.
2324
2325[options="header",cols="1,^2,4"]
2326|=========================
2327|Field Name ||Description
2328|`ref` ||The ref of the branch.
2329|`revision` ||The revision to which the branch points.
2330|`can_delete`|`false` if not set|
2331Whether the calling user can delete this branch.
2332|`web_links` |optional|
2333Links to the branch in external sites as a list of
2334link:rest-api-changes.html#web-link-info[WebLinkInfo] entries.
2335|=========================
2336
Edwin Kempin5c0d6b32013-05-09 19:54:37 +02002337[[branch-input]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002338=== BranchInput
Edwin Kempin5c0d6b32013-05-09 19:54:37 +02002339The `BranchInput` entity contains information for the creation of
2340a new branch.
2341
David Pursehouseae367192014-11-25 17:24:47 +09002342[options="header",cols="1,^2,4"]
Edwin Kempin5c0d6b32013-05-09 19:54:37 +02002343|=======================
2344|Field Name||Description
2345|`ref` |optional|
2346The name of the branch. The prefix `refs/heads/` can be
2347omitted. +
2348If set, must match the branch ID in the URL.
2349|`revision`|optional|
2350The base revision of the new branch. +
2351If not set, `HEAD` will be used as base revision.
2352|=======================
2353
Edwin Kempin0cb5a562013-07-12 15:41:04 +02002354[[config-info]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002355=== ConfigInfo
Edwin Kempin0cb5a562013-07-12 15:41:04 +02002356The `ConfigInfo` entity contains information about the effective project
2357configuration.
2358
David Pursehouseae367192014-11-25 17:24:47 +09002359[options="header",cols="1,^2,4"]
Deniz Türkoglu52777272014-09-08 17:02:48 +02002360|=======================================================
2361|Field Name ||Description
2362|`description` |optional|
Edwin Kempina23eb102013-07-17 09:10:54 +02002363The description of the project.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002364|`use_contributor_agreements` |optional|
Edwin Kempin0cb5a562013-07-12 15:41:04 +02002365link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether
2366authors must complete a contributor agreement on the site before
2367pushing any commits or changes to this project.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002368|`use_content_merge` |optional|
Edwin Kempin0cb5a562013-07-12 15:41:04 +02002369link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether
2370Gerrit will try to perform a 3-way merge of text file content when a
2371file has been modified by both the destination branch and the change
2372being submitted. This option only takes effect if submit type is not
2373FAST_FORWARD_ONLY.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002374|`use_signed_off_by` |optional|
Edwin Kempin0cb5a562013-07-12 15:41:04 +02002375link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether
2376each change must contain a Signed-off-by line from either the author or
2377the uploader in the commit message.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002378|`create_new_change_for_all_not_in_target` |optional|
2379link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether
2380a new change is created for every commit not in target branch.
2381|`require_change_id` |optional|
Edwin Kempin0cb5a562013-07-12 15:41:04 +02002382link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether a
2383valid link:user-changeid.html[Change-Id] footer in any commit uploaded
2384for review is required. This does not apply to commits pushed directly
2385to a branch or tag.
Doug Claar1b0f76252016-03-23 13:34:55 -07002386|`enable_signed_push`|optional, not set if signed push is disabled|
Dave Borowitz5170e0f2015-06-18 21:05:29 -04002387link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether
2388signed push validation is enabled on the project.
Doug Claar1b0f76252016-03-23 13:34:55 -07002389|`require_signed_push`|optional, not set if signed push is disabled|
Dave Borowitz0543c732015-10-20 10:35:26 -04002390link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether
2391signed push validation is required on the project.
Saša Živkov225b7a72015-11-17 17:37:43 +01002392|`reject_implicit_merges`|optional|
2393link:#inherited-boolean-info[InheritedBooleanInfo] that tells whether
2394implicit merges should be rejected on changes pushed to the project.
Edwin Kempin3c99f592013-07-15 10:12:27 +02002395|`max_object_size_limit` ||
2396The link:config-gerrit.html#receive.maxObjectSizeLimit[max object size
2397limit] of this project as a link:#max-object-size-limit-info[
2398MaxObjectSizeLimitInfo] entity.
2399|`submit_type` ||
2400The default submit type of the project, can be `MERGE_IF_NECESSARY`,
2401`FAST_FORWARD_ONLY`, `REBASE_IF_NECESSARY`, `MERGE_ALWAYS` or
2402`CHERRY_PICK`.
2403|`state` |optional|
2404The state of the project, can be `ACTIVE`, `READ_ONLY` or `HIDDEN`. +
2405Not set if the project state is `ACTIVE`.
Edwin Kempin3660c132013-07-16 08:03:11 +02002406|`commentlinks` ||
Edwin Kempin8aa53af2013-07-15 10:43:15 +02002407Map with the comment link configurations of the project. The name of
2408the comment link configuration is mapped to the comment link
2409configuration, which has the same format as the
2410link:config-gerrit.html#_a_id_commentlink_a_section_commentlink[
2411commentlink section] of `gerrit.config`.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002412|`theme` |optional|
Edwin Kempin272402e2013-07-15 11:17:36 +02002413The theme that is configured for the project as a link:#theme-info[
2414ThemeInfo] entity.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002415|`plugin_config` |optional|
Edwin Kempin9ce4f552013-11-15 16:00:00 +01002416Plugin configuration as map which maps the plugin name to a map of
2417parameter names to link:#config-parameter-info[ConfigParameterInfo]
2418entities.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002419|`actions` |optional|
David Ostrovsky9e8b2fb2013-08-30 08:09:53 +02002420Actions the caller might be able to perform on this project. The
2421information is a map of view names to
2422link:rest-api-changes.html#action-info[ActionInfo] entities.
David Pursehouse510b87d2014-11-25 16:46:28 +09002423|=======================================================
Edwin Kempin0cb5a562013-07-12 15:41:04 +02002424
Edwin Kempina23eb102013-07-17 09:10:54 +02002425[[config-input]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002426=== ConfigInput
Edwin Kempina23eb102013-07-17 09:10:54 +02002427The `ConfigInput` entity describes a new project configuration.
2428
David Pursehouseae367192014-11-25 17:24:47 +09002429[options="header",cols="1,^2,4"]
Deniz Türkoglu52777272014-09-08 17:02:48 +02002430|======================================================
2431|Field Name ||Description
2432|`description` |optional|
Edwin Kempina23eb102013-07-17 09:10:54 +02002433The new description of the project. +
2434If not set, the description is removed.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002435|`use_contributor_agreements` |optional|
Edwin Kempina23eb102013-07-17 09:10:54 +02002436Whether authors must complete a contributor agreement on the site
2437before pushing any commits or changes to this project. +
2438Can be `TRUE`, `FALSE` or `INHERIT`. +
2439If not set, this setting is not updated.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002440|`use_content_merge` |optional|
Edwin Kempina23eb102013-07-17 09:10:54 +02002441Whether Gerrit will try to perform a 3-way merge of text file content
2442when a file has been modified by both the destination branch and the
2443change being submitted. This option only takes effect if submit type is
2444not FAST_FORWARD_ONLY. +
2445Can be `TRUE`, `FALSE` or `INHERIT`. +
2446If not set, this setting is not updated.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002447|`use_signed_off_by` |optional|
Edwin Kempina23eb102013-07-17 09:10:54 +02002448Whether each change must contain a Signed-off-by line from either the
2449author or the uploader in the commit message. +
2450Can be `TRUE`, `FALSE` or `INHERIT`. +
2451If not set, this setting is not updated.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002452|`create_new_change_for_all_not_in_target` |optional|
2453Whether a new change will be created for every commit not in target
2454branch. +
2455Can be `TRUE`, `FALSE` or `INHERIT`. +
2456If not set, this setting is not updated.
2457|`require_change_id` |optional|
Edwin Kempina23eb102013-07-17 09:10:54 +02002458Whether a valid link:user-changeid.html[Change-Id] footer in any commit
2459uploaded for review is required. This does not apply to commits pushed
2460directly to a branch or tag. +
2461Can be `TRUE`, `FALSE` or `INHERIT`. +
2462If not set, this setting is not updated.
Saša Živkov225b7a72015-11-17 17:37:43 +01002463|`reject_implicit_merges` |optional|
2464Whether a check for implicit merges will be performed when changes
2465are pushed for review. +
2466Can be `TRUE`, `FALSE` or `INHERIT`. +
2467If not set, this setting is not updated.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002468|`max_object_size_limit` |optional|
Edwin Kempina23eb102013-07-17 09:10:54 +02002469The link:config-gerrit.html#receive.maxObjectSizeLimit[max object size
2470limit] of this project as a link:#max-object-size-limit-info[
2471MaxObjectSizeLimitInfo] entity. +
2472If set to `0`, the max object size limit is removed. +
2473If not set, this setting is not updated.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002474|`submit_type` |optional|
Edwin Kempina23eb102013-07-17 09:10:54 +02002475The default submit type of the project, can be `MERGE_IF_NECESSARY`,
2476`FAST_FORWARD_ONLY`, `REBASE_IF_NECESSARY`, `MERGE_ALWAYS` or
2477`CHERRY_PICK`. +
2478If not set, the submit type is not updated.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002479|`state` |optional|
Edwin Kempina23eb102013-07-17 09:10:54 +02002480The state of the project, can be `ACTIVE`, `READ_ONLY` or `HIDDEN`. +
2481Not set if the project state is `ACTIVE`. +
2482If not set, the project state is not updated.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002483|`plugin_config_values` |optional|
Edwin Kempin9ce4f552013-11-15 16:00:00 +01002484Plugin configuration values as map which maps the plugin name to a map
2485of parameter names to values.
David Pursehouse510b87d2014-11-25 16:46:28 +09002486|======================================================
Edwin Kempina23eb102013-07-17 09:10:54 +02002487
Edwin Kempin9ce4f552013-11-15 16:00:00 +01002488[[config-parameter-info]]
David Pursehouseb10c2662016-12-06 08:41:33 +09002489=== ConfigParameterInfo
Edwin Kempin9ce4f552013-11-15 16:00:00 +01002490The `ConfigParameterInfo` entity describes a project configuration
2491parameter.
2492
David Pursehouseae367192014-11-25 17:24:47 +09002493[options="header",cols="1,^2,4"]
Edwin Kempin9ce4f552013-11-15 16:00:00 +01002494|===============================
2495|Field Name ||Description
2496|`display_name` |optional|
2497The display name of the configuration parameter.
Edwin Kempind92196d2014-01-27 21:55:46 +01002498|`description` |optional|
2499The description of the configuration parameter.
Edwin Kempinaec61322014-01-28 12:59:22 +01002500|`warning` |optional|
2501Warning message for the configuration parameter.
Edwin Kempin9ce4f552013-11-15 16:00:00 +01002502|`type` ||
David Ostrovskyc6dd2172014-02-01 19:13:27 +01002503The type of the configuration parameter. Can be `STRING`, `INT`,
2504`LONG`, `BOOLEAN`, `LIST` or `ARRAY`.
Edwin Kempin9ce4f552013-11-15 16:00:00 +01002505|`value` |optional|
Edwin Kempind32beef2013-11-28 20:36:33 +01002506The value of the configuration parameter as string. If the parameter
2507is inheritable this is the effective value which is deduced from
2508`configured_value` and `inherited_value`.
David Ostrovskyc6dd2172014-02-01 19:13:27 +01002509|`values` |optional|
2510The list of values. Only set if the `type` is `ARRAY`.
Doug Claar1b0f76252016-03-23 13:34:55 -07002511|`editable` |`false` if not set|
Edwin Kempin0d485232013-11-17 18:55:48 +01002512Whether the value is editable.
Edwin Kempin20f256fb2013-11-28 19:56:15 +01002513|`permitted_values`|optional|
David Ostrovskyc6dd2172014-02-01 19:13:27 +01002514The list of permitted values. Only set if the `type` is `LIST`.
Edwin Kempind32beef2013-11-28 20:36:33 +01002515|`inheritable` |`false` if not set|
2516Whether the configuration parameter can be inherited.
2517|`configured_value`|optional|
2518The value of the configuration parameter that is configured on this
2519project, only set if `inheritable` is true.
2520|`inherited_value` |optional|
2521The inherited value of the configuration parameter, only set if
2522`inheritable` is true.
2523|`permitted_values` |optional|
2524The list of permitted values, only set if the `type` is `LIST`.
Edwin Kempin9ce4f552013-11-15 16:00:00 +01002525|===============================
2526
Edwin Kempin55367622013-02-05 09:09:23 +01002527[[dashboard-info]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002528=== DashboardInfo
Edwin Kempin55367622013-02-05 09:09:23 +01002529The `DashboardInfo` entity contains information about a project
2530dashboard.
2531
David Pursehouseae367192014-11-25 17:24:47 +09002532[options="header",cols="1,^2,4"]
Edwin Kempin55367622013-02-05 09:09:23 +01002533|===============================
2534|Field Name ||Description
Edwin Kempin55367622013-02-05 09:09:23 +01002535|`id` ||
2536The ID of the dashboard. The ID has the format '<ref>:<path>',
2537where ref and path are URL encoded.
2538|`project` ||
2539The name of the project for which this dashboard is returned.
2540|`defining_project`||
2541The name of the project in which this dashboard is defined.
2542This is different from `project` if the dashboard is inherited from a
2543parent project.
2544|`ref` ||
2545The name of the ref in which the dashboard is defined, without the
2546`refs/meta/dashboards/` prefix, which is common for all dashboard refs.
2547|`path` ||
2548The path of the file in which the dashboard is defined.
2549|`description` |optional|The description of the dashboard.
2550|`foreach` |optional|
2551Subquery that applies to all sections in the dashboard. +
2552Tokens such as `${project}` are not resolved.
2553|`url` ||
David Pursehousea1d633b2014-05-02 17:21:02 +09002554The URL under which the dashboard can be opened in the Gerrit Web UI. +
Edwin Kempin55367622013-02-05 09:09:23 +01002555The URL is relative to the canonical web URL. +
2556Tokens in the queries such as `${project}` are resolved.
2557|`default` |not set if `false`|
2558Whether this is the default dashboard of the project.
2559|`title` |optional|The title of the dashboard.
2560|`sections` ||
2561The list of link:#dashboard-section-info[sections] in the dashboard.
2562|===============================
2563
Edwin Kempin67e923c2013-02-14 13:57:12 +01002564[[dashboard-input]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002565=== DashboardInput
Edwin Kempin67e923c2013-02-14 13:57:12 +01002566The `DashboardInput` entity contains information to create/update a
2567project dashboard.
2568
David Pursehouseae367192014-11-25 17:24:47 +09002569[options="header",cols="1,^2,4"]
Edwin Kempin67e923c2013-02-14 13:57:12 +01002570|=============================
2571|Field Name ||Description
2572|`id` |optional|
Edwin Kempinc95c5082013-03-12 16:56:25 +01002573URL encoded ID of a dashboard to which this dashboard should link to.
Edwin Kempin67e923c2013-02-14 13:57:12 +01002574|`commit_message`|optional|
2575Message that should be used to commit the change of the dashboard.
2576|=============================
2577
Edwin Kempin55367622013-02-05 09:09:23 +01002578[[dashboard-section-info]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002579=== DashboardSectionInfo
Edwin Kempin55367622013-02-05 09:09:23 +01002580The `DashboardSectionInfo` entity contains information about a section
2581in a dashboard.
2582
David Pursehouseae367192014-11-25 17:24:47 +09002583[options="header",cols="1,6"]
Edwin Kempin55367622013-02-05 09:09:23 +01002584|===========================
2585|Field Name |Description
2586|`name` |The title of the section.
2587|`query` |The query of the section. +
2588Tokens such as `${project}` are not resolved.
2589|===========================
2590
Hugo Arèsef8e3202015-01-12 15:09:06 -05002591[[delete-branches-input]]
2592=== DeleteBranchesInput
2593The `DeleteBranchesInput` entity contains information about branches that should
2594be deleted.
2595
2596[options="header",width="50%",cols="1,6"]
2597|==========================
2598|Field Name |Description
2599|`branches` |A list of branch names that identify the branches that should be
2600deleted.
2601|==========================
2602
David Pursehouse467aecb2016-12-02 14:18:42 +09002603[[delete-tags-input]]
2604=== DeleteTagsInput
2605The `DeleteTagsInput` entity contains information about tags that should
2606be deleted.
2607
2608[options="header",width="50%",cols="1,6"]
2609|==========================
2610|Field Name |Description
2611|`tags` |A list of tag names that identify the tags that should be
2612deleted.
2613|==========================
2614
Edwin Kempin4bdc72d2013-11-13 13:30:49 +01002615[[gc-input]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002616=== GCInput
Edwin Kempin4bdc72d2013-11-13 13:30:49 +01002617The `GCInput` entity contains information to run the Git garbage
2618collection.
2619
David Pursehouseae367192014-11-25 17:24:47 +09002620[options="header",cols="1,^2,4"]
Edwin Kempin4bdc72d2013-11-13 13:30:49 +01002621|=============================
2622|Field Name ||Description
2623|`show_progress` |`false` if not set|
2624Whether progress information should be shown.
Christian Halstrick2f94e2e2015-03-11 15:13:31 +01002625|`aggressive` |`false` if not set|
2626Whether an aggressive garbage collection should be done.
Adrian Görler92410a12015-11-03 16:20:56 +01002627|`async` |`false` if not set|
2628Whether the garbage collection should run asynchronously.
Edwin Kempin4bdc72d2013-11-13 13:30:49 +01002629|=============================
2630
Edwin Kempin6b813372013-03-13 17:07:33 +01002631[[head-input]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002632=== HeadInput
Edwin Kempin6b813372013-03-13 17:07:33 +01002633The `HeadInput` entity contains information for setting `HEAD` for a
2634project.
2635
David Pursehouseae367192014-11-25 17:24:47 +09002636[options="header",cols="1,6"]
Edwin Kempin6b813372013-03-13 17:07:33 +01002637|============================
2638|Field Name |Description
2639|`ref` |
2640The ref to which `HEAD` should be set, the `refs/heads` prefix can be
2641omitted.
2642|============================
2643
Edwin Kempin0cb5a562013-07-12 15:41:04 +02002644[[inherited-boolean-info]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002645=== InheritedBooleanInfo
Edwin Kempin0cb5a562013-07-12 15:41:04 +02002646A boolean value that can also be inherited.
2647
David Pursehouseae367192014-11-25 17:24:47 +09002648[options="header",cols="1,^2,4"]
Edwin Kempin0cb5a562013-07-12 15:41:04 +02002649|================================
2650|Field Name ||Description
2651|`value` ||
2652The effective boolean value.
2653|`configured_value` ||
2654The configured value, can be `TRUE`, `FALSE` or `INHERITED`.
2655|`inherited_value` |optional|
2656The boolean value inherited from the parent. +
2657Not set if there is no parent.
2658|================================
2659
Edwin Kempin3c99f592013-07-15 10:12:27 +02002660[[max-object-size-limit-info]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002661=== MaxObjectSizeLimitInfo
Edwin Kempin3c99f592013-07-15 10:12:27 +02002662The `MaxObjectSizeLimitInfo` entity contains information about the
2663link:config-gerrit.html#receive.maxObjectSizeLimit[max object size
2664limit] of a project.
2665
David Pursehouseae367192014-11-25 17:24:47 +09002666[options="header",cols="1,^2,4"]
Edwin Kempin3c99f592013-07-15 10:12:27 +02002667|===============================
2668|Field Name ||Description
2669|`value` |optional|
2670The effective value of the max object size limit as a formatted string. +
2671Not set if there is no limit for the object size.
2672|`configured_value`|optional|
2673The max object size limit that is configured on the project as a
2674formatted string. +
2675Not set if there is no limit for the object size configured on project
2676level.
2677|`inherited_value` |optional|
2678The max object size limit that is inherited as a formatted string. +
2679Not set if there is no global limit for the object size.
2680|===============================
2681
Patrick Hiesel21816f12016-04-22 08:53:06 +02002682[[project-access-input]]
2683=== ProjectAccessInput
2684The `ProjectAccessInput` describes changes that should be applied to a project
2685access config.
2686
2687[options="header",cols="1,^2,4"]
2688|=============================
2689|Field Name | |Description
2690|`remove` |optional|
2691A list of deductions to be applied to the project access as
2692link:rest-api-access.html#project-access-info[ProjectAccessInfo] entities.
2693|`add` |optional|
2694A list of additions to be applied to the project access as
2695link:rest-api-access.html#project-access-info[ProjectAccessInfo] entities.
2696|`message` |optional|
2697A commit message for this change.
2698|`parent` |optional|
2699A new parent for the project to inherit from. Changing the parent project
2700requires administrative privileges.
2701|=============================
2702
Edwin Kempin57f303c2013-02-13 15:52:22 +01002703[[project-description-input]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002704=== ProjectDescriptionInput
Edwin Kempin57f303c2013-02-13 15:52:22 +01002705The `ProjectDescriptionInput` entity contains information for setting a
2706project description.
2707
David Pursehouseae367192014-11-25 17:24:47 +09002708[options="header",cols="1,^2,4"]
Edwin Kempin57f303c2013-02-13 15:52:22 +01002709|=============================
2710|Field Name ||Description
2711|`description` |optional|The project description. +
2712The project description will be deleted if not set.
2713|`commit_message`|optional|
2714Message that should be used to commit the change of the project
2715description in the `project.config` file to the `refs/meta/config`
2716branch.
2717|=============================
2718
Edwin Kempin51a6dc92013-02-04 15:43:59 +01002719[[project-info]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002720=== ProjectInfo
Edwin Kempin51a6dc92013-02-04 15:43:59 +01002721The `ProjectInfo` entity contains information about a project.
2722
David Pursehouseae367192014-11-25 17:24:47 +09002723[options="header",cols="1,^2,4"]
Edwin Kempin51a6dc92013-02-04 15:43:59 +01002724|===========================
2725|Field Name ||Description
Edwin Kempin51a6dc92013-02-04 15:43:59 +01002726|`id` ||The URL encoded project name.
2727|`name` |
2728not set if returned in a map where the project name is used as map key|
2729The name of the project.
Edwin Kempinf3611822013-03-19 08:23:09 +01002730|`parent` |optional|
Edwin Kempin51a6dc92013-02-04 15:43:59 +01002731The name of the parent project. +
2732`?-<n>` if the parent project is not visible (`<n>` is a number which
2733is increased for each non-visible project).
2734|`description` |optional|The description of the project.
Shawn Pearce21a6c212014-04-23 12:35:10 -07002735|`state` |optional|`ACTIVE`, `READ_ONLY` or `HIDDEN`.
Edwin Kempin51a6dc92013-02-04 15:43:59 +01002736|`branches` |optional|Map of branch names to HEAD revisions.
Edwin Kempin26c95a42014-11-25 16:29:47 +01002737|`web_links` |optional|
Edwin Kempinea004752014-04-11 15:56:02 +02002738Links to the project in external sites as a list of
2739link:rest-api-changes.html#web-link-info[WebLinkInfo] entries.
Edwin Kempin51a6dc92013-02-04 15:43:59 +01002740|===========================
2741
Bruce Zu798ea122013-02-18 16:55:43 +08002742[[project-input]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002743=== ProjectInput
Bruce Zu798ea122013-02-18 16:55:43 +08002744The `ProjectInput` entity contains information for the creation of
2745a new project.
2746
David Pursehouseae367192014-11-25 17:24:47 +09002747[options="header",cols="1,^2,4"]
Bruce Zu798ea122013-02-18 16:55:43 +08002748|=========================================
2749|Field Name ||Description
2750|`name` |optional|
2751The name of the project (not encoded). +
David Pursehouse8c5ad412015-02-03 14:19:09 +09002752If set, must match the project name in the URL. +
2753If name ends with `.git` the suffix will be automatically removed.
Bruce Zu798ea122013-02-18 16:55:43 +08002754|`parent` |optional|
2755The name of the parent project. +
2756If not set, the `All-Projects` project will be the parent project.
2757|`description` |optional|The description of the project.
2758|`permissions_only` |`false` if not set|
2759Whether a permission-only project should be created.
2760|`create_empty_commit` |`false` if not set|
2761Whether an empty initial commit should be created.
2762|`submit_type` |optional|
2763The submit type that should be set for the project
2764(`MERGE_IF_NECESSARY`, `REBASE_IF_NECESSARY`, `FAST_FORWARD_ONLY`,
2765`MERGE_ALWAYS`, `CHERRY_PICK`). +
Edwin Kempina79ea552013-11-19 11:24:37 +01002766If not set, `MERGE_IF_NECESSARY` is set as submit type unless
2767link:config-gerrit.html#repository.name.defaultSubmitType[
2768repository.<name>.defaultSubmitType] is set to a different value.
Bruce Zu798ea122013-02-18 16:55:43 +08002769|`branches` |optional|
2770A list of branches that should be initially created. +
2771For the branch names the `refs/heads/` prefix can be omitted.
2772|`owners` |optional|
2773A list of groups that should be assigned as project owner. +
2774Each group in the list must be specified as
2775link:rest-api-groups.html#group-id[group-id]. +
2776If not set, the link:config-gerrit.html#repository.name.ownerGroup[
2777groups that are configured as default owners] are set as project
2778owners.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002779|`use_contributor_agreements` |`INHERIT` if not set|
Bruce Zu798ea122013-02-18 16:55:43 +08002780Whether contributor agreements should be used for the project (`TRUE`,
2781`FALSE`, `INHERIT`).
Deniz Türkoglu52777272014-09-08 17:02:48 +02002782|`use_signed_off_by` |`INHERIT` if not set|
Bruce Zu798ea122013-02-18 16:55:43 +08002783Whether the usage of 'Signed-Off-By' footers is required for the
2784project (`TRUE`, `FALSE`, `INHERIT`).
Deniz Türkoglu52777272014-09-08 17:02:48 +02002785|`create_new_change_for_all_not_in_target` |`INHERIT` if not set|
2786Whether a new change is created for every commit not in target branch
2787for the project (`TRUE`, `FALSE`, `INHERIT`).
2788|`use_content_merge` |`INHERIT` if not set|
Bruce Zu798ea122013-02-18 16:55:43 +08002789Whether content merge should be enabled for the project (`TRUE`,
2790`FALSE`, `INHERIT`). +
2791`FALSE`, if the `submit_type` is `FAST_FORWARD_ONLY`.
Deniz Türkoglu52777272014-09-08 17:02:48 +02002792|`require_change_id` |`INHERIT` if not set|
Bruce Zu798ea122013-02-18 16:55:43 +08002793Whether the usage of Change-Ids is required for the project (`TRUE`,
2794`FALSE`, `INHERIT`).
Sasa Zivkov6b40cb42013-07-01 15:28:22 +02002795|`max_object_size_limit` |optional|
2796Max allowed Git object size for this project.
2797Common unit suffixes of 'k', 'm', or 'g' are supported.
Edwin Kempinfb053c32013-12-04 20:32:41 +01002798|`plugin_config_values` |optional|
2799Plugin configuration values as map which maps the plugin name to a map
2800of parameter names to values.
Bruce Zu798ea122013-02-18 16:55:43 +08002801|=========================================
2802
Edwin Kempinecad88c2013-02-14 12:09:44 +01002803[[project-parent-input]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002804=== ProjectParentInput
Edwin Kempinecad88c2013-02-14 12:09:44 +01002805The `ProjectParentInput` entity contains information for setting a
2806project parent.
2807
David Pursehouseae367192014-11-25 17:24:47 +09002808[options="header",cols="1,^2,4"]
Edwin Kempinecad88c2013-02-14 12:09:44 +01002809|=============================
2810|Field Name ||Description
2811|`parent` ||The name of the parent project.
2812|`commit_message`|optional|
2813Message that should be used to commit the change of the project parent
2814in the `project.config` file to the `refs/meta/config` branch.
2815|=============================
2816
Edwin Kempin87504d92014-07-04 12:59:19 +02002817[[reflog-entry-info]]
2818=== ReflogEntryInfo
2819The `ReflogEntryInfo` entity describes an entry in a reflog.
2820
David Pursehouseae367192014-11-25 17:24:47 +09002821[options="header",cols="1,6"]
Edwin Kempin87504d92014-07-04 12:59:19 +02002822|============================
2823|Field Name |Description
2824|`old_id` |The old commit ID.
2825|`new_id` |The new commit ID.
2826|`who` |
2827The user performing the change as a
2828link:rest-api-changes.html#git-person-info[GitPersonInfo] entity.
2829|`comment` |Comment of the reflog entry.
2830|============================
2831
Edwin Kempin19ea9b92013-03-20 13:20:26 +01002832[[repository-statistics-info]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002833=== RepositoryStatisticsInfo
Edwin Kempin19ea9b92013-03-20 13:20:26 +01002834The `RepositoryStatisticsInfo` entity contains information about
2835statistics of a Git repository.
2836
David Pursehouseae367192014-11-25 17:24:47 +09002837[options="header",cols="1,6"]
Edwin Kempin19ea9b92013-03-20 13:20:26 +01002838|======================================
2839|Field Name |Description
2840|`number_of_loose_objects` |Number of loose objects.
2841|`number_of_loose_refs` |Number of loose refs.
2842|`number_of_pack_files` |Number of pack files.
2843|`number_of_packed_objects`|Number of packed objects.
2844|`number_of_packed_refs` |Number of packed refs.
2845|`size_of_loose_objects` |Size of loose objects in bytes.
2846|`size_of_packed_objects` |Size of packed objects in bytes.
2847|======================================
2848
David Pursehouse8cc68902014-10-06 18:17:16 +09002849[[tag-info]]
2850=== TagInfo
2851The `TagInfo` entity contains information about a tag.
2852
David Pursehouseae367192014-11-25 17:24:47 +09002853[options="header",cols="1,^2,4"]
David Pursehouse8cc68902014-10-06 18:17:16 +09002854|=========================
2855|Field Name ||Description
2856|`ref` ||The ref of the tag.
2857|`revision` ||For lightweight tags, the revision of the commit to which the tag
2858points. For annotated tags, the revision of the tag object.
2859|`object`|Only set for annotated tags.|The revision of the object to which the
2860tag points.
2861|`message`|Only set for annotated tags.|The tag message. For signed tags, includes
2862the signature.
David Pursehousec9f5a5a2015-12-07 19:13:16 +09002863|`tagger`|Only set for annotated tags, if present in the tag.|The tagger as a
David Pursehouse8cc68902014-10-06 18:17:16 +09002864link:rest-api-changes.html#git-person-info[GitPersonInfo] entity.
2865|=========================
2866
David Pursehouse6a446192016-06-03 10:00:34 +09002867[[tag-input]]
2868=== TagInput
2869
2870The `TagInput` entity contains information for creating a tag.
2871
2872[options="header",cols="1,^2,4"]
2873|=========================
2874|Field Name ||Description
2875|`ref` ||The name of the tag. The leading `refs/tags/` is optional.
2876|`revision` |optional|The revision to which the tag should point. If not
2877specified, the project's `HEAD` will be used.
2878|`message` |optional|The tag message. When set, the tag will be created
2879as an annotated tag.
2880|=========================
2881
2882
Edwin Kempin272402e2013-07-15 11:17:36 +02002883[[theme-info]]
Yuxuan 'fishy' Wang61698b12013-12-20 12:55:51 -08002884=== ThemeInfo
Edwin Kempin272402e2013-07-15 11:17:36 +02002885The `ThemeInfo` entity describes a theme.
2886
David Pursehouseae367192014-11-25 17:24:47 +09002887[options="header",cols="1,^2,4"]
Edwin Kempin272402e2013-07-15 11:17:36 +02002888|=============================
2889|Field Name ||Description
2890|`css` |optional|
2891The path to the `GerritSite.css` file.
2892|`header` |optional|
2893The path to the `GerritSiteHeader.html` file.
2894|`footer` |optional|
2895The path to the `GerritSiteFooter.html` file.
2896|=============================
2897
Patrick Hiesel5a3475f2016-04-21 11:44:29 +02002898----
Edwin Kempind0a63922013-01-23 16:32:59 +01002899
2900GERRIT
2901------
2902Part of link:index.html[Gerrit Code Review]
Yuxuan 'fishy' Wang99cb68d2013-10-31 17:26:00 -07002903
2904SEARCHBOX
2905---------