# Projects API This API is intended to aid in the setup and configuration of projects on Gitlab CI. __Authentication is done by GitLab user token & GitLab url__ ## Projects ### List Authorized Projects Lists all projects that the authenticated user has access to. ``` GET /projects ``` Returns: ```json [ { "id" : 271, "name" : "gitlabhq", "timeout" : 1800, "token" : "iPWx6WM4lhHNedGfBpPJNP", "default_ref" : "master", "gitlab_url" : "http://demo.gitlabhq.com/gitlab/gitlab-shell", "path" : "gitlab/gitlab-shell", "always_build" : false, "polling_interval" : null, "public" : false, "ssh_url_to_repo" : "git@demo.gitlab.com:gitlab/gitlab-shell.git", "gitlab_id" : 3 }, { "id" : 272, "name" : "gitlab-ci", "timeout" : 1800, "token" : "iPWx6WM4lhHNedGfBpPJNP", "default_ref" : "master", "gitlab_url" : "http://demo.gitlabhq.com/gitlab/gitlab-shell", "path" : "gitlab/gitlab-shell", "always_build" : false, "polling_interval" : null, "public" : false, "ssh_url_to_repo" : "git@demo.gitlab.com:gitlab/gitlab-shell.git", "gitlab_id" : 4 } ] ``` ### List Owned Projects Lists all projects that the authenticated user owns. ``` GET /projects/owned ``` Returns: ```json [ { "id" : 272, "name" : "gitlab-ci", "timeout" : 1800, "token" : "iPWx6WM4lhHNedGfBpPJNP", "default_ref" : "master", "gitlab_url" : "http://demo.gitlabhq.com/gitlab/gitlab-shell", "path" : "gitlab/gitlab-shell", "always_build" : false, "polling_interval" : null, "public" : false, "ssh_url_to_repo" : "git@demo.gitlab.com:gitlab/gitlab-shell.git", "gitlab_id" : 4 } ] ``` ### Single Project Returns information about a single project for which the user is authorized. GET /projects/:id Parameters: * `id` (required) - The ID of the Gitlab CI project ### Create Project Creates a Gitlab CI project using Gitlab project details. POST /projects Parameters: * `name` (required) - The name of the project * `gitlab_id` (required) - The ID of the project on the Gitlab instance * `path` (required) - The gitlab project path * `ssh_url_to_repo` (required) - The gitlab SSH url to the repo * `default_ref` (optional) - The branch to run on (default to `master`) ### Update Project Updates a Gitlab CI project using Gitlab project details that the authenticated user has access to. PUT /projects/:id Parameters: * `name` - The name of the project * `gitlab_id` - The ID of the project on the Gitlab instance * `path` - The gitlab project path * `ssh_url_to_repo` - The gitlab SSH url to the repo * `default_ref` - The branch to run on (default to `master`) ### Remove Project Removes a Gitlab CI project that the authenticated user has access to. DELETE /projects/:id Parameters: * `id` (required) - The ID of the Gitlab CI project ### Link Project to Runner Links a runner to a project so that it can make builds (only via authorized user). POST /projects/:id/runners/:runner_id Parameters: * `id` (required) - The ID of the Gitlab CI project * `runner_id` (required) - The ID of the Gitlab CI runner ### Remove Project from Runner Removes a runner from a project so that it can not make builds (only via authorized user). DELETE /projects/:id/runners/:runner_id Parameters: * `id` (required) - The ID of the Gitlab CI project * `runner_id` (required) - The ID of the Gitlab CI runner