Tengo un repositorio público de github (creé hace unos años). Tengo habilitada la autenticación de dos factores. Quiero crear un token API de github para poder enviar algunos cambios a mi repositorio.
¿Cuál es el conjunto mínimo de ámbitos que debo seleccionar en la página “Nuevo token de acceso personal” de github para poder enviar cambios a este repositorio?
Quiero evitar otorgar derechos innecesarios al token.
De acuerdo con la Documentación de GitHubel alcance de los repositorios públicos es public_repo
y para repositorios privados es repo
.
Un token con uno de esos ámbitos es el acceso más limitado posible para el acceso push o pull de Git; sin embargo, ese token puede acceder a todos los repositorios públicos (respectivamente, privados) y también puede usarse para cierto acceso a la API. Si eso le preocupa, puede usar una clave SSH para su cuenta personal o, para restringirla aún más, una clave de implementación de lectura y escritura para el repositorio en cuestión.
Aunque han pasado dos años desde que se hizo la pregunta, ahora hay una solución de GitHub.
GitHub introdujo recientemente una nueva característica llamada “tokens de acceso personal detallados”.
https://github.blog/2022-10-18-introducing-fine-grained-personal-access-tokens-for-github
Fichas de acceso personal (clásico) reciben permisos de un amplio conjunto de ámbitos de lectura y escritura. Tienen acceso a todos los repositorios y organizaciones a los que el usuario podría acceder, y se les permite vivir para siempre. Como ejemplo, el alcance del repositorio proporciona un amplio acceso a todos los datos en repositorios privados a los que el usuario tiene acceso, a perpetuidad.
Tokens de acceso personal detallados, por el contrario, reciben permisos de un conjunto de más de 50 permisos granulares que controlan el acceso a las API de organización, usuario y repositorio de GitHub. Cada permiso se puede otorgar en base a ‘sin acceso’, ‘lectura’ o ‘lectura y escritura’. Como ejemplo, ahora puede crear un PAT que solo puede leer problemas y no hacer nada más, ni siquiera leer el contenido de un repositorio.
petezurich
Ampliando la respuesta de Yogev, puede hacer lo siguiente para crear un Token de acceso personal detallado (también conocido como «PAT») con el privilegios mínimos necesarios para confirmar cambios en su repositorio:
- Crear un PAT de grano fino con estos pasos.
- Bajo
Repository Access
seleccionarOnly select repositories
y seleccione el repositorio con el que desea trabajar (extracciones autenticadas, confirmaciones, inserciones, etc.) - Bajo
Permissions
elegirRepository permissions
y configurar soloContents
aAccess level
->Read and write
.
Luego agregue el PAT con contexto secrets
a su flujo de trabajo/acción de GitHub, por ejemplo:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
token: ${{ secrets.NAME_OF_YOUR_PAT }}
Más documentación también aquí.
Nota: Los tokens de acceso personal detallados todavía están en versión beta (desde principios de 2023) y están sujetos a cambios. Discusión aquí.
-
gracias por esto. Estaba tratando de hacer el push/pull más básico que está absolutamente enterrado en los documentos de github
– Frank Willmore
15 de febrero a las 0:17