Polecenie odwiedzenia Github prośby o ściągnięcie bieżącego oddziału za pomocą Magita

15

Często zdarza się, że po wypchnięciu danej gałęzi w górę, chcę ją odwiedzić na github i utworzyć żądanie ściągnięcia. Zaczynam się denerwować, że muszę ręcznie odwiedzać repozytorium, znajdować oddział i tworzyć PR.

P: Jak napisać polecenie, które odwiedza URL PR w przeglądarce?

Adres URL PR jest podawany przez https://github.com/ORIGIN-REPO/compare/BRANCH-NAME. Ponieważ zarówno te znane, jak origini branch-nameznane przez Magit (i zwykłe git), powinno być łatwo napisać polecenie, które buduje ten adres URL i wywołuje browse-urlgo.

Niestety nic nie wiem o wewnętrznym działaniu Magit, więc nie wiem, jak uzyskać te informacje.

Malabarba
źródło
2
Nie zbadałem tego, ale jest odpowiednia prośba o pobranie
glucas
@glucas wygląda obiecująco. Sprawdzę, kiedy będę miał czas.
Malabarba
Och, to jest przydatne…
Sean Allred

Odpowiedzi:

9

Oto, co wymyśliłem:

(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 Nawiasem mówiąc, jest dość łatwy do odczytania.

Konstantyn
źródło
3

Malabarba opublikował swoje podejście na swoim blogu.

(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))))

Nawiasem mówiąc, zamierzam dodać podobną funkcjonalność (i wiele więcej ;-) w końcu do samej Magit.

Tarsjusz
źródło
@Malabarba eksport tego fragmentu nie powiódł się na Twoim blogu.
tarsius
I daj mi znać, kiedy dodasz coś takiego do magit. :-)
Malabarba,
3

Czy rozważałeś magithub ?

Nie pozwala wyświetlić żądania ściągnięcia bieżącego oddziału, ale daje pełną listę żądań ściągnięcia, które można odwiedzić, naciskając RET.

wprowadź opis zdjęcia tutaj

Uwaga: wymaga to hub 2.2 .

Wilfred Hughes
źródło