Saltar al contenido
> 💻 🧠 Código 1001 > 🛠️ DevOps > 🧭 GitHub Personal Access Token (PAT)

🧭 GitHub Personal Access Token (PAT)

Introducción

El GitHub Personal Access Token (PAT), o token de acceso personal, es una forma moderna de autenticación segura en la plataforma GitHub.

Desde agosto de 2021, GitHub dejó de soportar el uso de contraseñas para operaciones con Git a través de HTTPS. Esto significa que para cualquier acción que antes requería contraseña, ahora se necesita un token. PAT permite:

  • conectarse de forma segura a los repositorios;
  • trabajar con la API de GitHub;
  • automatizar procesos en scripts, CI/CD y otras herramientas sin riesgo de comprometer la cuenta.

En resumen: PAT es una “clave” que da acceso limitado, se puede revocar fácilmente y puede tener fecha de expiración.


¿Por qué usar PAT?

El objetivo principal de PAT es asegurar el trabajo con GitHub sin perder comodidad.

Funciones clave:

  1. Seguridad
    La contraseña da acceso completo a la cuenta. Si se compromete, todo está en riesgo. Un token puede limitarse por permisos y duración.
  2. Automatización
    Scripts, CI/CD, bots y otras herramientas pueden usar PAT en lugar de ingresar manualmente usuario y contraseña.
  3. Control de acceso
    Se pueden crear múltiples tokens con distintos permisos para diferentes tareas. Si un token se filtra, se puede revocar sin afectar a los demás.

Tipos de tokens

GitHub ofrece dos tipos de tokens:

  1. Classic (clásico)
    • El acceso se define mediante scopes (por ejemplo, repo, workflow).
    • Da permisos a todos los repositorios del usuario.
    • Simple de usar, pero menos flexible.
  2. Fine-grained (detallado)
    • Permite limitar el acceso a repositorios específicos.
    • Se pueden asignar permisos precisos, por ejemplo, “solo lectura de issues”.
    • Las organizaciones pueden requerir aprobación de estos tokens.

💡 Consejo: usa tokens fine-grained cuando la seguridad y la limitación de acceso son importantes; classic para compatibilidad con herramientas antiguas.


Cómo crear un PAT

Paso 1. Ir a configuración

  1. Abre GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic).

Paso 2. Generar un nuevo token

  1. Haz clic en Generate new token (classic).
  2. Asigna un nombre (Note), por ejemplo CI-token o Git-PC.
  3. Establece la fecha de expiración (Expiration) — se recomiendan 90 días o 1 año.
  4. Selecciona los permisos necesarios (Scopes) — mínimo para Git: repo, para Actions: workflow.
  5. Genera el token y guárdalo inmediatamente — solo se mostrará una vez.

Uso del PAT

1. Git vía HTTPS

git clone https://github.com/username/repo.git
# Username: tu usuario
# Password: token generado

Para no ingresar el token cada vez, se puede cachear:

git config --global credential.helper manager   # Windows/Mac
git config --global credential.helper 'cache --timeout=3600'  # Linux

2. Trabajo con la API de GitHub

$token = Get-Secret -Name GitHubToken  # obtener token de forma segura
$headers = @{ Authorization = "token $token" }

$repos = Invoke-RestMethod -Uri "https://api.github.com/user/repos" -Headers $headers
$repos | ForEach-Object { $_.name }

Crear un issue:

$body = @{
    title = "Nueva tarea de prueba"
    body  = "Descripción de la tarea"
} | ConvertTo-Json

Invoke-RestMethod -Uri "https://api.github.com/repos/username/repo/issues" `
                  -Method Post `
                  -Headers $headers `
                  -Body $body

3. CI/CD y scripts

$token = Get-Secret -Name GitHubToken
git config --global user.name "CI Bot"
git config --global user.email "ci@example.com"

git add .
git commit -m "Actualización automática"
git push "https://$token@github.com/username/repo.git" main

💡 Consejo: usa un token separado con permisos mínimos para CI/CD.


4. IDE y desarrollo local

  • En Visual Studio Code y otras IDE se puede insertar el PAT en lugar de la contraseña para trabajar con repositorios privados y pull requests.
  • Para distintas máquinas o IDE, crea tokens separados para limitar el impacto de una posible filtración.

5. Gestión y seguridad

  • Guarda los tokens en gestores de contraseñas o SecretStore.
  • Crea tokens separados para diferentes tareas.
  • Revisa y revoca tokens no utilizados regularmente.
  • Siempre establece fecha de expiración (no uses “No expiration”).
  • Planifica la rotación de tokens para CI/CD y scripts automatizados.

6. Alternativa: GitHub CLI

gh auth login

El CLI abrirá el navegador, realizará la autenticación, creará y guardará el token localmente. Esto evita generar el PAT manualmente y facilita la gestión de claves.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *