Где найти идентификатор проекта для 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.
Ответ 9
Вы можете запросить проекты с атрибутом поиска, например:
http://gitlab.com/api/v3/projects?private_token=xxx&search=myprojectname
Ответ 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