with - GitHub OAuth2 Token: Cómo restringir el acceso para leer un solo repositorio privado
remote: you must use a personal access token with ''api'' scope for git over http. (1)
No creo que puedas restringir tokens OAuth de github de esa manera. Los documentos github para OAuth dicen que
Mientras que Git sobre HTTP con OAuth reduce la fricción para algunos tipos de aplicaciones, tenga en cuenta que a diferencia de las claves de implementación, los tokens de OAuth funcionan para cualquier repositorio para el cual el usuario tiene acceso.
Entonces, si bien puede limitar el alcance del token en términos de los tipos de actividades, no puede limitarlo a un subconjunto de repositorios.
Las claves de implementación se pueden restringir a un solo repositorio, pero permiten el acceso de escritura.
La táctica obvia (como lo menciona Thomas) es crear una cuenta ficticia que represente la aplicación. Dados los objetivos de OAuth, este podría ser un mejor flujo de trabajo en cualquier caso, le permitirá cambiar fácilmente los permisos que tiene la aplicación como si fuera un usuario.
Github incluso menciona / respalda esta estrategia explícitamente, llamándolos usuarios de máquinas .
Caso de uso:
La aplicación de línea de comandos (que se implementa en una máquina de terceros) debe poder descargar una copia de tarball de un repositorio privado que pertenece a una organización a través de la API de GitHub (v3)
La aplicación solo debe poder acceder a este repositorio privado y no a otros repositorios con permiso de solo lectura.
He podido lograr (1) creando una autorización para la aplicación después de registrar un ID de cliente / secreto en mi cuenta de github. Sin embargo, no parece que los tokens devueltos por la autorización permitan el acceso de solo lectura al repositorio, ni están restringidos a un repositorio (por ejemplo, uno podría usar el token para modificar este repositorio junto con otros que pertenecen a la organización).
¿Es posible restringir el acceso a través del alcance adecuado? No veo nada relevante en los documentos de la API ( https://developer.github.com/v3/oauth/#scopes ).