commits.md 20.1 KB
Newer Older
1 2 3 4 5 6 7 8 9 10
# Commits API

## List repository commits

Get a list of repository commits in a project.

```
GET /projects/:id/repository/commits
```

11 12
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
13
| `id`      | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
14
| `ref_name` | string | no | The name of a repository branch or tag or if not given the default branch |
15 16
| `since` | string | no | Only commits after or on this date will be returned in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ |
| `until` | string | no | Only commits before or on this date will be returned in ISO 8601 format YYYY-MM-DDTHH:MM:SSZ |
Tiago Botelho's avatar
Tiago Botelho committed
17 18
| `path` | string | no | The file path |
| `all` | boolean | no | Retrieve every commit from the repository |
19
| `with_stats` | boolean | no | Stats about each commit will be added to the response |
Tiago Botelho's avatar
Tiago Botelho committed
20

21

22
```bash
23
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/5/repository/commits"
24 25 26
```

Example response:
27 28 29 30 31 32 33 34 35

```json
[
  {
    "id": "ed899a2f4b50b4370feeea94676502b42383c746",
    "short_id": "ed899a2f4b5",
    "title": "Replace sanitize with escape once",
    "author_name": "Dmitriy Zaporozhets",
    "author_email": "dzaporozhets@sphereconsultinginc.com",
36
    "authored_date": "2012-09-20T11:50:22+03:00",
37 38
    "committer_name": "Administrator",
    "committer_email": "admin@example.com",
39
    "committed_date": "2012-09-20T11:50:22+03:00",
40
    "created_at": "2012-09-20T11:50:22+03:00",
41
    "message": "Replace sanitize with escape once",
42 43 44
    "parent_ids": [
      "6104942438c14ec7bd21c6cd5bd995272b3faff6"
    ]
45 46 47 48 49 50 51
  },
  {
    "id": "6104942438c14ec7bd21c6cd5bd995272b3faff6",
    "short_id": "6104942438c",
    "title": "Sanitize for network graph",
    "author_name": "randx",
    "author_email": "dmitriy.zaporozhets@gmail.com",
52 53
    "committer_name": "Dmitriy",
    "committer_email": "dmitriy.zaporozhets@gmail.com",
54
    "created_at": "2012-09-20T09:06:12+03:00",
55
    "message": "Sanitize for network graph",
56 57 58
    "parent_ids": [
      "ae1d9fb46aa2b07ee9836d49862ec4e2c46fbbba"
    ]
59 60 61 62
  }
]
```

Marc Siegfriedt's avatar
Marc Siegfriedt committed
63 64 65 66 67 68 69 70 71 72 73 74
## Create a commit with multiple files and actions

> [Introduced][ce-6096] in GitLab 8.13.

Create a commit by posting a JSON payload

```
POST /projects/:id/repository/commits
```

| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
75
| `id` | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) |
76
| `branch` | string | yes | Name of the branch to commit into. To create a new branch, also provide `start_branch`. |
Marc Siegfriedt's avatar
Marc Siegfriedt committed
77
| `commit_message` | string | yes | Commit message |
78
| `start_branch` | string | no | Name of the branch to start the new commit from |
Marc Siegfriedt's avatar
Marc Siegfriedt committed
79 80 81
| `actions[]` | array | yes | An array of action hashes to commit as a batch. See the next table for what attributes it can take. |
| `author_email` | string | no | Specify the commit author's email address |
| `author_name` | string | no | Specify the commit author's name |
82
| `stats` | boolean | no | Include commit stats. Default is true |
Marc Siegfriedt's avatar
Marc Siegfriedt committed
83 84 85 86


| `actions[]` Attribute | Type | Required | Description |
| --------------------- | ---- | -------- | ----------- |
87
| `action` | string | yes | The action to perform, `create`, `delete`, `move`, `update`, `chmod`|
Marc Siegfriedt's avatar
Marc Siegfriedt committed
88
| `file_path` | string | yes | Full path to the file. Ex. `lib/class.rb` |
89 90
| `previous_path` | string | no | Original full path to the file being moved. Ex. `lib/class1.rb`. Only considered for `move` action. |
| `content` | string | no | File content, required for all except `delete` and `chmod`. Optional for `move` |
Marc Siegfriedt's avatar
Marc Siegfriedt committed
91
| `encoding` | string | no | `text` or `base64`. `text` is default. |
92
| `last_commit_id` | string | no | Last known file commit id. Will be only considered in update, move and delete actions. |
93
| `execute_filemode` | boolean | no | When `true/false` enables/disables the execute flag on the file. Only considered for `chmod` action. |
Marc Siegfriedt's avatar
Marc Siegfriedt committed
94 95 96 97

