gitlabhq/doc/api/projects.md

274 lines
5.2 KiB
Markdown
Raw Normal View History

2012-07-05 15:57:45 +02:00
## List projects
2012-08-14 18:54:25 +02:00
Get a list of projects owned by the authenticated user.
2012-07-05 15:57:45 +02:00
```
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
2012-08-14 18:54:25 +02:00
Get a specific project, identified by project ID, which is owned by the authentication user.
2012-07-05 15:57:45 +02:00
```
GET /projects/:id
```
Parameters:
2012-07-25 11:35:41 +02:00
+ `id` (required) - The ID or code name of a project
2012-07-05 15:57:45 +02:00
2012-08-31 09:25:36 +02:00
```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
2012-08-31 10:11:12 +02:00
+ `code` (optional) - new project code, uses project name if not set
+ `path` (optional) - new project path, uses project name if not set
+ `description` (optional) - short project description
2012-09-03 17:00:24 +02:00
+ `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
2012-08-31 09:25:36 +02:00
2012-08-31 09:27:45 +02:00
Will return created project with status `201 Created` on success, or `404 Not
found` on fail.
2012-09-21 12:23:17 +02:00
## List project team members
2012-09-06 22:49:29 +02:00
2012-09-21 12:23:17 +02:00
Get a list of project team members.
2012-09-06 22:49:29 +02:00
```
2012-09-21 12:23:17 +02:00
GET /projects/:id/members
2012-09-06 22:49:29 +02:00
```
Parameters:
+ `id` (required) - The ID or code name of a project
2012-09-21 12:23:17 +02:00
## Get project team member
2012-09-06 22:49:29 +02:00
2012-09-21 12:23:17 +02:00
Get a project team member.
2012-09-21 12:23:17 +02:00
```
GET /projects/:id/members/:user_id
```
Parameters:
2012-09-21 12:23:17 +02:00
+ `id` (required) - The ID or code name of a project
+ `user_id` (required) - The ID of a user
```json
{
"id": 1,
"email": "john@example.com",
"name": "John Smith",
"blocked": false,
"created_at": "2012-05-23T08:00:58Z",
"access_level": 40
}
```
2012-09-21 12:23:17 +02:00
## Add project team member
Add a user to a project team.
```
POST /projects/:id/members
```
Parameters:
+ `id` (required) - The ID or code name of a project
2012-09-21 12:23:17 +02:00
+ `user_id` (required) - The ID of a user to add
+ `access_level` (required) - Project access level
2012-09-06 22:49:29 +02:00
Will return status `201 Created` on success, or `404 Not found` on fail.
2012-09-21 12:23:17 +02:00
## Edit project team member
2012-09-06 22:49:29 +02:00
2012-09-21 12:23:17 +02:00
Update project team member to specified access level.
2012-09-06 22:49:29 +02:00
```
2012-09-21 12:23:17 +02:00
PUT /projects/:id/members/:user_id
2012-09-06 22:49:29 +02:00
```
Parameters:
+ `id` (required) - The ID or code name of a project
2012-09-21 12:23:17 +02:00
+ `user_id` (required) - The ID of a team member
+ `access_level` (required) - Project access level
2012-09-06 22:49:29 +02:00
Will return status `200 OK` on success, or `404 Not found` on fail.
2012-09-21 12:23:17 +02:00
## Remove project team member
2012-09-06 22:49:29 +02:00
2012-09-21 12:23:17 +02:00
Removes user from project team.
2012-09-06 22:49:29 +02:00
```
2012-09-21 12:23:17 +02:00
DELETE /projects/:id/members/:user_id
2012-09-06 22:49:29 +02:00
```
Parameters:
+ `id` (required) - The ID or code name of a project
2012-09-21 12:23:17 +02:00
+ `user_id` (required) - The ID of a team member
2012-09-06 22:49:29 +02:00
2012-09-21 12:23:17 +02:00
Status code `200` will be returned on success.
2012-07-05 15:57:45 +02:00
## List project hooks
2012-09-08 19:51:12 +02:00
Get list for project hooks
2012-09-08 19:51:12 +02:00
```
GET /projects/:id/hooks
```
Parameters:
+ `id` (required) - The ID or code name of a project
Will return hooks with status `200 OK` on success, or `404 Not found` on fail.
## Get project hook
Get hook for project
```
GET /projects/:id/hooks/:hook_id
```
Parameters:
+ `id` (required) - The ID or code name of a project
+ `hook_id` (required) - The ID of a project hook
Will return hook with status `200 OK` on success, or `404 Not found` on fail.
2012-09-08 19:51:12 +02:00
## Add project hook
Add hook to project
```
POST /projects/:id/hooks
```
Parameters:
+ `id` (required) - The ID or code name of a project
+ `url` (required) - The hook URL
Will return status `201 Created` on success, or `404 Not found` on fail.
## Edit project hook
Edit hook for project
```
PUT /projects/:id/hooks/:hook_id
```
Parameters:
+ `id` (required) - The ID or code name of a project
+ `hook_id` (required) - The ID of a project hook
+ `url` (required) - The hook URL
Will return status `201 Created` on success, or `404 Not found` on fail.
2012-09-08 19:51:12 +02:00
## Delete project hook
Delete hook from project
```
DELETE /projects/:id/hooks
```
Parameters:
+ `id` (required) - The ID or code name of a project
+ `hook_id` (required) - The ID of hook to delete
Will return status `200 OK` on success, or `404 Not found` on fail.