Получить "id" проекта gitlab через gitlab api или gitlab-cli - PullRequest
0 голосов
/ 16 февраля 2019

Есть ли способ получить id проекта через GitLab API.

Я создал проект, используя GitLab API, предоставив имя проекта -

curl -kX POST --header "PRIVATE-TOKEN: <access_token>" https://gitlab.example.com/api/v4/projects/my_app&visibility=internal

Возвращает ожидаемый результат с информацией о проекте, такой как links, id, user, namespace и т. Д. Теперь я хочу создать issue или branch.Мне нужен проект id сейчас.Итак, как я могу получить id моего проекта my_app.(Не из пользовательского интерфейса).

Я не нашел ни одного запроса API, который мог бы создать issue или branch без использования проекта id.

Мне всегда нужно id Проблемы API

POST /projects/:id/issues

Также я не нашел ни одного запроса API, который мог бы получитьid с использованием проекта name

Единственное, что я могу использовать с помощью API поиска и использовать project name curl -kX GET --header "PRIVATE-TOKEN: <access_token>" https://gitlab.example.com/api/v4/search?scope=projects&search=my_app

Но он предоставляет много информации.Мне нужно только получить project id.Не знаю, как получить проект id?

Существует python-gitlab lib, с помощью которого я могу сделать, подобные вещи, такие как curl.

  • Получить проекты (дает последние 20 проектов name и id в формате yaml)
    • gitlab project list
  • Создать проект
    • gitlab -o yaml project create --name "my_app_cli" --visibility "internal"
    • Создать выпуск проекта
    • gitlab -o yaml project create-issue --id ID Здесь также мне нужно указать id.

Но и в этой библиотеке нет возможности получить проект id.Как и API, для создания любой ветки, выпуска и т. Д. Мне нужно использовать id созданного проекта.Я не хочу ставить вручную id в api или при использовании cli

Есть ли обходной путь для получения идентификатора через api или cli с использованием проекта name?

Или есть ли обходной путь для создания issue, branch и т. Д. Без использования id через api или cli?

Ответы [ 4 ]

0 голосов
/ 16 июля 2019

В Python у нас есть модули, которые используют API Gitlab для получения деталей.Вы можете получить идентификатор проекта, используя приведенный ниже код Python. Здесь мы используем модуль gitlab для совершения вызова.

import os
import gitlab

gl = gitlab.Gitlab('http://gitlab_hostname.com', 'your_private_token')
all_projects = gl.projects.list(all=True)
print("All projects id are:",all_projects)
0 голосов
/ 22 февраля 2019

Вы можете использовать Get single project endpoint.Но в целом вы не ограничены использованием числового идентификатора, вы можете использовать имя проекта в вызовах API:

id: идентификатор или URL-кодированный путь проекта

В вашем конкретном случае это должно работать как пример получения идентификатора и демонстрации того, что вам необязательно нужен идентификатор:)

GET /api/v4/projects/my_namespace%2Fmy_app
0 голосов
/ 22 февраля 2019

Используйте API поиска с областью действия проектов, это описано здесь: https://docs.gitlab.com/ee/api/search.html#scope-projects

0 голосов
/ 22 февраля 2019

Почему вы не читаете идентификатор из результатов вызова проекта create?Вы можете сделать это легко, например, с помощью https://stedolan.github.io/jq/

...