GitHub OAuth2-Token: so beschränken Sie den Zugriff zum Lesen einer einzelnen privaten repo
Use-case:
-
Command-line-Anwendung (die bereitgestellt wird, um eine 3rd-party-Maschine) muss in der Lage sein laden Sie einen tarball kopieren von einem privaten Repository, das gehört zu einer Organisation, die über die GitHub-API (v3)
-
Anwendung sollte nur Zugriff auf diese eine private repo und keine anderen repos mit nur-lese-Berechtigung.
Ich in der Lage gewesen, zu erreichen (1) durch die Schaffung einer Ermächtigung für die Anwendung nach der Registrierung eine client_id/geheim auf meinem github-account. Jedoch, es scheint nicht, dass die Token zurückgegeben von der Genehmigung ermöglichen, nur-lese-Zugriff auf das repo noch sind Sie nur eine repo (z.B. könnte man möglicherweise verwenden Sie das token, dies zu ändern repo-zusammen mit anderen gehören zu der Organisation).
Ist es möglich, den Zugang über den richtigen Umfang? Ich sehe nicht, alles relevante in den API-docs (https://developer.github.com/v3/oauth/#scopes).
- Ich hätte Interesse an so etwas, wie gut, abzüglich der nur-lese-Einschränkung. Die einzige Sache, die relevant erschienen, war das bereitstellen von Tasten, die Sie erstellen können, für ein endlager, aber ich bin mir nicht sicher, ob Sie können diese über die API. Es scheint die einzige Lösung hier wäre, fügen Sie einige dummy-Benutzer, die Sie verwenden, um die Anmeldung an der API als Mitarbeiterin für das repository.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich glaube nicht, dass Sie einschränken können github OAuth-Token so. Die github docs für OAuth sagen, dass
So, während Sie kann den Umfang des token in Bezug auf die Arten von Aktivitäten, können Sie nicht beschränken Sie es auf eine Teilmenge von repos.
Bereitstellen von Schlüsseln können beschränkt werden auf ein einzelnes repo, aber Schreibzugriff erlauben können.
Die offensichtliche Taktik (wie erwähnt von Thomas) erstellen Sie ein dummy-Konto, das die Anwendung repräsentiert. Angesichts der Ziele von OAuth ist, könnte dies einen besseren workflow in jedem Fall -- lasse es Sie leicht ändern Sie die Berechtigungen, die die app hat, als wäre es in der Tat einen Benutzer.
Github auch erwähnt/unterstützt diese Strategie ausdrücklich, ruft Sie Maschine Benutzer.