gitlabhq/doc/api/projects.md
Felix Gilcher 566de5ab06 update api documentation for delete team member
correctly describes the new behavior
2013-02-01 14:20:51 +00:00

5.2 KiB

List projects

Get a list of projects owned by the authenticated user.

GET /projects
[
  {
    "id": 3,
    "name": "rails",
    "description": null,
    "default_branch": "master",
    "owner": {
      "id": 1,
      "username": "john_smith",
      "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,
    "name": "gitlab",
    "description": null,
    "default_branch": "api",
    "owner": {
      "id": 1,
      "username": "john_smith",
      "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

Get a specific project, identified by project ID, which is owned by the authentication user.

GET /projects/:id

Parameters:

  • id (required) - The ID of a project
{
  "id": 5,
  "name": "gitlab",
  "description": null,
  "default_branch": "api",
  "owner": {
    "id": 1,
    "username": "john_smith",
    "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
  • 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

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

List project team members

Get a list of project team members.

GET /projects/:id/members

Parameters:

  • id (required) - The ID of a project
  • query - Query string

Get project team member

Get a project team member.

GET /projects/:id/members/:user_id

Parameters:

  • id (required) - The ID of a project
  • user_id (required) - The ID of a user
{

  "id": 1,
  "username": "john_smith",
  "email": "john@example.com",
  "name": "John Smith",
  "blocked": false,
  "created_at": "2012-05-23T08:00:58Z",
  "access_level": 40
}

Add project team member

Add a user to a project team.

POST /projects/:id/members

Parameters:

  • id (required) - The ID of a project
  • user_id (required) - The ID of a user to add
  • access_level (required) - Project access level

Will return status 201 Created on success, or 404 Not found on fail.

Edit project team member

Update project team member to specified access level.

PUT /projects/:id/members/:user_id

Parameters:

  • id (required) - The ID of a project
  • user_id (required) - The ID of a team member
  • access_level (required) - Project access level

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

Remove project team member

Removes user from project team.

DELETE /projects/:id/members/:user_id

Parameters:

  • id (required) - The ID of a project
  • user_id (required) - The ID of a team member

Status code 200 OK will be returned on success. This method is idempotent and call be called multiple times with the same parameters. Revoking team membership for a user who is not currently a team member is considered success. Please note that the returned JSON currently differs slightly. Thus you should not rely on the returned JSON structure.

List project hooks

Get list for project hooks

GET /projects/:id/hooks

Parameters:

  • id (required) - The ID 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 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.

Add project hook

Add hook to project

POST /projects/:id/hooks

Parameters:

  • id (required) - The ID 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 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.

Delete project hook

Delete hook from project

DELETE /projects/:id/hooks

Parameters:

  • id (required) - The ID 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.