```bash
PAYLOAD=$(cat << 'JSON'
{
98
  "branch": "master",
Marc Siegfriedt's avatar
Marc Siegfriedt committed
99 100 101 102 103 104 105 106 107
  "commit_message": "some commit message",
  "actions": [
    {
      "action": "create",
      "file_path": "foo/bar",
      "content": "some content"
    },
    {
      "action": "delete",
108
      "file_path": "foo/bar2"
Marc Siegfriedt's avatar
Marc Siegfriedt committed
109 110 111 112 113 114 115 116 117 118 119
    },
    {
      "action": "move",
      "file_path": "foo/bar3",
      "previous_path": "foo/bar4",
      "content": "some content"
    },
    {
      "action": "update",
      "file_path": "foo/bar5",
      "content": "new content"
120 121 122 123 124
    },
    {
      "action": "chmod",
      "file_path": "foo/bar5",
      "execute_filemode": true
Marc Siegfriedt's avatar
Marc Siegfriedt committed
125 126 127 128 129
    }
  ]
}
JSON
)
130
curl --request POST --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" --header "Content-Type: application/json" --data "$PAYLOAD" https://gitlab.example.com/api/v4/projects/1/repository/commits
Marc Siegfriedt's avatar
Marc Siegfriedt committed
131 132 133 134 135 136 137 138 139 140
```

Example response:
```json
{
  "id": "ed899a2f4b50b4370feeea94676502b42383c746",
  "short_id": "ed899a2f4b5",
  "title": "some commit message",
  "author_name": "Dmitriy Zaporozhets",
  "author_email": "dzaporozhets@sphereconsultinginc.com",
141 142
  "committer_name": "Dmitriy Zaporozhets",
  "committer_email": "dzaporozhets@sphereconsultinginc.com",
Marc Siegfriedt's avatar
Marc Siegfriedt committed
143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158
  "created_at": "2016-09-20T09:26:24.000-07:00",
  "message": "some commit message",
  "parent_ids": [
    "ae1d9fb46aa2b07ee9836d49862ec4e2c46fbbba"
  ],
  "committed_date": "2016-09-20T09:26:24.000-07:00",
  "authored_date": "2016-09-20T09:26:24.000-07:00",
  "stats": {
    "additions": 2,
    "deletions": 2,
    "total": 4
  },
  "status": null
}
```

159 160 161 162 163 164 165 166 167 168
## Get a single commit

Get a specific commit identified by the commit hash or name of a branch or tag.

```
GET /projects/:id/repository/commits/:sha
```

Parameters:

169 170
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
171
| `id`      | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
172
| `sha` | string | yes | The commit hash or name of a repository branch or tag |
173
| `stats` | boolean | no | Include commit stats. Default is true |
174 175

```bash
176
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/5/repository/commits/master
177 178 179
```

Example response:
180 181 182 183 184 185 186 187

```json
{
  "id": "6104942438c14ec7bd21c6cd5bd995272b3faff6",
  "short_id": "6104942438c",
  "title": "Sanitize for network graph",
  "author_name": "randx",
  "author_email": "dmitriy.zaporozhets@gmail.com",
188 189
  "committer_name": "Dmitriy",
  "committer_email": "dmitriy.zaporozhets@gmail.com",
190
  "created_at": "2012-09-20T09:06:12+03:00",
191
  "message": "Sanitize for network graph",
192 193
  "committed_date": "2012-09-20T09:06:12+03:00",
  "authored_date": "2012-09-20T09:06:12+03:00",
Johannes Schleifenbaum's avatar
Johannes Schleifenbaum committed
194 195
  "parent_ids": [
    "ae1d9fb46aa2b07ee9836d49862ec4e2c46fbbba"
196
  ],
197 198 199 200 201 202
  "last_pipeline" : {
    "id": 8,
    "ref": "master",
    "sha": "2dc6aa325a317eda67812f05600bdf0fcdc70ab0"
    "status": "created"
  }
203 204 205 206 207
  "stats": {
    "additions": 15,
    "deletions": 10,
    "total": 25
  },
208
  "status": "running"
209 210 211
}
```

Robert Schilling's avatar
Robert Schilling committed
212 213 214 215 216
## Get references a commit is pushed to

> [Introduced][ce-15026] in GitLab 10.6

Get all references (from branches or tags) a commit is pushed to.
217
The pagination parameters `page` and `per_page` can be used to restrict the list of references.
Robert Schilling's avatar
Robert Schilling committed
218 219 220 221 222 223 224 225 226 227 228

