Saltar al contenido

¿Cómo manipular el repositorio de Bitbucket con token?

Después de de esta extensa búsqueda de datos solucionamos este inconveniente que presentan muchos de nuestros usuarios. Te ofrecemos la solución y deseamos servirte de mucha ayuda.

Solución:

Usé una contraseña de la aplicación que creé desde Bitbucket Cpanel en Configuración -> Administración de acceso (barra lateral) -> Contraseñas de la aplicación. Después de hacer esto, cloné el repositorio usando mi nombre de usuario y la nueva contraseña de la aplicación de la siguiente manera:

https://[your_user_name]:[app_password]@bitbucket.org/[your_user_name]/[repo_name].git

Esta página de BitBucket menciona:

Recientemente presentamos OAuth 2 y también agregamos la capacidad de usarlos como credenciales de autenticación básica HTTP.

Clonar un repositorio con un token de acceso

Dado que los complementos no podrán cargar su propio SSH keys para clonar, los tokens de acceso se pueden usar como credenciales de autenticación HTTP básica para clonar de forma segura a través de HTTPS.

git clone https://x-token-auth:[email protected]/user/repo.git

el literal string x-token-auth como sustituto del nombre de usuario es obligatorio.

Nuestro proceso es similar a GitHub, pero ligeramente diferente: la diferencia es que GitHub coloca el token real en el campo de nombre de usuario.

Vea más en “OAuth en Bitbucket Cloud”, como se sugiere en los comentarios de nick graziano.

Ante todo: solo se pueden usar tokens OAuth 2 para clonar repositorios

Si bien no está claro en esta página, he visto personas que intentan usar tokens de acceso OAuth 1. Desafortunadamente, Git y Mercurial no son compatibles con OAuth 1, por lo que no es posible clonar repositorios de esa manera.

Esto se debe a que OAuth 1 requiere que las solicitudes estén firmadas de forma única. El token en sí es simplemente una de las variables de entrada para el proceso de firma criptográfica que git y hg no admiten.

Ahora, de hecho, recientemente agregamos soporte para OAuth 2 que, a pesar de su nombre, es un protocolo muy diferente y no incluye la firma criptográfica. Como resultado, los tokens de OAuth 2 se pueden usar para clonar a través de https.

Aquí hay un volcado de mí creando un nuevo token de acceso/portador de OAuth 2 y usándolo para clonar uno de mis repositorios privados:

$ curl https://bitbucket.org/site/oauth2/access_token 
  -d grant_type=client_credentials 
  -u dqN7QFLwJEcHsHadYw:pzvZG25WEDqbm9aeUVRHtQRHgTRgDr9t

  "access_token": "He1rBW1eYAzmT3ePJcvYDtkIcF1Pb1izZHo8oqpKMEL5ivsku71qkjfumVgR2bWsCiRM7XeEmbVffxU92w==",
  "scopes": "repository email",
  "expires_in": 3600,
  "refresh_token": "pfcnxSpXNPAeTcYhcQ",
  "token_type": "bearer"

$ git clone "https://x-token-auth:JU5dAtlMD30BisLpDkIap[email protected]bitbucket.org/evzijst/crypt"
Cloning into 'crypt'...
remote: Counting objects: 26, done.
remote: Compressing objects: 100% (25/25), done.
remote: Total 26 (delta 8), reused 0 (delta 0)
Unpacking objects: 100% (26/26), done.
Checking connectivity... done.

Ahora tenga en cuenta que los tokens de OAuth 2 caducan en una hora. Después de eso dejarán de funcionar. Dependiendo de cómo haya obtenido el token de acceso, es posible que tenga un token de actualización. Puede usar este token de actualización para emitir un nuevo token de acceso inmediatamente antes de intentar clonar, para evitar el vencimiento.

Sección de Reseñas y Valoraciones

Recuerda que puedes difundir este artículo si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

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