Este tutorial está diseñado para ayudarte a entender cómo crear un token en GitLab con permisos similares a los de GitHub, específicamente los permisos relacionados con repositorios privados y públicos.
1. ¿Qué es un Token en GitLab y GitHub?
-
Token de acceso personal: Es una clave que te permite autenticarte en GitLab o GitHub sin necesidad de usar tu contraseña. Con este token, puedes realizar acciones en tus repositorios o acceder a la API (interfaz de programación de aplicaciones) de estas plataformas.
-
Permisos de un token: Los tokens pueden tener permisos específicos. Esto significa que puedes controlar lo que el token puede hacer (leer, escribir, administrar repositorios, etc.).
2. Permisos de Token en GitHub
En GitHub, cuando creas un token clásico (para autenticarte en la API o interactuar con repositorios), hay una opción llamada repo, que se ve así:
repo Full control of private repositories
repo:status Access commit status
repo_deployment Access deployment status
public_repo Access public repositories
repo:invite Access repository invitations
security_events Read and write security events
Con esta opción, el token obtiene control completo sobre los repositorios privados, acceso a repositorios públicos, eventos de seguridad, entre otros. Es un conjunto de permisos amplios que te permite trabajar con tus repositorios de manera sencilla.
3. Permisos de Token en GitLab
Ahora, vamos a ver cómo se gestionan los permisos en GitLab. Cuando creas un token personal en GitLab, las opciones de permisos se dividen en varios "scopes" o ámbitos, que son los siguientes:
api
Grants complete read/write access to the API, including all groups and projects, the container registry, and the package registry.
read_api
Grants read access to the API, including all groups and projects, the container registry, and the package registry.
read_user
Grants read-only access to the authenticated user's profile through the /user API endpoint, which includes username, public email, and full name. Also grants access to read-only API endpoints under /users.
read_repository
Grants read-only access to repositories on private projects using Git-over-HTTP or the Repository Files API.
write_repository
Grants read-write access to repositories on private projects using Git-over-HTTP (not using the API).
¿Qué significan estos permisos?
- api: Te da acceso completo a todo en GitLab (repositorios, grupos, registros, etc.). Es un permiso muy amplio, similar a la opción repo en GitHub.
- read_api: Te da solo lectura en la API, puedes ver información pero no modificar nada.
- read_repository: Te da solo lectura en los repositorios privados, es decir, puedes leer pero no hacer cambios.
- write_repository: Te da lectura y escritura en los repositorios privados, es decir, puedes hacer cambios en los repositorios.
4. ¿Qué permisos debo seleccionar en GitLab para hacer lo mismo que en GitHub?
En GitHub, al seleccionar repo tienes acceso completo a tus repositorios, tanto privados como públicos. Si deseas replicar este comportamiento en GitLab, lo que necesitas es un conjunto de permisos que te permita:
- Acceder y modificar repositorios privados.
- Acceder a repositorios públicos.
Por lo tanto, en GitLab debes seleccionar los siguientes permisos:
-
api: Este es el permiso más amplio y te dará acceso completo a la API de GitLab, incluidos todos los repositorios, grupos y otros recursos. Esto es lo más cercano al permiso repo de GitHub.
-
write_repository: Si solo quieres trabajar con repositorios y no necesitas el acceso completo a la API, este permiso te permitirá realizar cambios (leer y escribir) en repositorios privados, similar a lo que hace repo en GitHub pero solo con los repositorios.
5. Pasos para crear un token en GitLab con los permisos adecuados
Paso 1: Iniciar sesión en GitLab
- Ve a GitLab y inicia sesión con tu cuenta
Paso 2: Ir a la configuración de tu cuenta
- En la parte superior derecha, haz clic en tu avatar o foto de perfil y selecciona "Preferences" o "Configuración".
Paso 3: Crear un nuevo token de acceso personal
-
En el menú de la izquierda, busca y selecciona "Access Tokens".
Paso 4: Completar la información del token
-
En la página de Access Tokens, deberás llenar los siguientes campos:
- Nombre: Dale un nombre a tu token, por ejemplo,
token-repositorios
. - Fecha de expiración marcada por defecto: Si quieres que el token caduque después de un tiempo determinado, puedes editar la fecha de expiración.
- Scopes: Aquí es donde seleccionas los permisos. Para replicar el permiso repo de GitHub, selecciona:
- api (Acceso completo a la API).
- write_repository (Acceso de lectura y escritura a los repositorios privados).
- Nombre: Dale un nombre a tu token, por ejemplo,
Paso 5: Crear el token
- Haz clic en "Create personal access token" para crear el token.
Paso 6: Guardar el token
- ¡Importante! Después de crear el token, GitLab te mostrará un código largo. Guárdalo en un lugar seguro. Este será tu único momento para verlo, y no podrás recuperarlo después.
6. Usando el Token en GitLab
Una vez que hayas creado tu token, puedes usarlo para autenticarte cuando interactúes con tus repositorios o accedas a la API de GitLab.
Usar el Token para Autenticación
En lugar de tu contraseña, usarás el token para autenticarte. Hay dos formas de hacerlo:
Método 1: Ingresar el Token Manualmente
Al realizar cualquier acción como git pull o git push, git pedirá tus credenciales.
Usa tu nombre de usuario como siempre, pero pega el token como la contraseña.
Método 2: Configurar el Token en la URL del Repositorio
Puedes guardar el token en la URL remota para evitar ingresarlo manualmente cada vez.Configura la URL remota con el token incluido:
git remote set-url origin https://<your-username>:<your-token>@<your-url>/<namespace>/<repository>.git
Reemplaza:
<your-username>: Tu nombre de usuario.
<your-token>: Tu token generado.
<your-url>, <namespace>, <repository>: Como se describió antes.
Método 3: Usar un Helper de Credenciales
1. Configura el helper de credenciales para almacenar el token de forma segura:
git config --global credential.helper store
2. Realiza una acción como git push o git pull e ingresa tu usuario y token cuando se te solicite. Esto los almacenará para usos futuros.
Referencias bibliográficas
-
GitHub Docs - Personal Access Tokens (Classic)
- Enlace: GitHub - Personal Access Tokens
-
GitHub Docs - Scopes for OAuth Apps
- Enlace: GitHub - Scopes for OAuth Apps
-
GitHub Docs - About OAuth and GitHub Apps
-
GitLab Docs - Personal Access Tokens
- Enlace: GitLab - Personal Access Tokens
-
GitLab Docs - Permissions and Scopes
- Enlace: GitLab - Permissions and Scopes
-
GitLab Docs - Authentication with Personal Access Tokens
Comentarios
Publicar un comentario