```
GET /projects/:id/repository/commits/:sha/refs
```

Parameters:

| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `id`      | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
| `sha` | string | yes | The commit hash  |
229
| `type` | string | no | The scope of commits. Possible values `branch`, `tag`, `all`. Default is `all`.  |
Robert Schilling's avatar
Robert Schilling committed
230 231

```bash
232
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/5/repository/commits/5937ac0a7beb003549fc5fd26fc247adbce4a52e/refs?type=all"
Robert Schilling's avatar
Robert Schilling committed
233 234 235 236 237 238
```

Example response:

```json
[
239 240 241 242 243 244
  {"type": "branch", "name": "'test'"},
  {"type": "branch", "name": "add-balsamiq-file"},
  {"type": "branch", "name": "wip"},
  {"type": "tag", "name": "v1.1.0"}
 ]

Robert Schilling's avatar
Robert Schilling committed
245 246
```

247 248 249 250 251 252 253 254 255 256 257 258 259 260
## Cherry pick a commit

> [Introduced][ce-8047] in GitLab 8.15.

Cherry picks a commit to a given branch.

```
POST /projects/:id/repository/commits/:sha/cherry_pick
```

Parameters:

| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
261
| `id`      | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
262 263 264 265
| `sha` | string | yes | The commit hash  |
| `branch` | string | yes | The name of the branch  |

```bash
266
curl --request POST --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" --form "branch=master" "https://gitlab.example.com/api/v4/projects/5/repository/commits/master/cherry_pick"
267 268 269 270 271 272 273 274 275 276 277
```

Example response:

```json
{
  "id": "8b090c1b79a14f2bd9e8a738f717824ff53aebad",
  "short_id": "8b090c1b",
  "title": "Feature added",
  "author_name": "Dmitriy Zaporozhets",
  "author_email": "dmitriy.zaporozhets@gmail.com",
278
  "authored_date": "2016-12-12T20:10:39.000+01:00",
279 280 281
  "created_at": "2016-12-12T20:10:39.000+01:00",
  "committer_name": "Administrator",
  "committer_email": "admin@example.com",
282 283 284 285 286 287
  "committed_date": "2016-12-12T20:10:39.000+01:00",
  "title": "Feature added",
  "message": "Feature added\n\nSigned-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>\n",
  "parent_ids": [
    "a738f717824ff53aebad8b090c1b79a14f2bd9e8"
  ]
288 289 290
}
```

291 292 293 294 295 296 297 298 299 300
## Get the diff of a commit

Get the diff of a commit in a project.

```
GET /projects/:id/repository/commits/:sha/diff
```

Parameters:

301 302
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
303
| `id`      | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
304 305 306
| `sha` | string | yes | The commit hash or name of a repository branch or tag |

```bash
307
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/5/repository/commits/master/diff"
308 309 310
```

Example response:
311 312 313 314

```json
[
  {
315
    "diff": "--- a/doc/update/5.4-to-6.0.md\n+++ b/doc/update/5.4-to-6.0.md\n@@ -71,6 +71,8 @@\n sudo -u git -H bundle exec rake migrate_keys RAILS_ENV=production\n sudo -u git -H bundle exec rake migrate_inline_notes RAILS_ENV=production\n \n+sudo -u git -H bundle exec rake gitlab:assets:compile RAILS_ENV=production\n+\n ```\n \n ### 6. Update config files",
