Я использую 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