Comando per visitare Github richiesta pull del ramo corrente con Magit


15

È molto comune che, dopo aver spinto un determinato ramo a monte, vorrò visitarlo su Github e creare una richiesta pull. Sto iniziando a infastidirmi nel dover visitare manualmente il repository, trovare il ramo e creare il PR.

D: Come posso scrivere un comando che visita l'URL PR in un browser?

L'URL PR è dato da https://github.com/ORIGIN-REPO/compare/BRANCH-NAME. Poiché sia ​​il originche il branch-namenoto di Magit (e chiaramente git), dovrebbe essere facile scrivere un comando che costruisce quell'URL e lo chiama browse-url.

Sfortunatamente, non so nulla del funzionamento interno di Magit, quindi non so come ottenere tali informazioni.


2
Non l'ho esplorato, ma c'è una richiesta pull rilevante per un plugin magit: github.com/sigma/magit-gh-pulls/pull/21
glucas

@glucas sembra promettente. Proverò quando avrò il tempo.
Malabarba,

Oh, questo è utile ...
Sean Allred,

Risposte:


9

Ecco cosa mi è venuto in mente:

(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 è abbastanza facile da leggere, a proposito.


3

Malabarba ha pubblicato il suo approccio sul suo 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))))

A proposito, ho intenzione di aggiungere funzionalità simili (e molto altro ;-) a Magit stesso, alla fine.


@Malabarba l'esportazione di quello snippet è andata storta sul tuo blog.
Tarsius,

E fammi sapere quando aggiungi qualcosa del genere in Magit. :-)
Malabarba,

3

Hai considerato Magithub ?

Non consente di visualizzare la richiesta pull del ramo corrente, ma offre un elenco completo di richieste pull che è possibile visitare premendo RET.

inserisci qui la descrizione dell'immagine

Nota che questo richiede hub 2.2 .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.