2017-10-17 10 views
2

Une des choses que je trouve très pratique à propos de Bitbucket est lorsque vous poussez une nouvelle branche jusqu'à un dépôt hébergé dans Bitbucket, il imprime (à la écran terminal) une URL que vous pouvez frapper pour créer un PR à partir de cette branche que vous venez de pousser. Ex:Git hook pour produire Github "Create Pull Request" lien dans le terminal comme Bitbucket fait

$ 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 

Je trouve que cela est un énorme timesaver sur aller Bitbucket, naviguer à la prise en pension, trouver le bouton « Créer Pull Request », etc. En tant que tel, je voudrais quelque chose de similaire pour quand je travaille avec un repo hébergé sur Github - après une poussée d'une nouvelle branche, faites imprimer au terminal une URL que je peux atteindre pour accéder à l'écran de création de relations publiques sur Github. Quelqu'un sait-il quelque chose comme ça? Je sais qu'il y a une CLI pour Github avec une commande pull-request, mais cela vous invite à entrer votre mot de passe à chaque fois, ce qui est très ennuyeux, et TBH j'aime regarder le diff dans l'interface utilisateur avant de créer le PR.

Répondre

2

Créé mon propre crochet local qui fonctionne assez bien pour mes besoins. Ajouter cela comme un crochet pre-push à votre clone local d'une prise en pension:

#!/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 

sortie Exemple:

$ 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 

je peux alors frappé cette url émise à la terre sur la page de création de demande traction dans Github avec le branche I juste poussé comme la branche source. Ce n'est pas tout à fait équivalent à Bitbucket, car il est exécuté localement (celui de Bitbucket est exécuté sur la télécommande) donc il n'est pas aussi intelligent (ex: il émet toujours l'URL même si le push n'aboutit à aucun changement). télécommande, etc.). Mais cela répond à mon besoin de "quand je pousse vers un repo Github, je peux cliquer sur un lien de ma fenêtre de terminal pour arriver à la page de création de PR dans Github".