projects.md 6.2 KB
Newer Older
N
Nihad Abbasov 已提交
1 2
## List projects

R
Rob Taylor 已提交
3
Get a list of projects owned by the authenticated user.
N
Nihad Abbasov 已提交
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57

```
GET /projects
```

```json
[
  {
    "id": 3,
    "code": "rails",
    "name": "rails",
    "description": null,
    "path": "rails",
    "default_branch": "master",
    "owner": {
      "id": 1,
      "email": "john@example.com",
      "name": "John Smith",
      "blocked": false,
      "created_at": "2012-05-23T08:00:58Z"
    },
    "private": true,
    "issues_enabled": false,
    "merge_requests_enabled": false,
    "wall_enabled": true,
    "wiki_enabled": true,
    "created_at": "2012-05-23T08:05:02Z"
  },
  {
    "id": 5,
    "code": "gitlab",
    "name": "gitlab",
    "description": null,
    "path": "gitlab",
    "default_branch": "api",
    "owner": {
      "id": 1,
      "email": "john@example.com",
      "name": "John Smith",
      "blocked": false,
      "created_at": "2012-05-23T08:00:58Z"
    },
    "private": true,
    "issues_enabled": true,
    "merge_requests_enabled": true,
    "wall_enabled": true,
    "wiki_enabled": true,
    "created_at": "2012-05-30T12:49:20Z"
  }
]
```

## Single project

R
Rob Taylor 已提交
58
Get a specific project, identified by project ID, which is owned by the authentication user.
N
Nihad Abbasov 已提交
59 60 61 62 63 64 65

```
GET /projects/:id
```

Parameters:

N
Nihad Abbasov 已提交
66
+ `id` (required) - The ID or code name of a project
N
Nihad Abbasov 已提交
67

A
Alex Denisov 已提交
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102
```json
{
  "id": 5,
  "code": "gitlab",
  "name": "gitlab",
  "description": null,
  "path": "gitlab",
  "default_branch": "api",
  "owner": {
    "id": 1,
    "email": "john@example.com",
    "name": "John Smith",
    "blocked": false,
    "created_at": "2012-05-23T08:00:58Z"
  },
  "private": true,
  "issues_enabled": true,
  "merge_requests_enabled": true,
  "wall_enabled": true,
  "wiki_enabled": true,
  "created_at": "2012-05-30T12:49:20Z"
}
```

## Create project

Create new project owned by user

```
POST /projects
```

Parameters:

+ `name` (required) - new project name
A
Alex Denisov 已提交
103 104
+ `code` (optional) - new project code, uses project name if not set
+ `path` (optional) - new project path, uses project name if not set
105 106 107 108 109 110
+ `description (optional) - short project description
+ `default_branch` (optional) - 'master' by default
+ `issues_enabled` (optional) - enabled by default
+ `wall_enabled` (optional) - enabled by default
+ `merge_requests_enabled` (optional) - enabled by default
+ `wiki_enabled` (optional) - enabled by default
A
Alex Denisov 已提交
111

112 113 114
Will return created project with status `201 Created` on success, or `404 Not
found` on fail.

M
miks 已提交
115 116 117 118 119 120 121 122 123 124 125 126 127 128
## Get project users

Get users and access roles for existing project

```
GET /projects/:id/users
```

Parameters:

+ `id` (required) - The ID or code name of a project

Will return users and their access roles with status `200 OK` on success, or `404 Not found` on fail.

129 130 131 132 133
## Add project users

Add users to exiting project

```
M
miks 已提交
134
POST /projects/:id/users
135 136 137 138 139
```

Parameters:

+ `id` (required) - The ID or code name of a project
M
miks 已提交
140 141
+ `user_ids` (required) - The ID list of users to add
+ `project_access` (required) - Project access level
142

M
miks 已提交
143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174
Will return status `201 Created` on success, or `404 Not found` on fail.

## Update project users access level

Update existing users to specified access level

```
PUT /projects/:id/users
```

Parameters:

+ `id` (required) - The ID or code name of a project
+ `user_ids` (required) - The ID list of users to add
+ `project_access` (required) - Project access level

Will return status `200 OK` on success, or `404 Not found` on fail.

## Delete project users

Delete users from exiting project

```
DELETE /projects/:id/users
```

Parameters:

+ `id` (required) - The ID or code name of a project
+ `user_ids` (required) - The ID list of users to add

Will return status `200 OK` on success, or `404 Not found` on fail.
N
Nihad Abbasov 已提交
175 176 177

## Project repository branches

R
Rob Taylor 已提交
178
Get a list of repository branches from a project, sorted by name alphabetically.
N
Nihad Abbasov 已提交
179 180 181 182 183 184 185

```
GET /projects/:id/repository/branches
```

Parameters:

N
Nihad Abbasov 已提交
186
+ `id` (required) - The ID or code name of a project
N
Nihad Abbasov 已提交
187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215

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

216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252
Get a single project repository branch.

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

Parameters:

+ `id` (required) - The ID or code name of a project
+ `branch` (required) - The name of the branch

```json
{
  "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"
  }
}
```

N
Nihad Abbasov 已提交
253 254
## Project repository tags

R
Rob Taylor 已提交
255
Get a list of repository tags from a project, sorted by name in reverse alphabetical order.
N
Nihad Abbasov 已提交
256 257 258 259 260 261 262

```
GET /projects/:id/repository/tags
```

Parameters:

N
Nihad Abbasov 已提交
263
+ `id` (required) - The ID or code name of a project
N
Nihad Abbasov 已提交
264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290

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

291 292 293 294 295 296 297 298 299 300 301 302
## Raw blob content

Get the raw file contents for a file.

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

Parameters:

+ `id` (required) - The ID or code name of a project
+ `sha` (required) - The commit or branch name
J
Jeremy Anderson 已提交
303
+ `filepath` (required) - The path the file 
304 305

Will return the raw file contents.
R
Rob Taylor 已提交
306