Commande pour visiter Github pull request de la branche actuelle avec Magit


15

Il est très courant qu'après avoir poussé une branche donnée en amont, je veuille la visiter sur github et créer une demande de pull. Je commence à m'énerver d'avoir à visiter manuellement le repo, à trouver la succursale et à créer le PR.

Q: Comment puis-je écrire une commande qui visite l'URL PR dans un navigateur?

L'URL PR est donnée par https://github.com/ORIGIN-REPO/compare/BRANCH-NAME. Étant donné que le originet le branch-nameconnu par Magit (et par plain git), il devrait être facile d'écrire une commande qui construit cette URL et l'appelle browse-url.

Malheureusement, je ne sais rien du fonctionnement interne de Magit, donc je ne sais pas comment obtenir cette information.


2
Je n'ai pas exploré cela, mais il y a une demande d'extraction pertinente vers un plugin magit
glucas

@glucas semble prometteur. Je testerai quand j'aurai le temps.
Malabarba

Oh, c'est utile…
Sean Allred

Réponses:


9

Voici ce que j'ai trouvé:

(defun pull-request-url ()
  "Build the URL or the pull requestion on GitHub corresponding
to the current branch. Uses Magit."
  (interactive)
  (format "%s/compare/%s"
           (replace-regexp-in-string
            (rx (and string-start (1+ any) "github.com:" (group (1+ any)) ".git" string-end))
            "https://github.com/\\1"
            (magit-get "remote" (magit-get-current-remote) "url"))
          (magit-get-current-branch)))

magit.el est assez facile à lire, soit dit en passant.


3

Malabarba a publié son approche sur son blog.

(defun endless/visit-pull-request-url ()
  "Visit the current branch's PR on Github."
  (interactive)
  (browse-url (format "https://github.com/%s/pull/new/%s"
                      (replace-regexp-in-string
                       "\\`.+github\\.com:\\(.+\\)\\.git\\'" "\\1"
                       (magit-get "remote" (magit-get-push-remote) "url"))
                      (magit-get-current-branch))))

Soit dit en passant, j'ai l'intention d'ajouter des fonctionnalités similaires (et beaucoup plus ;-) à Magit lui-même, éventuellement.


@Malabarba, l'exportation de cet extrait a mal tourné sur votre blog.
tarsius

Et faites-moi savoir quand vous ajoutez quelque chose comme ça dans magit. :-)
Malabarba

3

Avez-vous pensé à magithub ?

Il ne vous permet pas d'afficher la demande d'extraction de la branche actuelle, mais il vous donne une liste complète des demandes d'extraction que vous pouvez visiter en appuyant sur RET.

entrez la description de l'image ici

Notez que cela nécessite le hub 2.2 .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.