Merge request context commits API
- Tier: Free, Premium, Ultimate
- Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
If your merge request builds upon a previous merge request, you might need to include previously-merged commits for context in your merge request. Use this API to add commits to a merge request for more context.
List context commits for a merge request
Lists context commits for a single merge request.
GET /projects/:id/merge_requests/:merge_request_iid/context_commitsParameters:
| Attribute | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | The ID or URL-encoded path of the project. |
merge_request_iid | integer | Yes | The internal ID of the merge request. |
Example request:
curl --request GET \
--header "PRIVATE-TOKEN: <your_access_token>" \
--url "https://gitlab.example.com/api/v4/projects/15/merge_requests/12/context_commits"Example response:
[
{
"id": "4a24d82dbca5c11c61556f3b35ca472b7463187e",
"short_id": "4a24d82d",
"created_at": "2017-04-11T10:08:59.000Z",
"parent_ids": null,
"title": "Update README.md to include usage in testing and development",
"message": "Update README.md to include usage in testing and development",
"author_name": "Example User",
"author_email": "user@example.com",
"authored_date": "2017-04-11T10:08:59.000Z",
"committer_name": "Example User",
"committer_email": "user@example.com",
"committed_date": "2017-04-11T10:08:59.000Z",
"trailers": {},
"extended_trailers": null,
"web_url": "https://gitlab.example.com/example/project/-/commit/4a24d82dbca5c11c61556f3b35ca472b7463187e",
"author": {
"id": 1,
"username": "example",
"public_email": null,
"name": "Example User",
"state": "active",
"locked": false,
"avatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"web_url": "https://gitlab.example.com/example",
"show_status": false,
"path": "/example"
},
"author_gravatar_url": "https://www.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon",
"commit_url": "https://gitlab.example.com/example/project/-/commit/4a24d82dbca5c11c61556f3b35ca472b7463187e",
"commit_path": "/example/project/-/commit/4a24d82dbca5c11c61556f3b35ca472b7463187e",
"description_html": "",
"title_html": "Update README.md to include usage in testing and development",
"signature_html": null,
"prev_commit_id": null,
"next_commit_id": null,
"pipeline_status_path": null
}
]Create context commits for a merge request
The availability of the rate limit is controlled by a feature flag. For more information, see the history.
Creates context commits for a single merge request.
This endpoint is rate limited for each user. The limit is 10 requests each minute.
Requests to delete context commits
count toward the same limit.
When you exceed the limit, the endpoint returns
429 Too Many Requests.
POST /projects/:id/merge_requests/:merge_request_iid/context_commitsParameters:
| Attribute | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | The ID or URL-encoded path of the project |
merge_request_iid | integer | Yes | The internal ID of the merge request. |
commits | string array | Yes | The context commits’ SHAs. |
Example request:
curl --request POST \
--header "PRIVATE-TOKEN: <your_access_token>" \
--header "Content-Type: application/json" \
--data '{"commits": ["51856a574ac3302a95f82483d6c7396b1e0783cb"]}' \
--url "https://gitlab.example.com/api/v4/projects/15/merge_requests/12/context_commits"Example response:
[
{
"id": "51856a574ac3302a95f82483d6c7396b1e0783cb",
"short_id": "51856a57",
"created_at": "2014-02-27T10:05:10.000+02:00",
"parent_ids": [
"57a82e2180507c9e12880c0747f0ea65ad489515"
],
"title": "Commit title",
"message": "Commit message",
"author_name": "Example User",
"author_email": "user@example.com",
"authored_date": "2014-02-27T10:05:10.000+02:00",
"committer_name": "Example User",
"committer_email": "user@example.com",
"committed_date": "2014-02-27T10:05:10.000+02:00",
"trailers": {},
"web_url": "https://gitlab.example.com/project/path/-/commit/b782f6c553653ab4e16469ff34bf3a81638ac304"
}
]Delete context commits from a merge request
The availability of the rate limit is controlled by a feature flag. For more information, see the history.
Deletes context commits from a single merge request.
This endpoint is rate limited for each user. The limit is 10 requests each minute.
Requests to create context commits
count toward the same limit.
When you exceed the limit, the endpoint returns
429 Too Many Requests.
DELETE /projects/:id/merge_requests/:merge_request_iid/context_commitsParameters:
| Attribute | Type | Required | Description |
|---|---|---|---|
commits | string array | Yes | The context commits’ SHA. |
id | integer | Yes | The ID or URL-encoded path of the project. |
merge_request_iid | integer | Yes | The internal ID of the merge request. |