1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/panda26-gitlab

Клонировать/Скачать
projects.md 47 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 26.05.2025 02:09 64486eb

API для проектов

Уровень видимости проекта

Проект в GitLab может быть либо приватным, либо внутренним, либо публичным. Это определяется полем visibility проекта.

Значения для уровня видимости проекта:

  • private: Доступ к проекту должен быть явно предоставлен каждому пользователю.

  • internal: Проект может быть клонирован любым авторизованным пользователем.

  • public: Проект может быть клонирован без какой-либо аутентификации.

Получение списка проектов

Получение списка видимых проектов для авторизованного пользователя. При доступе без аутентификации возвращаются только публичные проекты.

GET /projects

Параметры:| Атрибут | Тип | Обязательный | Описание | | --------- | ---- | -------- | ----------- | | archived | boolean | нет | Ограничение по статусу архивации | | visibility | string | нет | Ограничение по видимости public, internal, или private | | order_by | string | нет | Возвращение проектов, отсортированных по полям id, name, path, created_at, updated_at, или last_activity_at. По умолчанию используется created_at | | sort | string | нет | Возвращение проектов, отсортированных в порядке asc или desc. По умолчанию используется desc | | search | string | нет | Возвращение списка проектов, соответствующих критериям поиска | | simple | boolean | нет | Возвращение только ID, URL, имени и пути каждого проекта | | owned | boolean | нет | Ограничение по проектам, владельцем которых является текущий пользователь | | membership | boolean | нет | Ограничение по проектам, в которых текущий пользователь является участником | | starred | boolean | нет | Ограничение по проектам, отмеченным текущим пользователем | | statistics | boolean | нет | Включение статистики проекта | | with_issues_enabled | boolean | нет | Ограничение по включенной функции проблем | | with_merge_requests_enabled | boolean | нет | Ограничение по включенной функции слияния запросов |```json [ { "id": 4, "description": null, "default_branch": "master", "visibility": "private", "ssh_url_to_repo": "git@example.com:diaspora/diaspora-client.git", "http_url_to_repo": "http://example.com/diaspora/diaspora-client.git", "web_url": "http://example.com/diaspora/diaspora-client", "tag_list": [ "example", "disapora client" ], "owner": { "id": 3, "name": "Diaspora", "created_at": "2013-09-30T13:46:02Z" }, ] "name": "Diaspora Client", "name_with_namespace": "Diaspora / Diaspora Client", "path": "diaspora-client", "path_with_namespace": "diaspora/diaspora-client", "issues_enabled": true, "open_issues_count": 1, "merge_requests_enabled": true, "jobs_enabled": true, "wiki_enabled": true, "snippets_enabled": false, "container_registry_enabled": false, "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, "namespace": { "id": 3, "name": "Diaspora", "path": "diaspora", "kind": "group", "full_path": "diaspora" }, "import_status": "none", "archived": false, "avatar_url": "http://example. com/uploads/project/avatar/4/uploads/avatar. png", "shared_runners_enabled": true, "forks_count": 0, "star_count": 0, "runners_token": "b8547b1dc37721d05889db52fa2f02", "public_jobs": true, "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "only_allow_merge_if_all_discussions_are_resolved": false, "request_access_enabled": false, "statistics": { "commit_count": 37, "storage_size": 1038090, "repository_size": 1038090, "lfs_objects_size": 0, "job_artifacts_size": 0 } }, { "id": 6, "description": null, "default_branch": "master", "visibility": "private", "ssh_url_to_repo": "git@example. com:brightbox/puppet. git", "http_url_to_repo": "http://example. com/brightbox/puppet. git", "web_url": "http://example. com/brightbox/puppet", "tag_list": [ "example", "puppet" ], "owner": { "id": 4, "name": "Brightbox", "created_at": "2013-09-30T13:46:02Z" }, "name": "Puppet", "name_with_namespace": "Brightbox / Puppet", "path": "puppet", "path_with_namespace": "brightbox/puppet", "issues_enabled": true, "open_issues_count": 1, "merge_requests_enabled": true, "jobs_enabled": true, "wiki_enabled": true, "snippets_enabled": false, "container_registry_enabled": false, "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, "namespace": { "id": 4, "name": "Brightbox", "path": "brightbox", "kind": "group", "full_path": "brightbox" } ] "full_path": "brightbox", }, "import_status": "none", "import_error": null, "permissions": { "project_access": { "access_level": 10, "notification_level": 3 }, "group_access": { "access_level": 50, "notification_level": 3 } }, "archived": false, "avatar_url": null, "shared_runners_enabled": true, "forks_count": 0, "star_count": 0, "runners_token": "b8547b1dc37721d05889db52fa2f02", "public_jobs": true, "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "only_allow_merge_if_all_discussions_are_resolved": false, "request_access_enabled": false, "statistics": { "commit_count": 12, "storage_size": 2066080, "repository_size": 2066080, "lfs_objects_size": 0, "job_artifacts_size": 0 } } ]

GET /projects/:id


Параметры:| Атрибут | Тип | Обязательный | Описание |
 | -------- | ---- | ------------ | ----------- |
 | `id` | integer/string | да | Идентификатор или [URL-кодированная строка пути проекта](README.md#namespaced-path-encoding) |
 | `statistics` | boolean | нет | Включить статистику проекта |```json
 {
   "id": 3,
   "description": null,
   "default_branch": "master",
   "visibility": "private",
   "ssh_url_to_repo": "git@example.com:diaspora/diaspora-project-site.git",
   "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
   "web_url": "http://example.com/diaspora/diaspora-project-site",
   "tag_list": [
     "пример",
     "проект diaspora"
   ],
   "owner": {
     "id": 3,
     "name": "Diaspora",
     "created_at": "2013-09-30T13:46:02Z"
   },
   "name": "Сайт проекта Diaspora",
   "name_with_namespace": "Diaspora / Сайт проекта Diaspora",
   "path": "diaspora-project-site",
   "path_with_namespace": "diaspora/diaspora-project-site",
   "issues_enabled": true,
   "open_issues_count": 1,
   "merge_requests_enabled": true,
   "jobs_enabled": true,
   "wiki_enabled": true,
   "snippets_enabled": false,
   "container_registry_enabled": false,
   "created_at": "2013-09-30T13:46:02Z",
   "last_activity_at": "2013-09-30T13:46:02Z",
   "creator_id": 3,
   "namespace": {
     "id": 3,
     "name": "Diaspora",
     "path": "diaspora",
     "kind": "group",
     "full_path": "diaspora"
   },
   "import_status": "none",
   "import_error": null,
   "permissions": {
     "project_access": {
       "access_level": 10,
       "notification_level": 3
     },
     "group_access": {
       "access_level": 50,
       "notification_level": 3
     }
   },
   "archived": false,
   "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png",
   "shared_runners_enabled": true,
   "forks_count": 0,
   "star_count": 0,
   "runners_token": "b8bc4a7a29eb76ea83cf79e4908c2b",
   "public_jobs": true,
   "shared_with_groups": [
     {
       "group_id": 4,
       "group_name": "Twitter",
       "group_access_level": 30
     },
     {
       "group_id": 3,
       "group_name": "Gitlab Org",
       "group_access_level": 10
     }
   ],
   "only_allow_merge_if_pipeline_succeeds": false,
   "only_allow_merge_if_all_discussions_are_resolved": false,
   "printing_merge_requests_link_enabled": true,
 }  "request_access_enabled": false,
   "statistics": {
     "commit_count": 37,
     "storage_size": 1038090,
     "repository_size": 1038090,
     "lfs_objects_size": 0,
     "job_artifacts_size": 0
   }
 }
 ```## Получить список пользователей проекта```Получить список пользователей проекта.


