Команда на посещение Github запроса на ветку с Magit


15

Очень часто после добавления данной ветки вверх по течению я захочу посетить ее на github и создать запрос на извлечение. Я начинаю раздражаться от необходимости вручную посещать репо, находить филиал и создавать пиар.

В: Как я могу написать команду, которая посещает PR-адрес в браузере?

PR-адрес задается https://github.com/ORIGIN-REPO/compare/BRANCH-NAME. Поскольку Magit известен originкак branch-nameизвестный, так и обычный (и просто git), легко написать команду, которая создает этот URL-адрес и вызывает browse-urlего.

К сожалению, я ничего не знаю о внутреннем функционировании Magit, поэтому я не знаю, как получить эту информацию.


2
Я не исследовал это, но есть соответствующий запрос на извлечение плагина magit: github.com/sigma/magit-gh-pulls/pull/21
glucas

@glucas выглядит многообещающе. Я проверю, когда у меня будет время.
Малабарба

О, это полезно ...
Шон Allred

Ответы:


9

Вот что я придумал:

(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 кстати, довольно легко читать


3

Малабарба опубликовал свой подход в своем блоге.

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

Кстати, я намерен добавить подобную функциональность (и многое другое ;-) к самому Magit, в конце концов.


@Malabarba экспорт этого фрагмента в ваш блог не прошел.
tarsius

И дайте мне знать, когда вы добавите что-то подобное в magit. :-)
Малабарба

3

Вы рассматривали magithub ?

Он не позволяет вам просматривать запросы на извлечение в текущей ветви, но дает полный список запросов, которые вы можете посетить, нажав RET.

введите описание изображения здесь

Обратите внимание, что для этого требуется концентратор 2.2 .

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.