BigW Consortium Gitlab

repositories.md 4.96 KB
Newer Older
1 2
# Repositories

3 4
## List repository tree

5 6
Get a list of repository files and directories in a project. This endpoint can
be accessed without authentication if the repository is publicly accessible.
7

8 9
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).

10 11 12 13 14 15
```
GET /projects/:id/repository/tree
```

Parameters:

Ciro Santilli committed
16 17
- `id` (required) - The ID of a project
- `path` (optional) - The path inside repository. Used to get contend of subdirectories
18
- `ref` (optional) - The name of a repository branch or tag or if not given the default branch
19
- `recursive` (optional) - Boolean value used to get a recursive tree (false by default)
20 21

```json
22 23
[
  {
24 25
    "id": "a1e8f8d745cc87e3a9248358d9352bb7f9a0aeba",
    "name": "html",
26
    "type": "tree",
27 28
    "path": "files/html",
    "mode": "040000"
29 30
  },
  {
31 32
    "id": "4535904260b1082e14f867f7a24fd8c21495bde3",
    "name": "images",
33
    "type": "tree",
34 35
    "path": "files/images",
    "mode": "040000"
36 37
  },
  {
38 39
    "id": "31405c5ddef582c5a9b7a85230413ff90e2fe720",
    "name": "js",
40
    "type": "tree",
41 42
    "path": "files/js",
    "mode": "040000"
43 44
  },
  {
45 46 47 48 49
    "id": "cc71111cfad871212dc99572599a568bfe1e7e00",
    "name": "lfs",
    "type": "tree",
    "path": "files/lfs",
    "mode": "040000"
50 51
  },
  {
52 53 54 55 56 57 58 59 60 61 62 63
    "id": "fd581c619bf59cfdfa9c8282377bb09c2f897520",
    "name": "markdown",
    "type": "tree",
    "path": "files/markdown",
    "mode": "040000"
  },
  {
    "id": "23ea4d11a4bdd960ee5320c5cb65b5b3fdbc60db",
    "name": "ruby",
    "type": "tree",
    "path": "files/ruby",
    "mode": "040000"
64 65
  },
  {
66 67
    "id": "7d70e02340bac451f281cecf0a980907974bd8be",
    "name": "whitespace",
68
    "type": "blob",
69 70
    "path": "files/whitespace",
    "mode": "100644"
71 72
  }
]
73 74
```

75
## Get a blob from repository
76

77 78
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
79
without authentication if the repository is publicly accessible.
80 81

```
82
GET /projects/:id/repository/blobs/:sha
83 84 85 86
```

Parameters:

Ciro Santilli committed
87 88
- `id` (required) - The ID of a project
- `sha` (required) - The commit or branch name
89

90 91
## Raw blob content

92 93
Get the raw file contents for a blob by blob SHA. This endpoint can be accessed
without authentication if the repository is publicly accessible.
94 95

```
96
GET /projects/:id/repository/blobs/:sha/raw
97 98 99 100
```

Parameters:

Ciro Santilli committed
101 102
- `id` (required) - The ID of a project
- `sha` (required) - The blob SHA
103

104 105
## Get file archive

106 107
Get an archive of the repository. This endpoint can be accessed without
authentication if the repository is publicly accessible.
108 109 110 111 112 113

```
GET /projects/:id/repository/archive
```

Parameters:
114

Ciro Santilli committed
115 116
- `id` (required) - The ID of a project
- `sha` (optional) - The commit SHA to download defaults to the tip of the default branch
117 118 119

## Compare branches, tags or commits

120 121 122
This endpoint can be accessed without authentication if the repository is
publicly accessible.

123 124 125 126 127 128
```
GET /projects/:id/repository/compare
```

Parameters:

Ciro Santilli committed
129 130 131
- `id` (required) - The ID of a project
- `from` (required) - the commit SHA or branch name
- `to` (required) - the commit SHA or branch name
132 133 134 135 136

```
GET /projects/:id/repository/compare?from=master&to=feature
```

137
Response:
138 139

```json
140

141 142
{
  "commit": {
143 144 145
    "id": "12d65c8dd2b2676fa3ac47d955accc085a37a9c1",
    "short_id": "12d65c8dd2b",
    "title": "JS fix",
146 147
    "author_name": "Dmitriy Zaporozhets",
    "author_email": "dmitriy.zaporozhets@gmail.com",
148
    "created_at": "2014-02-27T10:27:00+02:00"
149 150
  },
  "commits": [{
151 152 153
    "id": "12d65c8dd2b2676fa3ac47d955accc085a37a9c1",
    "short_id": "12d65c8dd2b",
    "title": "JS fix",
154 155
    "author_name": "Dmitriy Zaporozhets",
    "author_email": "dmitriy.zaporozhets@gmail.com",
156
    "created_at": "2014-02-27T10:27:00+02:00"
157 158
  }],
  "diffs": [{
159 160
    "old_path": "files/js/application.js",
    "new_path": "files/js/application.js",
161
    "a_mode": null,
162 163 164
    "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,
165 166
    "renamed_file": false,
    "deleted_file": false
167 168 169
  }],
  "compare_timeout": false,
  "compare_same_ref": false
170 171
}
```
172 173 174

## Contributors

175 176
Get repository contributors list. This endpoint can be accessed without
authentication if the repository is publicly accessible.
177 178 179 180 181 182

```
GET /projects/:id/repository/contributors
```

Parameters:
Ciro Santilli committed
183 184

- `id` (required) - The ID of a project
185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202

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
}]
```