web-dev-qa-db-fra.com

Comment lister les référentiels privés de l'organisation via l'API GitHub?

J'essaie d'obtenir une liste de tous les référentiels d'une organisation, y compris les référentiels privés. (Ou pour être plus spécifique, tous les référentiels privés auxquels un utilisateur donné a accès.)

Le fait de demander des informations à l’organisation (https://api.github.com/orgs/acme?access_token=[...]) montre qu’il existe effectivement de nombreux référentiels privés:

...
"public_repos": 5,
"total_private_repos": 68, 
"owned_private_repos": 68, 
...

(Le jeton d'accès que j'utilise avait été précédemment généré à l'aide de l'API pour nom d'utilisateur/mot de passe.)

Mais quoi que j'essaye d'énumérer les pensions ...

https://api.github.com/orgs/acme/repos&access_token=[...]   

... l'API GitHub ne fait que renvoyer les 5 référentiels publics. ( Documentation indique quetype=all est la valeur par défaut. Nous avons également essayé d'ajouter le paramètre type=private; aucune différence.)

Une idée de ce que je fais mal?

L'utilisateur auquel le jeton d'accès a été généré dispose en fait d'un accès Push & Pull à seulement certains des référentiels privés de l'organisation, mais aucun de ceux-ci n'apparaît dans la liste que je reçois (uniquement les 5 référentiels publics).

26
Jonik

Tout ce que tu fais est OK. Cependant, lors de la création de jetons OAuth pour l'authentification, assurez-vous de définir les bons scopes . Chaque étendue définit un ensemble spécifique d’actions autorisées (informations que vous pouvez lire/écrire), vous devez donc vérifier que vous créez le jeton avec l’étendue repo.

16
Ivan Zuzak

Il convient également de noter que si vous accédez à des référentiels privés à partir d'une organisation, l'application OAuth doit être autorisée par les propriétaires en fonction des paramètres.

https://help.github.com/articles/authorizing-oauth-apps/

Pour les organisations soumises à des restrictions d'accès à l'application OAuth, vous pouvez demander aux administrateurs de l'organisation d'approuver l'application pour une utilisation dans cette organisation. Si l'organisation n'approuve pas l'application, celle-ci ne pourra accéder qu'aux ressources publiques de l'organisation. Si vous êtes un administrateur d’organisation, vous pouvez approuver vous-même l’application.

Pour les organisations sans restrictions d'accès à l'application OAuth, l'application sera automatiquement autorisée à accéder aux ressources de cette organisation. Pour cette raison, vous devez faire attention aux applications OAuth que vous approuvez pour l'accès aux ressources de votre compte personnel ainsi qu'à celles de l'organisation.

0
Ligemer