gitlab nodejs api - получить все репозитории для пользователя - PullRequest
0 голосов
/ 09 ноября 2019

Я не могу понять, как просто получить все репозитории для моего пользователя на gitlab.

Я пытаюсь использовать этот пакет npm: https://www.npmjs.com/package/gitlab

Итак, для gitlab:Репозитории = Проекты

Вот как я пытаюсь использовать пакет gitlab:

options = 
    owned: true
    simple: true
    # membership: true
    # maxPages: 1
    # per_page: 1
try 
    projects = await gitlab.Projects.all(options)
    printSuccess "checkAccess Success!"
    log "typeof projects: " + typeof projects
    log "projects.length: " + projects.length
    olog projects
catch err
    printError "checkAccess Error!"
    olog service
    olog err
return true

Запрос успешно выполнен. Просто проекты - это всегда пустой массив.

Единственный способ получения проектов - когда я не указываю состояние owned:true. Затем запрос занимает некоторое время и возвращает все открытые проекты, которые он находит.


Забавно, когда указывается membership:true, но не owned:true, он по-прежнему возвращает пустой массив ...

Также забавно то, что при попытке

users = await gitlab.Users.all()

всегда происходит сбой с 403 Forbidden.


. Я создал различные accessTokens, один из них, даже с доступом ко всем областям действия. Для всех одинаковое поведение происходит.

Я создал частный и публичный репозиторий для моего пользователя, чтобы проверить это. Поэтому он определенно должен найти их.


Я также предполагаю, что accessTokens не являются проблемой, так как я получаю «401 Unauthorized», когда я использую недопустимый, и пустой массив, когда я использую мой действительный. .

Также я предполагаю, что мой accessToken идентифицирует моего пользователя, поэтому gitlab должен знать, что задача состоит в том, чтобы получить все проекты в области действия моих пользователей, которые принадлежат моему пользователю.

Кто-нибудь знаеткак это устроено. Я действительно не понимаю, что происходит и почему это просто не будет работать. Кроме того, я не нашел ничего полезного в документации: https://docs.gitlab.com/ee/api/projects.html

1 Ответ

0 голосов
/ 09 ноября 2019

Наконец-то обнаружена проблема.

При создании объекта доступа к gitlab сначала он не выдаст ошибку, если accessToken равен null.

В этом случае мы не будемиметь пользователя и будет иметь публичный доступ к репозиториям.

...