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_commits

Parameters:

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:

shell
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:

json
[
    {
        "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

Creates context commits for a single merge request.

POST /projects/:id/merge_requests/:merge_request_iid/context_commits

Parameters:

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:

shell
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:

json
[
    {
        "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

Deletes context commits from a single merge request.

DELETE /projects/:id/merge_requests/:merge_request_iid/context_commits

Parameters:

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.