Где найти идентификатор проекта для gitlab api?

Я использую gitlab на своих серверах. Я хотел бы загрузить мои последние встроенные артефакты (строить через gitlab-ci) через API, как это

curl --header "PRIVATE-TOKEN: 9koXpg98eAheJpvBs5tK" "https://gitlab.com/api/v3/projects/1/builds/8/artifacts"

Где найти этот идентификатор проекта? Или этот способ использования API не предназначен для размещения проектов gitlab?

BW Hubert

Ответы

Ответ 1

Вы можете запросить свои проекты:

curl -XGET --header "PRIVATE-TOKEN: XXXX" "https://gitlab.com/api/v3/projects/owned"

Вы получите JSON в каждом собственном проекте:

[
  {
    "id":48,
    "description":"",
    "default_branch":"master",
    "tag_list":[
...

Вы также можете получить идентификатор проекта из конфигурации триггеров в своем проекте, у которого уже есть пример кода с вашим идентификатором.

На странице "Триггеры":

curl -X POST \
     -F token=TOKEN \
     -F ref=REF_NAME \
     https://<GitLab Installation>/api/v3/projects/<ProjectID>/trigger/builds

Ответ 2

Я только узнал еще более простой способ получить идентификатор проекта: просто просмотрите содержимое HTML на странице gitlab, где размещен ваш проект. Имеется вход с полем project_id, например:

<input type="hidden" name="project_id" id="project_id" value="335" />

Ответ 3

На странице "Редактировать проект" в правом верхнем углу находится поле "Идентификатор проекта".

(Вы также можете увидеть идентификатор на странице конвейеров CI/CD, в коде exameple раздела Triggers.)

В более старых версиях вы можете увидеть его на странице "Триггеры" в URL-адресах кода примера.

Ответ 4

Введите проект.

В меню "Левая рука" нажмите "Настройки" → "Общие" → "Развернуть общие настройки"

Он имеет метку Project ID и находится рядом с именем проекта.

Это версия GitLab 10.2

Ответ 5

Последняя версия GitLab 11.4 на момент написания этой статьи теперь помещает идентификатор проекта в верхнюю часть главной страницы вашего хранилища.

Скриншот:

GitLab Project Front Page

Ответ 6

Как упомянуто здесь, все API области действия проекта ожидают либо ID, либо путь к проекту (в кодировке URL). Так что просто используйте https://gitlab.com/api/v4/projects/gitlab-org%2Fgitlab-ce напрямую, когда вы хотите взаимодействовать с проектом.

Ответ 7

Обеспечить решение, которое фактически решит проблему API получения идентификатора проекта для конкретного проекта GITLAB

curl -XGET -H "Content-Type: application/json" --header "PRIVATE-TOKEN: $GITLAB_TOKEN" http://<YOUR-GITLAB-SERVER>/api/v3/projects/<YOUR-NAMESPACE>%2F<YOUR-PROJECT-NAME> | python -mjson.tool

Или, может быть, вы просто хотите идентификатор проекта:

curl -XGET -H "Content-Type: application/json" --header "PRIVATE-TOKEN: $GITLAB_TOKEN" http://<YOUR-GITLAB-SERVER>/api/v3/projects/<YOUR-NAMESPACE>%2F<YOUR-PROJECT-NAME> | python -c 'import sys, json; print(json.load(sys.stdin)["id"])'

Обратите внимание, что URL репо (пространство имен/имя репо) закодировано.

Ответ 8

Только для записи, если у кого-то есть необходимость скачать артефакты из gitlab.com, созданные через gitlab-ci

  • Создайте закрытый токен в своем браузере
  • Получить идентификатор проекта через curl -XGET --header "PRIVATE-TOKEN: YOUR_AD_HERE?" "https://gitlab.com/api/v3/projects/owned"
  • Загрузите последний артефакт из основной ветки, созданной с помощью шага gitlab-ci, который называется release curl -XGET --header "PRIVATE-TOKEN: YOUR_AD_HERE?" -o myapp.jar "https://gitlab.com/api/v3/projects/4711/builds/artifacts/master/download?job=release"

Я очень впечатлен красотой gitlab.

Ответ 10

Начиная с Gitlab API v4, следующий API возвращает все ваши проекты:

curl --header 'PRIVATE-TOKEN: <your_token>' 'https://gitlab.com/api/v4/projects?owned=true'

Ответ содержит id проекта. Из этого page- можно создать токены доступа к Gitlab https://gitlab.com/profile/personal_access_tokens

Ответ 11

Если вам известно имя вашего проекта, вы можете получить идентификатор проекта с помощью следующего API:

curl --header "Private-Token: <your_token>" -X GET https://gitlab.com/api/v4/projects?search=<exact_project_name>

Это вернет JSON, который включает в себя идентификатор:

[
  {
     "id":<project id>, ...
  }
]

Ответ 12

Найдите вкладку Projects в заголовке интерфейса Gitlab Main. Нажмите project--> Щелкните по нужному проекту → Now. На интерфейсе вашего проекта → щелкните правой кнопкой мыши по интерфейсу пользователя (User Interface) → щелкните по проверке/Просмотр источника страницы → найти тег project_id в источнике страницы. Что-то вроде этого

И если вы хотите, чтобы вопросы публиковались в GitLab, используйте URL " https://gitlab.com/api/v4/projects/project_id/issues "

Ответ 13

Если имя вашего проекта уникально, удобно следовать за ответом shunya, выполнить поиск по имени, см. API doc.

Если у вас более сильный токен доступа, а Gitlab содержит несколько проектов с одинаковыми именами в разных группах, тогда поиск в группе удобнее. API док здесь. например

curl --header "PRIVATE-TOKEN: <token>" -X GET https://gitlab.com/api/v4/groups/<group_id>/search?scope=projects&search=<project_name>

Идентификатор группы можно найти на странице настроек в домене группы.

И чтобы получить идентификатор проекта из вывода, вы можете сделать:

curl --header "PRIVATE-TOKEN: <token>" -X GET https://gitlab.com/api/v4/groups/<group_id>/search?scope=projects&search=<project_name> | jq '[0].id'

Ответ 14

Чтобы получить идентификатор из всех проектов, используйте:

curl --header 'PRIVATE-TOKEN: XXXXXXXXXXXXXXXXXXXXXXX' 'https://gitlab.com/api/v4/projects?owned=true' > curloutput
grep -oPz 'name\":\".*?\"|{\"id\":[0-9]+' curloutput | sed 's/{\"/\n/g' | sed 's/name//g' |sed 's/id\"://g' |sed 's/\"//g'  | sort -u -n