316 317 318 319 320 321 322 323 324 325
    "new_path": "doc/update/5.4-to-6.0.md",
    "old_path": "doc/update/5.4-to-6.0.md",
    "a_mode": null,
    "b_mode": "100644",
    "new_file": false,
    "renamed_file": false,
    "deleted_file": false
  }
]
```
326 327 328 329 330 331 332 333 334 335 336

## Get the comments of a commit

Get the comments of a commit in a project.

```
GET /projects/:id/repository/commits/:sha/comments
```

Parameters:

337 338
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
339
| `id`      | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
340 341 342
| `sha` | string | yes | The commit hash or name of a repository branch or tag |

```bash
343
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/5/repository/commits/master/comments"
344 345 346
```

Example response:
347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365

```json
[
  {
    "note": "this code is really nice",
    "author": {
      "id": 11,
      "username": "admin",
      "email": "admin@local.host",
      "name": "Administrator",
      "state": "active",
      "created_at": "2014-03-06T08:17:35.000Z"
    }
  }
]
```

## Post comment to commit

366 367 368 369 370 371 372 373 374 375 376 377 378 379 380
Adds a comment to a commit.

In order to post a comment in a particular line of a particular file, you must
specify the full commit SHA, the `path`, the `line` and `line_type` should be
`new`.

The comment will be added at the end of the last commit if at least one of the
cases below is valid:

- the `sha` is instead a branch or a tag and the `line` or `path` are invalid
- the `line` number is invalid (does not exist)
- the `path` is invalid (does not exist)

In any of the above cases, the response of `line`, `line_type` and `path` is
set to `null`.
381 382 383 384 385

```
POST /projects/:id/repository/commits/:sha/comments
```

386 387
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
388
| `id`      | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
389 390
| `sha`       | string  | yes | The commit SHA or name of a repository branch or tag |
| `note`      | string  | yes | The text of the comment |
391
| `path`      | string  | no  | The file path relative to the repository |
392
| `line`      | integer | no  | The line number where the comment should be placed |
393 394 395
| `line_type` | string  | no  | The line type. Takes `new` or `old` as arguments |

```bash
396
curl --request POST --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" --form "note=Nice picture man\!" --form "path=dudeism.md" --form "line=11" --form "line_type=new" https://gitlab.example.com/api/v4/projects/17/repository/commits/18f3e63d05582537db6d183d9d557be09e1f90c8/comments
397
```
398

399
Example response:
400 401 402

```json
{
403
   "author" : {
404
      "web_url" : "https://gitlab.example.com/thedude",
405 406 407 408 409 410 411 412 413 414 415
      "avatar_url" : "https://gitlab.example.com/uploads/user/avatar/28/The-Big-Lebowski-400-400.png",
      "username" : "thedude",
      "state" : "active",
      "name" : "Jeff Lebowski",
      "id" : 28
   },
   "created_at" : "2016-01-19T09:44:55.600Z",
   "line_type" : "new",
   "path" : "dudeism.md",
   "line" : 11,
   "note" : "Nice picture man!"
416 417
}
```
418

419 420
## Commit status

421
Since GitLab 8.1, this is the new commit status API.
422

423
### List the statuses of a commit
424

425 426
List the statuses of a commit in a project.
The pagination parameters `page` and `per_page` can be used to restrict the list of references.
427 428 429 430 431

```
GET /projects/:id/repository/commits/:sha/statuses
```

432 433
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
434
| `id`      | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
435
| `sha`     | string  | yes | The commit SHA
436
| `ref`     | string  | no  | The name of a repository branch or tag or, if not given, the default branch
437 438 439
| `stage`   | string  | no  | Filter by [build stage](../ci/yaml/README.md#stages), e.g., `test`
| `name`    | string  | no  | Filter by [job name](../ci/yaml/README.md#jobs), e.g., `bundler:audit`
| `all`     | boolean | no  | Return all statuses, not only the latest ones
440

441
```bash
442
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/17/repository/commits/18f3e63d05582537db6d183d9d557be09e1f90c8/statuses
443 444 445
```

Example response:
446 447 448

```json
[
449 450 451 452 453 454 455 456 457 458 459
   ...

   {
      "status" : "pending",
      "created_at" : "2016-01-19T08:40:25.934Z",
      "started_at" : null,
      "name" : "bundler:audit",
      "allow_failure" : true,
      "author" : {
         "username" : "thedude",
         "state" : "active",
460
         "web_url" : "https://gitlab.example.com/thedude",
461 462 463 464 465 466 467 468 469 470 471 472 473
         "avatar_url" : "https://gitlab.example.com/uploads/user/avatar/28/The-Big-Lebowski-400-400.png",
         "id" : 28,
         "name" : "Jeff Lebowski"
      },
      "description" : null,
      "sha" : "18f3e63d05582537db6d183d9d557be09e1f90c8",
      "target_url" : "https://gitlab.example.com/thedude/gitlab-ce/builds/91",
      "finished_at" : null,
      "id" : 91,
      "ref" : "master"
   },
   {
      "started_at" : null,
Rémy Coutable's avatar
Rémy Coutable committed
474
      "name" : "test",
475 476 477 478 479 480 481 482 483 484 485 486
      "allow_failure" : false,
      "status" : "pending",
      "created_at" : "2016-01-19T08:40:25.832Z",
      "target_url" : "https://gitlab.example.com/thedude/gitlab-ce/builds/90",
      "id" : 90,
      "finished_at" : null,
      "ref" : "master",
      "sha" : "18f3e63d05582537db6d183d9d557be09e1f90c8",
      "author" : {
         "id" : 28,
         "name" : "Jeff Lebowski",
         "username" : "thedude",
487
         "web_url" : "https://gitlab.example.com/thedude",
488 489 490 491 492 493 494
         "state" : "active",
         "avatar_url" : "https://gitlab.example.com/uploads/user/avatar/28/The-Big-Lebowski-400-400.png"
      },
      "description" : null
   },

   ...
495 496 497
]
```

498
### Post the build status to a commit
499

500
Adds or updates a build status of a commit.
501 502 503 504 505

```
POST /projects/:id/statuses/:sha
```

506 507
| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
508
| `id`      | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
509 510 511 512 513 514
| `sha`     | string  | yes   | The commit SHA
| `state`   | string  | yes   | The state of the status. Can be one of the following: `pending`, `running`, `success`, `failed`, `canceled`
| `ref`     | string  | no    | The `ref` (branch or tag) to which the status refers
| `name` or `context` | string  | no | The label to differentiate this status from the status of other systems. Default value is `default`
| `target_url` |  string  | no  | The target URL to associate with this status
| `description` | string  | no  | The short description of the status
515
| `coverage` | float  | no    | The total code coverage
516 517

```bash
518
curl --request POST --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/17/statuses/18f3e63d05582537db6d183d9d557be09e1f90c8?state=success"
519 520 521
```

Example response:
522 523 524

```json
{
525
   "author" : {
526
      "web_url" : "https://gitlab.example.com/thedude",
527 528 529 530 531 532 533 534 535
      "name" : "Jeff Lebowski",
      "avatar_url" : "https://gitlab.example.com/uploads/user/avatar/28/The-Big-Lebowski-400-400.png",
      "username" : "thedude",
      "state" : "active",
      "id" : 28
   },
   "name" : "default",
   "sha" : "18f3e63d05582537db6d183d9d557be09e1f90c8",
   "status" : "success",
536
   "coverage": 100.0,
537 538 539 540 541 542 543 544
   "description" : null,
   "id" : 93,
   "target_url" : null,
   "ref" : null,
   "started_at" : null,
   "created_at" : "2016-01-19T09:05:50.355Z",
   "allow_failure" : false,
   "finished_at" : "2016-01-19T09:05:50.365Z"
545 546
}
```
Marc Siegfriedt's avatar
Marc Siegfriedt committed
547

548 549
## List Merge Requests associated with a commit

550 551
> [Introduced][ce-18004] in GitLab 10.7.

552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617
Get a list of Merge Requests related to the specified commit.

```
GET /projects/:id/repository/commits/:sha/merge_requests
```

| Attribute | Type | Required | Description |
| --------- | ---- | -------- | ----------- |
| `id`      | integer/string | yes | The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
| `sha`     | string  | yes   | The commit SHA


```bash
curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/5/repository/commits/af5b13261899fb2c0db30abdd0af8b07cb44fdc5/merge_requests"
```

Example response:

```json
[
   {
      "id":45,
      "iid":1,
      "project_id":35,
      "title":"Add new file",
      "description":"",
      "state":"opened",
      "created_at":"2018-03-26T17:26:30.916Z",
      "updated_at":"2018-03-26T17:26:30.916Z",
      "target_branch":"master",
      "source_branch":"test-branch",
      "upvotes":0,
      "downvotes":0,
      "author" : {
        "web_url" : "https://gitlab.example.com/thedude",
        "name" : "Jeff Lebowski",
        "avatar_url" : "https://gitlab.example.com/uploads/user/avatar/28/The-Big-Lebowski-400-400.png",
        "username" : "thedude",
        "state" : "active",
        "id" : 28
      },
      "assignee":null,
      "source_project_id":35,
      "target_project_id":35,
      "labels":[ ],
      "work_in_progress":false,
      "milestone":null,
      "merge_when_pipeline_succeeds":false,
      "merge_status":"can_be_merged",
      "sha":"af5b13261899fb2c0db30abdd0af8b07cb44fdc5",
      "merge_commit_sha":null,
      "user_notes_count":0,
      "discussion_locked":null,
      "should_remove_source_branch":null,
      "force_remove_source_branch":false,
      "web_url":"http://https://gitlab.example.com/root/test-project/merge_requests/1",
      "time_stats":{
         "time_estimate":0,
         "total_time_spent":0,
         "human_time_estimate":null,
         "human_total_time_spent":null
      }
   }
]
```

Marc Siegfriedt's avatar
Marc Siegfriedt committed
618
[ce-6096]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/6096 "Multi-file commit"
619
[ce-8047]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/8047
Robert Schilling's avatar
Robert Schilling committed
620
[ce-15026]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15026
621
[ce-18004]: https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/18004