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

15

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

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

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

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

Malabarba
источник
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, в конце концов.

Tarsius
источник
@Malabarba экспорт этого фрагмента в ваш блог не прошел.
tarsius
И дайте мне знать, когда вы добавите что-то подобное в magit. :-)
Малабарба
3

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

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

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

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

Уилфред Хьюз
источник