Git hook para producir el enlace "Create Pull Request" de Github en la terminal como Bitbucket Does

Una de las cosas que encuentro muy útiles acerca de Bitbucket es cuando insertas una nueva twig en un repository alojado en Bitbucket, imprime (en la pantalla del terminal) una URL que puedes pulsar para crear un RP de esa twig que acabas de pulsar . Ex:

$ git push origin someBranch Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 313 bytes | 0 bytes/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: remote: Create pull request for someBranch: remote: https://bitbucket.mydomain.com/projects/PRO/repos/someRepo/compare/commits?sourceBranch=refs/heads/someBranch remote: To ssh://bitbucket.mydomain.com:7999/pro/somerepo.git f6718d4..410cbcb someBranch -> someBranch 

Creo que esto supone un gran ahorro de time para ir a Bitbucket, navegar al repository, encontrar el button "Crear request de extracción", etc. Como tal, me gustaría algo similar para cuando estoy trabajando con un repository alojado en Github. – después de pulsar una nueva twig, imprímala en la terminal, una URL que puedo pulsar para acceder a la pantalla de creación de relaciones públicas en Github. Alguien sabe de algo como esto?

Sé que hay una CLI para Github con un command de pull-request , pero eso le pide su contraseña cada vez que es muy molesto, y TBH me gusta mirar la diferencia en la interfaz de usuario antes de crear realmente el PR.

Creé mi propio gancho local que funciona lo suficientemente bien para mis necesidades. Agregue esto como un gancho de pre-push a su clon local de un repository:

 #!/bin/sh branch=$(git rev-parse --abbrev-ref HEAD) userRepo=$(git remote -v | grep fetch | awk '{print $2}' | grep "github.com" | cut -d':' -f2 | rev | cut -c5- | rev) if [ -n "$userRepo" ] then echo "" echo "Create PR at: https://github.com/$userRepo/compare/$branch?expand=1" echo "" fi 

Ejemplo de salida:

 $ git push origin testouthooks Create PR at: https://github.com/pzelnip/dotfiles/compare/testouthooks?expand=1 Counting objects: 3, done. Delta compression using up to 8 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 284 bytes | 0 bytes/s, done. Total 3 (delta 2), reused 0 (delta 0) remote: Resolving deltas: 100% (2/2), completed with 2 local objects. To github.com:pzelnip/dotfiles.git f7c29b8..f6f9347 testouthooks -> testouthooks 

Luego puedo presionar esa url emitida para aterrizar en la página de request de creación de Github con la twig que acabo de presionar como fuente.

Esto no es completamente equivalente a Bitbucket, ya que se ejecuta localmente (Bitbucket uno se ejecuta en el control remoto) por lo que no es tan inteligente (por ejemplo, aún emite la URL incluso si la inserción no produjo cambios en el control remoto, etc.) . Pero se adapta a mi necesidad de "cuando presiono a un repository Github, puedo hacer clic en un enlace desde la window de mi terminal para acceder a la página crear PR en Github".