gitlabhq/doc/api/repositories.md
Sebastian Ziebell e119b0a0cb API repository documentation updated, includes infos to return codes
The API documentation of repository is updated and now contains infos to status codes.
Code documentation is also adjusted for `GET /projects/:id/repository/commits` and includes infos to
pagination attributes. Tests are updated.
2013-02-27 11:24:12 +01:00

6.8 KiB

List repository branches

Get a list of repository branches from a project, sorted by name alphabetically.

GET /projects/:id/repository/branches

Parameters:

  • id (required) - The ID of a project
[
  {
    "name": "master",
    "commit": {
      "id": "7b5c3cc8be40ee161ae89a06bba6229da1032a0c",
      "parents": [
        {
          "id": "4ad91d3c1144c406e50c7b33bae684bd6837faf8"
        }
      ],
      "tree": "46e82de44b1061621357f24c05515327f2795a95",
      "message": "add projects API",
      "author": {
        "name": "John Smith",
        "email": "john@example.com"
      },
      "committer": {
        "name": "John Smith",
        "email": "john@example.com"
      },
      "authored_date": "2012-06-27T05:51:39-07:00",
      "committed_date": "2012-06-28T03:44:20-07:00"
    },
    "protected": true
  }
]

Return values:

  • 200 Okon success and a list of repository branches for the project
  • 401 Unauthorized if user is not authenticated
  • 404 Not Found if project with ID not found

Get single repository branch

Get a single project repository branch.

GET /projects/:id/repository/branches/:branch

Parameters:

  • id (required) - The ID of a project
  • branch (required) - The name of the branch
{
  "name": "master",
  "commit": {
    "id": "7b5c3cc8be40ee161ae89a06bba6229da1032a0c",
    "parents": [
      {
        "id": "4ad91d3c1144c406e50c7b33bae684bd6837faf8"
      }
    ],
    "tree": "46e82de44b1061621357f24c05515327f2795a95",
    "message": "add projects API",
    "author": {
      "name": "John Smith",
      "email": "john@example.com"
    },
    "committer": {
      "name": "John Smith",
      "email": "john@example.com"
    },
    "authored_date": "2012-06-27T05:51:39-07:00",
    "committed_date": "2012-06-28T03:44:20-07:00"
  },
  "protected": true
}

Return values:

  • 200 Ok on success and the repository branch
  • 401 Unauthorized if user is not authenticated
  • 404 Not Found if the project ID or branch not found

Protect repository branch

Protects a single project repository branch. This is an idempotent function, protecting an already protected repository branch still returns a 200 Ok status code.

PUT /projects/:id/repository/branches/:branch/protect

Parameters:

  • id (required) - The ID of a project
  • branch (required) - The name of the branch
{
  "name": "master",
  "commit": {
    "id": "7b5c3cc8be40ee161ae89a06bba6229da1032a0c",
    "parents": [
      {
        "id": "4ad91d3c1144c406e50c7b33bae684bd6837faf8"
      }
    ],
    "tree": "46e82de44b1061621357f24c05515327f2795a95",
    "message": "add projects API",
    "author": {
      "name": "John Smith",
      "email": "john@example.com"
    },
    "committer": {
      "name": "John Smith",
      "email": "john@example.com"
    },
    "authored_date": "2012-06-27T05:51:39-07:00",
    "committed_date": "2012-06-28T03:44:20-07:00"
  },
  "protected": true
}

Return values:

  • 200 Ok on success and the updated repository branch
  • 401 Unauthorized if user is not authenticated
  • 404 Not Found if the the project ID or branch not found

Unprotect repository branch

Unprotects a single project repository branch. This is an idempotent function, unprotecting an already unprotected repository branch still returns a 200 Ok status code.

PUT /projects/:id/repository/branches/:branch/unprotect

Parameters:

  • id (required) - The ID of a project
  • branch (required) - The name of the branch
{
  "name": "master",
  "commit": {
    "id": "7b5c3cc8be40ee161ae89a06bba6229da1032a0c",
    "parents": [
      {
        "id": "4ad91d3c1144c406e50c7b33bae684bd6837faf8"
      }
    ],
    "tree": "46e82de44b1061621357f24c05515327f2795a95",
    "message": "add projects API",
    "author": {
      "name": "John Smith",
      "email": "john@example.com"
    },
    "committer": {
      "name": "John Smith",
      "email": "john@example.com"
    },
    "authored_date": "2012-06-27T05:51:39-07:00",
    "committed_date": "2012-06-28T03:44:20-07:00"
  },
  "protected": false
}

Return values:

  • 200 Ok on success and the updated repository branch
  • 401 Unauthorized if user is not authenticated
  • 404 Not Found if the project ID or the branch not found

List project repository tags

Get a list of repository tags from a project, sorted by name in reverse alphabetical order.

GET /projects/:id/repository/tags

Parameters:

  • id (required) - The ID of a project
[
  {
    "name": "v1.0.0",
    "commit": {
      "id": "2695effb5807a22ff3d138d593fd856244e155e7",
      "parents": [

      ],
      "tree": "38017f2f189336fe4497e9d230c5bb1bf873f08d",
      "message": "Initial commit",
      "author": {
        "name": "John Smith",
        "email": "john@example.com"
      },
      "committer": {
        "name": "Jack Smith",
        "email": "jack@example.com"
      },
      "authored_date": "2012-05-28T04:42:42-07:00",
      "committed_date": "2012-05-28T04:42:42-07:00"
    },
    "protected": null
  }
]

Return values:

  • 200 Ok on success and the list of repository tags
  • 401 Unauthorized if user is not authenticated
  • 404 Not Found if the project ID not found

List repository commits

Get a list of repository commits in a project.

GET /projects/:id/repository/commits

Parameters:

  • id (required) - The ID of a project
  • ref_name (optional) - The name of a repository branch or tag or if not given the default branch
  • page(optional) - The page with the commits (pagination)
  • per_page (optional) - The number of commits per page (pagination)
[
  {
    "id": "ed899a2f4b50b4370feeea94676502b42383c746",
    "short_id": "ed899a2f4b5",
    "title": "Replace sanitize with escape once",
    "author_name": "Dmitriy Zaporozhets",
    "author_email": "dzaporozhets@sphereconsultinginc.com",
    "created_at": "2012-09-20T11:50:22+03:00"
  },
  {
    "id": "6104942438c14ec7bd21c6cd5bd995272b3faff6",
    "short_id": "6104942438c",
    "title": "Sanitize for network graph",
    "author_name": "randx",
    "author_email": "dmitriy.zaporozhets@gmail.com",
    "created_at": "2012-09-20T09:06:12+03:00"
  }
]

Return values:

  • 200 Ok on success and a list of commits
  • 401 Unauthorized if the user is not authenticated
  • 404 Not Found if the project ID not found

Raw blob content

Get the raw file contents for a file.

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

Parameters:

  • id (required) - The ID of a project
  • sha (required) - The commit or branch name
  • filepath (required) - The path the file

Return values:

  • 200 Ok on success and the raw content of the file
  • 400 Bad Request if required attribute filepath is not given
  • 401 Unauthorized if user is not authenticated
  • 404 Not Found if project ID or sha commit or branch name not found