Назад | Перейти на главную страницу

При использовании GitLab проекты отсутствуют в списке API

Я использую GitLab API для получения списка проектов, к которым у меня есть доступ (URL /api/v3/projects/all?private_token=xxx), но есть 6-7 проектов, которые почему-то не попали в список.

РЕДАКТИРОВАТЬ: Мой пользователь является администратором, и я хочу перечислить все проекты, подобные /projects/all URL указывает.

У меня есть доступ к проектам, используя сам git и веб-интерфейс GitLab. Есть предложения, почему проекты не отображаются в списке из API?

Все отсутствующие проекты новее остальных. Я попытался обновить свой токен API; без изменений.

Версии:

GitLab        6.4.3
GitLab Shell  1.8.0
GitLab API    v3
Ruby          2.0.0p353
Rails         4.0.2

Я только что протестировал это, и похоже, что ответ GitLab API использует разбиение на страницы. Согласно документации (http://api.gitlab.org), по умолчанию количество результатов на странице равно 20, а начальная страница - 1.

Чтобы настроить максимальное количество результатов на странице, вам необходимо использовать per_page переменная в строке HTTP-запроса. Вы можете изменить номер страницы, используя page также, если у вас больше репозиториев, чем максимальное значение per_page. Вы можете указать максимум per_page значение 100.

Например, ваш запрос может выглядеть так:

https://git.example.com/api/v3/projects/all?page=1&per_page=100&private_token=abc123

В page и per_page переменные не требуются, поскольку они имеют значения по умолчанию, поэтому вам не нужно включать их, если вы не хотите.

Надеюсь, это решит вашу проблему.

да, он работает с разбивкой на страницы, вам нужно изменить значение параметра "page" и вызвать несколько раз, как показано ниже.

https://gitlab.example.com/api/v3/projects/all?page=1&per_page=100&private_token=some_token

https://gitlab.example.com/api/v3/projects/all?page=2&per_page=100&private_token=some_token

Если вы не уверены в количестве страниц, используйте его, как показано ниже: https://git.example.com/api/v3/projects/all?per_page=-1&private_token=some_token_key