¿Cómo puedo ver la URL de la solicitud de extracción para la rama actual?

3 minutos de lectura

avatar de usuario
Rejilla Trekkor

Después de presionar un cambio, veo un texto como este:

Writing objects: 100% (5/5), 478 bytes | 239.00 KiB/s, done.
Total 5 (delta 4), reused 0 (delta 0)
remote:
remote: Create pull request for my-branch => master-branch
remote:   https://bitbucket.org/my-company/repo/pull-requests/12345

Pero si no hago una PR en ese momento, y el texto se desplaza fuera de la vista, esa URL desaparece. ¿Cómo puedo simplemente generar o volver a ver esa URL sin hacer un cambio y confirmar/presionar nuevamente?

avatar de usuario
Ortomala Lokni

Esta URL de solicitud de extracción no es una función de git, sino un mensaje generado por un script de enlace en el servidor de BitBucket.

En un servidor de BitBucket, puede deshabilitarlo globalmente con: ¿Cómo desactivo el mensaje de solicitud de extracción de creación remota al enviar cambios?. En la nube de BitBucket no puede deshabilitarlo.

Una solución para obtener este mensaje sería simular un git pull con el --dry-run opción, como:

git pull --dry-run 

pero si esto no es suficiente para activar el enlace, probablemente la única forma sea pasar por la interfaz web de BitBucket.

  • Eso no es Bitbucket Server, es Bitbucket Cloud.

    –Jim Redmond

    9 de marzo de 2018 a las 1:06

Pude generar la URL usando un archivo por lotes como este:

@echo off

setlocal 
for /f "tokens=*" %%a in ( 
    'git rev-parse --abbrev-ref HEAD'
) do ( 
    set branch=%%a
    set url=https://bitbucket.org/my-company/repo/pull-requests/new?source=%%a^^^&t=1
) 

echo %url%
endlocal 

Simplemente toma la rama actual de git y coloca una cadena, luego repite la cadena.

  • Puedes sofisticar esto un poco: alias pr_url="https://bitbucket.org/$(git remote -v | head -n 1 | grep -oP '[\w+_]+\/[\w+_]+')/pull-requests/new?source=$(git branch --show-current)"

    –Scott Anderson

    7 ene a las 14:26


  • @ScottAnderson: ¡Genial! Evento mejor: alias pr_url="https://bitbucket.org/$COMPANY_NAME/$(basename `git rev-parse --show-toplevel`)$(git remote -v | head -n 1 | grep -oP '[\w+_]+\/[\w+_]+')/pull-requests/new?source=$(git branch --show-current)"

    – TerDale

    30 de marzo a las 9:23

La URL que ha enumerado aquí es para una solicitud de extracción que ya existe: el texto “Ver solicitud de extracción” es el obsequio allí. Las solicitudes de extracción existentes tienen una ID en la URL, que deberá especificar; si no conoce la ID, deberá obtener la URL de la GUI (https://bitbucket.org/owner/repo/pull-requests/ es probablemente el lugar más fácil para encontrarlo).

Si aún no hay una solicitud de extracción para su rama, entonces el enlace “Crear solicitudes de extracción” que genera el gancho es https://bitbucket.org/owner/repo/pull-requests/new?source=branchname&t=1.

Versión bash:

#!/bin/bash

org="myOrg"
branch=$(git rev-parse --abbrev-ref HEAD)
repo_dir=$(git rev-parse --show-toplevel)
repo=$(basename ${repo_dir})
url="https://bitbucket.org/${org}/${repo}/pull-requests/new?source=${branch}&t=1"

echo $url

Para crear una solicitud de extracción usando un navegador web (interfaz web de bitbucket), vaya a la branch página web de su sucursal, o la branches página de su repositorio de bitbucket.

Usando el ejemplo en la pregunta:

remote: Create pull request for my-branch => master-branch
remote:   https://bitbucket.org/my-company/repo/pull-requests/12345

Podemos ir a
https://bitbucket.org/my-company/repo/branch/my-branchhay un enlace “Crear solicitud de extracción”.

O podemos ir a
https://bitbucket.org/my-company/repo/brancheshay una columna llamada “Solicitud de extracción”, y para las sucursales que no tienen una solicitud de extracción existente, hay un enlace “crear”.

¿Ha sido útil esta solución?