2013-06-06 14 views
18

Ich versuche, eine Liste aller Repositories einer Organisation, einschließlich privater zu erhalten. (Oder um genauer zu sein, alle privaten Repositories ein bestimmter Benutzer Zugriff hat.)Wie listet man die privaten Repositories einer Organisation über die GitHub API auf?

Reqesting Informationen für die Organisation (https://api.github.com/orgs/acme?access_token=[...]) zeigt, dass es in der Tat viele private Repositories sind:

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

(das Zugriffstoken ich verwende war vorher generated using the API für Benutzername/passwd.)

Aber was auch immer ich versuche, die repos zur Liste ...

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

... GitHub API gibt nur die 5 öffentlichen Repositories zurück. (Documentation saystype=all ist Standard. Auch versucht, den Parameter type=private; kein Unterschied.)

Irgendeine Idee, was ich falsch mache?

Der Benutzer, für den das Zugriffstoken tatsächlich generiert wurde, hat Push & Zugriff auf nur einige der privaten Repositorys der Organisation, aber keines davon erscheint in der Liste, die ich erhalte (nur die 5 öffentlichen Repositorys).

+2

Alles, was Sie tun, sieht gut aus für mich. Vielleicht ist es eine gute Idee, den GitHub Support zu kontaktieren: [email protected] Eine Sache jedoch - welche Bereiche haben Sie beim Erstellen des OAuth-Tokens definiert? –

+0

@IvanZuzak: Ah, ich hatte nicht bemerkt, dass Sie Bereiche beim Erstellen des Tokens angeben ... Ich hatte ein [Python Beispielskript] verwendet (http://agrimmsreality.blogspot.co.uk/2012/05/sampling-github -api-v3-in-python.html), wobei der 'public_repo'-Bereich verwendet wurde. Also, indem ich ein neues Token mit 'Repo'-Scope erstellt habe, habe ich es funktioniert. Vielen Dank! Kannst du das als Antwort hinzufügen, damit ich es akzeptieren kann? – Jonik

+0

Cool, ich bin froh, dass das Problem für Sie gelöst wurde. Habe unten eine kurze Antwort geschrieben. Prost! –

Antwort

10

Alles, was Sie tun, ist in Ordnung. Stellen Sie jedoch beim Erstellen von OAuth-Token für die Authentifizierung sicher, dass Sie das richtige scopes definieren. Jeder Bereich definiert einen bestimmten Satz zulässiger Aktionen (Informationen, die Sie lesen/schreiben können). Sie sollten daher überprüfen, ob Sie das Token mit dem Bereich repo erstellen.