Korzystając z GitLab, projektów brakuje na liście API

18

Korzystam z interfejsu GitLab API, aby pobrać listę projektów, do których mam dostęp (URL /api/v3/projects/all?private_token=xxx), ale istnieje 6-7 projektów, które z jakiegoś powodu nie zostały uwzględnione na liście.

EDYCJA: Mój użytkownik jest administratorem i chcę wymienić wszystkie projekty, jak /projects/allwskazuje adres URL.

Mam dostęp do projektów w porządku za pomocą samego git i interfejsu sieciowego GitLab. Wszelkie sugestie, dlaczego projekty nie będą wyświetlane na liście z interfejsu API?

Wszystkie brakujące projekty są nowsze niż inne. Próbowałem odświeżyć mój token API; brak zmiany.

Wersje:

GitLab        6.4.3
GitLab Shell  1.8.0
GitLab API    v3
Ruby          2.0.0p353
Rails         4.0.2
Nils
źródło

Odpowiedzi:

27

Właśnie to przetestowałem i wygląda na to, że odpowiedź API GitLab korzysta z paginacji. Zgodnie z dokumentacją ( http://api.gitlab.org ) domyślna liczba wyników na stronie wynosi 20, a strona początkowa to 1.

Aby dostosować maksymalną liczbę wyników na stronę, musisz użyć per_pagezmiennej w wierszu żądania HTTP. Możesz zmienić numer strony, używając pagerównież, jeśli masz więcej repozytoriów niż maksymalna wartość per_page. Możesz podać maksymalną per_pagewartość 100.

Na przykład żądanie może wyglądać następująco:

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

pageI per_pagezmienne nie są wymagane, ponieważ mają one wartości domyślne, dzięki czemu nie muszą zawierać albo jeśli nie chce.

Mam nadzieję, że to rozwiąże twój problem.

jaseeey
źródło
To prawda! Czuję się teraz leniwy i głupi;) Wielkie dzięki!
Nils,
Żadnych problemów, nauczyłem się też dla siebie :)
jaseeey
1
Czy jest jakiś sposób na zwrot więcej niż 100? Mój wynik aktywności użytkownika jest znacznie większy niż 100, ale API zwraca tylko maksimum 100.
emmdee
Z dokumentacji API wynika, że ​​maksymalna per_pagedozwolona wartość to 100. Patrz: docs.gitlab.com/ce/api/README.html#pagination
jaseeey
-1

Jeśli nie masz pewności co do liczby stron, użyj go jak poniżej: https://git.example.com/api/v3/projects/all?per_page=-1&private_token=some_token_key

Vrunda Kansara
źródło
nie wyświetla wszystkich projektów ... daje jedynie domyślnie 20 rekordów
Saurabh
To samo dla mnie. Pokazuje tylko domyślne 20 pozycji na pierwszej stronie
Marslo,
nic nie robi, zwraca jedynie domyślną wartość 20
Iwan