Параметры:

| Атрибут | Тип | Обязательный | Описание |
| -------- | ---- | ------------ | --------- |
| `search` | string | нет | Поиск конкретных пользователей |

GET /projects/:id/users


```json
[
  {
    "id": 1,
    "username": "john_smith",
    "name": "John Smith",
    "state": "active",
    "avatar_url": "http://localhost:3000/uploads/user/avatar/1/cd8.jpeg",
    "web_url": "http://localhost:3000/john_smith"
  },
  {
    "id": 2,
    "username": "jack_smith",
    "name": "Jack Smith",
    "state": "blocked",
    "avatar_url": "http://gravatar.com/../e32131cd8.jpeg",
    "web_url": "http://localhost:3000/jack_smith"
  }
]

Получить события проекта

Для получения дополнительной информации обратитесь к документации API событий

Создать проект

Создает новый проект, владельцем которого является аутентифицированный пользователь.

POST /projects
```Параметры:| Атрибут | Тип | Обязательный | Описание |
 | --------- | ---- | -------- | ----------- |
 | `name` | string | да, если путь не указан | Имя нового проекта. Равно пути, если путь не указан. |
 | `path` | string | да, если имя не указано | Путь репозитория для нового проекта. Генерируется на основе имени, если путь не указан (генерируется в нижнем регистре с дефисами). |
 | `namespace_id` | integer | нет | Пространство имен для нового проекта (по умолчанию текущее пространство имен пользователя) |
 | `description` | string | нет | Краткое описание проекта |
 | `issues_enabled` | boolean | нет | Включить задачи для этого проекта |
 | `merge_requests_enabled` | boolean | нет | Включить запросы на слияние для этого проекта |
 | `jobs_enabled` | boolean | нет | Включить задания для этого проекта |
 | `wiki_enabled` | boolean | нет | Включить wiki для этого проекта |
 | `snippets_enabled` | boolean | нет | Включить фрагменты кода для этого проекта |
 | `container_registry_enabled` | boolean | нет | Включить реестр контейнеров для этого проекта |
 | `shared_runners_enabled` | boolean | нет | Включить общие строители для этого проекта |
 | `visibility` | string | нет | См. [уровень видимости проекта](#project-visibility-level) |
 | `import_url` | string | нет | URL для импорта репозитория |
 | `public_jobs` | boolean | нет | Если `true`, задания могут быть просмотрены неучастниками проекта |
 | `only_allow_merge_if_pipeline_succeeds` | boolean | нет | Установить, могут ли запросы на слияние быть выполнены только при успешном выполнении конвейера || `only_allow_merge_if_all_discussions_are_resolved` | boolean | нет | Установить, могут ли запросы на слияние быть выполнены только при разрешении всех обсуждений |
 | `lfs_enabled` | boolean | нет | Включить LFS |
 | `request_access_enabled` | boolean | нет | Разрешить пользователям запрашивать доступ к проекту |
 | `tag_list`    | array   | нет       | Список тегов для проекта; передайте массив тегов, которые должны быть в конечном итоге присвоены проекту |
 | `avatar`    | mixed   | нет      | Изображение для аватара проекта |
 | `printing_merge_request_link_enabled` | boolean | нет | Показывать ссылку для создания/просмотра запроса на слияние при отправке из командной строки |

### Создание проекта для пользователяСоздает новый проект, владельцем которого является указанный пользователь. Доступно только для администраторов.

POST /projects/user/:user_id


Параметры:| Атрибут | Тип | Обязательный | Описание |
 | -------- | ---- | ------------ | --------- |
 | `user_id` | integer | да | ID пользователя, который является владельцем проекта |
 | `name` | string | да | Название нового проекта |
 | `path` | string | нет | Пользовательское имя репозитория для нового проекта. По умолчанию генерируется на основе названия |
 | `default_branch` | string | нет | По умолчанию `master` |
 | `namespace_id` | integer | нет | Namespace для нового проекта (по умолчанию используется namespace текущего пользователя) |
 | `description` | string | нет | Краткое описание проекта |
 | `issues_enabled` | boolean | нет | Включение задач для этого проекта |
 | `merge_requests_enabled` | boolean | нет | Включение запросов на слияние для этого проекта |
 | `jobs_enabled` | boolean | нет | Включение задач для этого проекта |
 | `wiki_enabled` | boolean | нет | Включение wiki для этого проекта |
 | `snippets_enabled` | boolean | нет | Включение фрагментов кода для этого проекта |
 | `container_registry_enabled` | boolean | нет | Включение реестра контейнеров для этого проекта |
 | `shared_runners_enabled` | boolean | нет | Включение общих сборщиков для этого проекта |
 | `visibility` | string | нет | См. [уровень видимости проекта](#уровень-видимости-проекта) |
 | `import_url` | string | нет | URL для импорта репозитория |
 | `public_jobs` | boolean | нет | Если `true`, задачи могут быть просмотрены неучастниками проекта |
 | `only_allow_merge_if_pipeline_succeeds` | boolean | нет | Установка того, могут ли запросы на слияние быть выполнены только при успешном выполнении задач || `only_allow_merge_if_all_discussions_are_resolved` | boolean | нет | Установка того, могут ли запросы на слияние быть выполнены только при разрешении всех обсуждений |
 | `lfs_enabled` | boolean | нет | Включение LFS |
 | `request_access_enabled` | boolean | нет | Разрешение пользователям запрашивать доступ участника |
 | `tag_list` | array | нет | Список тегов для проекта; передайте массив тегов, которые должны быть в конечном итоге присвоены проекту |
 | `avatar` | mixed | нет | Файл изображения для аватара проекта |
 | `printing_merge_request_link_enabled` | boolean | нет | Отображение ссылки для создания/просмотра запроса на слияние при отправке из командной строки |### Редактирование проекта
Обновляет существующий проект.

PUT /projects/:id


Параметры:| Атрибут | Тип | Обязательный | Описание |
 | --------- | ---- | -------- | ----------- |
 | `id` | integer/string | да | ID или [URL-кодированное имя проекта](README.md#namespaced-path-encoding) |
 | `name` | string | да | Имя проекта |
 | `path` | string | нет | Пользовательское имя репозитория для проекта. По умолчанию генерируется на основе имени |
 | `default_branch` | string | нет | По умолчанию `master` |
 | `description` | string | нет | Краткое описание проекта |
 | `issues_enabled` | boolean | нет | Включить задачи для этого проекта |
 | `merge_requests_enabled` | boolean | нет | Включить слияния запросов для этого проекта |
 | `jobs_enabled` | boolean | нет | Включить задания для этого проекта |
 | `wiki_enabled` | boolean | нет | Включить wiki для этого проекта |
 | `snippets_enabled` | boolean | нет | Включить фрагменты кода для этого проекта |
 | `container_registry_enabled` | boolean | нет | Включить реестр контейнеров для этого проекта |
 | `shared_runners_enabled` | boolean | нет | Включить общие сборщики для этого проекта |
 | `visibility` | string | нет | См. [уровень видимости проекта](#project-visibility-level) |
 | `import_url` | string | нет | URL для импорта репозитория |
 | `public_jobs` | boolean | нет | Если `true`, задания могут быть просмотрены неучастниками проекта |
 | `only_allow_merge_if_pipeline_succeeds` | boolean | нет | Установить, могут ли запросы слияния быть выполнены только при успешном выполнении заданий |
 | `only_allow_merge_if_all_discussions_are_resolved` | boolean | нет | Установить, могут ли запросы слияния быть выполнены только при разрешении всех обсуждений |
 | `lfs_enabled` | boolean | нет | Включить LFS || `request_access_enabled` | boolean | нет | Разрешить пользователям запрашивать доступ к проекту |
 | `tag_list`               | array   | нет | Список тегов для проекта; передайте массив тегов, которые должны быть назначены проекту |
 | `avatar`                 | mixed   | нет | Изображение для аватара проекта |### Клонирование проекта

Клонирует проект в пространство имен пользователя, аутентифицированного пользователя или указанного пользователя.

Процесс клонирования проекта асинхронный и завершается в фоновом режиме. Запрос вернётся немедленно. Чтобы определить, завершилось ли клонирование проекта, запросите `import_status` для нового проекта.

POST /projects/:id/fork


Параметры:

| Атрибут | Тип | Обязательный | Описание |
| -------- | ---- | ------------ | --------- |
| `id` | integer/string | да | ID или [URL-кодированное имя проекта](README.md#namespaced-path-encoding) |
| `namespace` | integer/string | да | ID или путь пространства имен, в которое будет форкнут проект |

### Добавить звездочку проекту

Добавляет звездочку к указанному проекту. Возвращает статус-код `304`, если проект уже имеет звездочку.

POST /projects/:id/star


Параметры:

| Атрибут | Тип | Обязательный | Описание |
| -------- | ---- | ------------ | --------- |
| `id` | integer/string | да | ID или [URL-кодированное имя проекта](README.md#namespaced-path-encoding) |

```bash
curl --request POST --header "PRIVATE-TOKEN: bkjXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/5/star"

Пример ответа:```json { "id": 3, "description": null, "default_branch": "master", "visibility": "internal", "ssh_url_to_repo": "git@example.com:diaspora/diaspora-project-site.git", "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git", "web_url": "http://example.com/diaspora/diaspora-project-site", "tag_list": [ "example", "disapora project" ], "name": "Diaspora Project Site", "name_with_namespace": "Diaspora / Diaspora Project Site", "path": "diaspora-project-site", "path_with_namespace": "diaspora/diaspora-project-site", "issues_enabled": true, "open_issues_count": 1, "merge_requests_enabled": true, "jobs_enabled": true, "wiki_enabled": true, "snippets_enabled": false, "container_registry_enabled": false, "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, "namespace": { "id": 3, "name": "Diaspora", "path": "diaspora", "kind": "group", "full_path": "diaspora" }, "import_status": "none", "archived": true, "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png", "shared_runners_enabled": true, "forks_count": 0, "star_count": 1, "public_jobs": true, "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "only_allow_merge_if_all_discussions_are_resolved": false, "request_access_enabled": false }

### Отменить отметку звездой проектаОтменяет отметку звездой для заданного проекта. Возвращает статус-код `304`, если проект не отмечен звездой.

POST /projects/:id/unstar


| Атрибут | Тип | Обязательный | Описание |
| -------- | ---- | -------- | ----------- |
| `id` | integer/string | да | ID или [URL-кодированный путь проекта](README.md#namespaced-path-encoding) |

```bash
curl --request POST --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/5/unstar"

Пример ответа:

{
  "id": 3,
  "description": null,
  "default_branch": "master",
  "visibility": "internal",
  "ssh_url_to_repo": "git@example.com:diaspora/diaspora-project-site.git",
  "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
  "web_url": "http://example.com/diaspora/diaspora-project-site",
  "tag_list": [
    "example",
    "disapora project"
  ],
  "name": "Diaspora Project Site",
  "name_with_namespace": "Diaspora / Diaspora Project Site",
  "path": "diaspora-project-site",
  "path_with_namespace": "diaspora/diaspora-project-site",
  "issues_enabled": true,
  "open_issues_count": 1,
  "merge_requests_enabled": true,
  "jobs_enabled": true,
  "wiki_enabled": true,
  "snippets_enabled": false,
  "container_registry_enabled": false,
  "created_at": "2013-09-30T13:46:02Z",
  "last_activity_at": "2013-09-30T13:46:02Z",
  "creator_id": 3,
  "namespace": {
    "id": 3,
    "name": "Diaspora",
    "path": "diaspora",
    "kind": "group",
    "full_path": "diaspora"
  },
  "import_status": "none",
  "archived": true,
  "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png",
  "shared_runners_enabled": true,
  "forks_count": 0,
  "star_count": 0,
  "public_jobs": true,
  "shared_with_groups": [],
  "only_allow_merge_if_pipeline_succeeds": false,
  "only_allow_merge_if_all_discussions_are_resolved": false,
  "request_access_enabled": false
}

Архивировать проект

Архивирует проект, если пользователь является администратором или владельцем проекта. Эта операция идемпотентна, то есть архивирование уже архивированного проекта не изменит проект.``` POST /projects/:id/archive


| Атрибут | Тип | Обязательный | Описание |
| -------- | ---- | -------- | ----------- |
| `id` | integer/string | да | ID или [URL-кодированный путь проекта](README.md#namespaced-path-encoding) |

Пример запроса:

```bash
curl --request POST --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/5/archive"

Пример ответа:

{
  "id": 3,
  "description": null,
  "default_branch": "master",
  "visibility": "private",
  "ssh_url_to_repo": "git@example.com:diaspora/diaspora-project-site.git",
  "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git",
  "web_url": "http://example.com/diaspora/diaspora-project-site",
  "tag_list": [
    "example",
    "disapora project"
  ],
  "owner": {
    "id": 3,
    "name": "Diaspora",
    "created_at": "2013-09-30T13:46:02Z"
  },
  "name": "Diaspora Project Site",
  "name_with_namespace": "Diaspora / Diaspora Project Site",
  "path": "diaspora-project-site",
  "path_with_namespace": "diaspora/diaspora-project-site",
  "issues_enabled": true,
  "open_issues_count": 1,
  "merge_requests_enabled": true,
  "jobs_enabled": true,
  "wiki_enabled": true,
  "snippets_enabled": false,
  "container_registry_enabled": false,
  "created_at": "2013-09-30T13:46:02Z",
  "last_activity_at": "2013-09-30T13:46:02Z",
  "creator_id": 3,
  "namespace": {
    "id": 3,
    "name": "Diaspora",
    "path": "diaspora",
    "kind": "group",
    "full_path": "diaspora"
  },
  "import_status": "none",
  "import_error": null,
  "permissions": {
    "project_access": {
      "access_level": 10,
      "notification_level": 3
    },
    "group_access": {
      "access_level": 50,
      "notification_level": 3
    }
  },
  "archived": true,
  "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png",
  "shared_runners_enabled": true,
  "forks_count": 0,
  "star_count": 0,
  "runners_token": "b8bc4a7a29eb76ea83cf79e4908c2b",
  "public_jobs": true,
  "shared_with_groups": [],
  "only_allow_merge_if_pipeline_succeeds": false,
  "only_allow_merge_if_all_discussions_are_resolved": false,
  "request_access_enabled": false
}

Разархивирование проектаРазархивирует проект, если пользователь является администратором или владельцем проекта. Эта операция является идемпотентной, то есть разархивирование неархивированного проекта не изменит проект.

POST /projects/:id/unarchive
Атрибут Тип Обязательный Описание
id integer/string да ID или URL-кодированное имя пространства имен проекта
curl --request POST --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.example.com/api/v4/projects/5/unarchive"

Пример ответа:```json { "id": 3, "description": null, "default_branch": "master", "visibility": "private", "ssh_url_to_repo": "git@example.com:diaspora/diaspora-project-site.git", "http_url_to_repo": "http://example.com/diaspora/diaspora-project-site.git", "web_url": "http://example.com/diaspora/diaspora-project-site", "tag_list": [ "example", "diaspora project" ], "owner": { "id": 3, "name": "Diaspora", "created_at": "2013-09-30T13:46:02Z" }, "name": "Diaspora Project Site", "name_with_namespace": "Diaspora / Diaspora Project Site", "path": "diaspora-project-site", "path_with_namespace": "diaspora/diaspora-project-site", "issues_enabled": true, "open_issues_count": 1, "merge_requests_enabled": true, "jobs_enabled": true, "wiki_enabled": true, "snippets_enabled": false, "container_registry_enabled": false, "created_at": "2013-09-30T13:46:02Z", "last_activity_at": "2013-09-30T13:46:02Z", "creator_id": 3, "namespace": { "id": 3, "name": "Diaspora", "path": "diaspora", "kind": "group", "full_path": "diaspora" }, "import_status": "none", "import_error": null, "permissions": { "project_access": { "access_level": 10, "notification_level": 3 }, "group_access": { "access_level": 50, "notification_level": 3 } }, "archived": false, "avatar_url": "http://example.com/uploads/project/avatar/3/uploads/avatar.png", "shared_runners_enabled": true, "forks_count": 0, "star_count": 0, "runners_token": "b8bc4a7a29eb76ea83cf79e4908c2b", "public_jobs": true, "shared_with_groups": [], "only_allow_merge_if_pipeline_succeeds": false, "only_allow_merge_if_all_discussions_are_resolved": false, "request_access_enabled": false }


Удаляет проект, включая все связанные ресурсы (issues, merge requests и т.д.)

DELETE /projects/:id


Параметры:

| Атрибут | Тип | Обязательный | Описание |
| -------- | ---- | ------------ | --------- |
| `id` | integer/string | да | ID или [URL-кодированный путь проекта](README.md#namespaced-path-encoding) |

## Загрузки

### Загрузка файла

Загружает файл в указанный проект для использования в описании задачи или объединения запроса, или в комментариях.

POST /projects/:id/uploads


Параметры:

| Атрибут | Тип | Обязательный | Описание |
| -------- | ---- | ------------ | --------- |
| `id` | integer/string | да | ID или [URL-кодированный путь проекта](README.md#namespaced-path-encoding) |
| `file` | string | да | Файл для загрузки |

Для загрузки файла из файловой системы используйте аргумент `--form`. Это заставляет cURL отправлять данные с помощью заголовка `Content-Type: multipart/form-data`. Параметр `file=` должен указывать на файл в файловой системе и предшествовать `@`. Например:

```bash
curl --request POST --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" --form "file=@dk.png" https://gitlab.example.com/api/v3/projects/5/uploads

Возвращаемый объект:

{
  "alt": "dk",
  "url": "/uploads/66dbcd21ec5d24ed6ea225176098d52b/dk.png",
  "markdown": "![dk](/uploads/66dbcd21ec5d24ed6ea225176098d52b/dk.png)"
}

Примечание: Возвращенное значение url является относительным к пути проекта. В контексте Markdown ссылка автоматически расширяется при использовании формата в markdown.

Участники проекта

Пожалуйста, обратитесь к документации Участники проекта.### Поделиться проектом с группой

Позволяет поделиться проектом с группой.

POST /projects/:id/share

Параметры:

Атрибут Тип Обязательный Описание
id integer/string да ID или URL-кодированный путь проекта
group_id integer да ID группы для поделиться с
group_access integer да Уровень разрешений для предоставления группе
expires_at string нет Дата истечения срока действия в формате ISO 8601: 2016-09-26

Удаление ссылки на поделенный проект в группе

Отменяет поделение проекта с группой. Возвращает 204 и пустое содержимое при успехе.

DELETE /projects/:id/share/:group_id

Параметры:

Атрибут Тип Обязательный Описание
id integer/string да ID или URL-кодированный путь проекта
group_id integer да ID группы

Хуки

Также известны как проектные хуки и веб-хуки. Эти хуки отличаются от системных хуков, которые действуют на уровне всей системы.

Получить список проектных хуков

Получить список проектных хуков.

GET /projects/:id/hooks

Параметры:

Атрибут Тип Обязательный Описание
id integer/string да ID или URL-кодированный путь проекта

Получить проектный хук

Получить проектный хук.

GET /projects/:id/hooks/:hook_id

Параметры:

Атрибут Тип Обязательный Описание
id integer/string да ID или URL-кодированный путь проекта
hook_id integer да ID хука
GET /projects/:id/hooks/:hook_id

Параметры:

Атрибут Тип Обязательный Описание
id integer/string да ID или URL-кодированный путь проекта
hook_id integer да ID проектного хука
{
  "id": 1,
  "url": "http://example.com/hook",
  "project_id": 3,
  "push_events": true,
  "issues_events": true,
  "merge_requests_events": true,
  "tag_push_events": true,
  "note_events": true,
  "job_events": true,
  "pipeline_events": true,
  "wiki_page_events": true,
  "enable_ssl_verification": true,
  "created_at": "2012-10-12T17:04:47Z"
}

Добавить проектный хук

Добавить хук к указанному проекту.

POST /projects/:id/hooks

Параметры:

Атрибут Тип Обязательный Описание
id integer/string да ID или URL-кодированный путь проекта
url string да URL хука
push_events boolean нет Вызывать хук при событиях push
issues_events boolean нет Вызывать хук при событиях issues
merge_requests_events boolean нет Вызывать хук при событиях merge requests
tag_push_events boolean нет Вызывать хук при событиях push тегов
note_events boolean нет Вызывать хук при событиях заметок
job_events boolean нет Вызывать хук при событиях задач
pipeline_events boolean нет Вызывать хук при событиях pipeline
wiki_events boolean нет Вызывать хук при событиях wiki
enable_ssl_verification boolean нет Выполнять проверку SSL при вызове хука
token string нет Секретный токен для проверки полученных данных; этот токен не будет возвращен в ответе

Редактирование хука проектаРедактирует хук для указанного проекта.

PUT /projects/:id/hooks/:hook_id

Параметры:

Атрибут Тип Обязательный Описание
id integer/string да ID или URL-кодированное имя проекта
hook_id integer да ID хука проекта
url string да URL хука
push_events boolean нет Вызывать хук при событии push
issues_events boolean нет Вызывать хук при событии issues
merge_requests_events boolean нет Вызывать хук при событии merge requests
tag_push_events boolean нет Вызывать хук при событии tag push
note_events boolean нет Вызывать хук при событии note
job_events boolean нет Вызывать хук при событии job
pipeline_events boolean нет Вызывать хук при событии pipeline
wiki_events boolean нет Вызывать хук при событии wiki
enable_ssl_verification boolean нет Включать SSL-верификацию при вызове хука
token string нет Секретный токен для проверки полученных данных; этот токен не будет возвращен в ответе

Удаление хука проекта

Удаляет хук из проекта. Это идемпотентный метод и может быть вызван несколько раз. Хук либо существует, либо нет.

DELETE /projects/:id/hooks/:hook_id

Параметры:

Атрибут Тип Обязательный Описание
id integer/string да ID или URL-кодированное имя проекта
hook_id integer да ID хука проекта

Для получения дополнительной информации обратитесь к документации по веткам.

Список веток

Возвращает список всех веток проекта.

GET /projects/:id/repository/branches

Параметры:

Атрибут Тип Обязательный Описание
id integer/string да ID или URL-кодированное имя проекта

Пример ответа:

[
  {
    "name": "async",
    "commit": {
      "id": "a2b702edecdf41f07b42653eb1abe30ce98b9fca",
      "parent_ids": [
        "3f94fc7c85061973edc9906ae170cc269b07ca55"
      ],
      "message": "дать Caolan кредит за его работу (в начале)",
      "author_name": "Jeremy Ashkenas",
      "author_email": "jashkenas@example.com",
      "authored_date": "2010-12-08T21:28:50+00:00",
      "committer_name": "Jeremy Ashkenas",
      "committer_email": "jashkenas@example.com",
      "committed_date": "2010-12-08T21:28:50+00:00"
    },
    "protected": false,
    "developers_can_push": false,
    "developers_can_merge": false
  },
  {
    "name": "gh-pages",
    "commit": {
      "id": "101c10a60019fe870d21868835f65c25d64968fc",
      "parent_ids": [
          "9c15d2e26945a665131af5d7b6d30a06ba338aaa"
      ],
      "message": "Underscore.js 1.5.2",
      "author_name": "Jeremy Ashkenas",
      "author_email": "jashkenas@example.com",
      "authored_date": "2013-09-07T12:58:21+00:00",
      "committer_name": "Jeremy Ashkenas",
      "committer_email": "jashkenas@example.com",
      "committed_date": "2013-09-07T12:58:21+00:00"
    },
    "protected": false,
    "developers_can_push": false,
    "developers_can_merge": false
  }
]

Одиночная ветка

Определенная ветка проекта.

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

Параметры:| Атрибут | Тип | Обязательный | Описание | | -------- | ---- | ------------ | --------- | | id | integer/string | да | ID или URL-кодированное имя проекта | | branch | string | да | Название ветки | | developers_can_push | boolean | нет | Флаг, указывающий, могут ли разработчики отправлять изменения в ветку | | developers_can_merge | boolean | нет | Флаг, указывающий, могут ли разработчики объединять изменения в ветку |### Защита отдельной ветки

Защита определенной ветки проекта.

PUT /projects/:id/repository/branches/:branch/protect

Параметры:

Атрибут Тип Обязательный Описание
id integer/string да ID или URL-кодированное имя проекта
branch string да Название ветки

Отмена защиты отдельной ветки

Отмена защиты определенной ветки проекта.

PUT /projects/:id/repository/branches/:branch/unprotect

Параметры:

Атрибут Тип Обязательный Описание
id integer/string да ID или URL-кодированное имя проекта
branch string да Название ветки

Административная связь форка

Позволяет изменять связь форка между существующими проектами. Доступна только для администраторов.

Создание связи форка между существующими проектами

POST /projects/:id/fork/:forked_from_id

Параметры:

Атрибут Тип Обязательный Описание
id integer/string да ID или URL-кодированное имя проекта
forked_from_id integer да ID проекта, с которого был сделан форк

Удаление существующей связи форка

DELETE /projects/:id/fork

Параметры:

Атрибут Тип Обязательный Описание
id integer/string да ID или URL-кодированное имя проекта

Поиск проектов по имениПоиск проектов по имени, доступных для аутентифицированного пользователя. Этот конечный пункт доступен без аутентификации, если проект является публично доступным.

GET /projects/search/:query

Параметры:

Атрибут Тип Обязательный Описание
query string да Строка, содержащаяся в имени проекта
order_by string нет Возвращает запросы, отсортированные по полям id, name, created_at или last_activity_at
sort string нет Возвращает запросы, отсортированные в порядке asc или desc

Запуск задачи уборки для проекта

Примечание: Эта функция была введена в GitLab 9.0

POST /projects/:id/housekeeping

Параметры:

Атрибут Тип Обязательный Описание
id integer/string да ID проекта или NAMESPACE/PROJECT_NAME

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/panda26-gitlab.git
git@api.gitlife.ru:oschina-mirror/panda26-gitlab.git
oschina-mirror
panda26-gitlab
panda26-gitlab
master