gitlab-org--gitlab-foss/doc/api/repositories.md

205 lines
5.7 KiB
Markdown
Raw Normal View History

# Repositories API
2014-05-27 08:12:15 -04:00
## List repository tree
Get a list of repository files and directories in a project. This endpoint can
be accessed without authentication if the repository is publicly accessible.
This command provides essentially the same functionality as the `git ls-tree` command. For more information, see the section _Tree Objects_ in the [Git internals documentation](https://git-scm.com/book/en/v2/Git-Internals-Git-Objects/#_tree_objects).
```
GET /projects/:id/repository/tree
```
Parameters:
- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
2014-08-15 03:03:18 -04:00
- `path` (optional) - The path inside repository. Used to get contend of subdirectories
- `ref` (optional) - The name of a repository branch or tag or if not given the default branch
- `recursive` (optional) - Boolean value used to get a recursive tree (false by default)
```json
2014-04-05 02:36:47 -04:00
[
{
"id": "a1e8f8d745cc87e3a9248358d9352bb7f9a0aeba",
"name": "html",
2014-04-05 02:36:47 -04:00
"type": "tree",
"path": "files/html",
"mode": "040000"
2014-04-05 02:36:47 -04:00
},
{
"id": "4535904260b1082e14f867f7a24fd8c21495bde3",
"name": "images",
2014-04-05 02:36:47 -04:00
"type": "tree",
"path": "files/images",
"mode": "040000"
2014-04-05 02:36:47 -04:00
},
{
"id": "31405c5ddef582c5a9b7a85230413ff90e2fe720",
"name": "js",
2014-04-05 02:36:47 -04:00
"type": "tree",
"path": "files/js",
"mode": "040000"
2014-04-05 02:36:47 -04:00
},
{
"id": "cc71111cfad871212dc99572599a568bfe1e7e00",
"name": "lfs",
"type": "tree",
"path": "files/lfs",
"mode": "040000"
2014-04-05 02:36:47 -04:00
},
{
"id": "fd581c619bf59cfdfa9c8282377bb09c2f897520",
"name": "markdown",
"type": "tree",
"path": "files/markdown",
"mode": "040000"
},
{
"id": "23ea4d11a4bdd960ee5320c5cb65b5b3fdbc60db",
"name": "ruby",
"type": "tree",
"path": "files/ruby",
"mode": "040000"
2014-04-05 02:36:47 -04:00
},
{
"id": "7d70e02340bac451f281cecf0a980907974bd8be",
"name": "whitespace",
2014-04-05 02:36:47 -04:00
"type": "blob",
"path": "files/whitespace",
"mode": "100644"
2014-04-05 02:36:47 -04:00
}
]
```
## Get a blob from repository
2012-09-21 08:03:50 -04:00
Allows you to receive information about blob in repository like size and
content. Note that blob content is Base64 encoded. This endpoint can be accessed
2017-03-01 15:22:29 -05:00
without authentication if the repository is publicly accessible.
2012-09-21 08:03:50 -04:00
```
GET /projects/:id/repository/blobs/:sha
2012-09-21 08:03:50 -04:00
```
Parameters:
- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
- `sha` (required) - The blob SHA
## Raw blob content
Get the raw file contents for a blob by blob SHA. This endpoint can be accessed
without authentication if the repository is publicly accessible.
```
2017-03-01 15:22:29 -05:00
GET /projects/:id/repository/blobs/:sha/raw
```
Parameters:
- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
2014-08-15 03:03:18 -04:00
- `sha` (required) - The blob SHA
## Get file archive
Get an archive of the repository. This endpoint can be accessed without
authentication if the repository is publicly accessible.
```
GET /projects/:id/repository/archive
```
Parameters:
- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
2014-08-15 03:03:18 -04:00
- `sha` (optional) - The commit SHA to download defaults to the tip of the default branch
## Compare branches, tags or commits
This endpoint can be accessed without authentication if the repository is
publicly accessible.
```
GET /projects/:id/repository/compare
```
Parameters:
- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
2014-08-15 03:03:18 -04:00
- `from` (required) - the commit SHA or branch name
- `to` (required) - the commit SHA or branch name
```
GET /projects/:id/repository/compare?from=master&to=feature
```
Response:
```json
{
"commit": {
"id": "12d65c8dd2b2676fa3ac47d955accc085a37a9c1",
"short_id": "12d65c8dd2b",
"title": "JS fix",
"author_name": "Dmitriy Zaporozhets",
"author_email": "dmitriy.zaporozhets@gmail.com",
"created_at": "2014-02-27T10:27:00+02:00"
},
"commits": [{
"id": "12d65c8dd2b2676fa3ac47d955accc085a37a9c1",
"short_id": "12d65c8dd2b",
"title": "JS fix",
"author_name": "Dmitriy Zaporozhets",
"author_email": "dmitriy.zaporozhets@gmail.com",
"created_at": "2014-02-27T10:27:00+02:00"
}],
"diffs": [{
"old_path": "files/js/application.js",
"new_path": "files/js/application.js",
"a_mode": null,
"b_mode": "100644",
"diff": "--- a/files/js/application.js\n+++ b/files/js/application.js\n@@ -24,8 +24,10 @@\n //= require g.raphael-min\n //= require g.bar-min\n //= require branch-graph\n-//= require highlightjs.min\n-//= require ace/ace\n //= require_tree .\n //= require d3\n //= require underscore\n+\n+function fix() { \n+ alert(\"Fixed\")\n+}",
"new_file": false,
"renamed_file": false,
"deleted_file": false
}],
"compare_timeout": false,
"compare_same_ref": false
}
```
## Contributors
Get repository contributors list. This endpoint can be accessed without
authentication if the repository is publicly accessible.
```
GET /projects/:id/repository/contributors
```
Parameters:
2014-08-15 03:03:18 -04:00
- `id` (required) - The ID or [URL-encoded path of the project](README.md#namespaced-path-encoding) owned by the authenticated user
- `order_by` (optional) - Return contributors ordered by `name`, `email`, or `commits` fields. If not given contributors are ordered by commit date.
- `sort` (optional) - Return contributors sorted in `asc` or `desc` order. Default is `asc`
Response:
```
[{
"name": "Dmitriy Zaporozhets",
"email": "dmitriy.zaporozhets@gmail.com",
"commits": 117,
"additions": 2097,
"deletions": 517
}, {
"name": "Jacob Vosmaer",
"email": "contact@jacobvosmaer.nl",
"commits": 33,
"additions": 338,
"deletions": 244
}]
```