Команда відвідати Github на запит поточного відділення з Magit


15

Дуже часто зустрічається, що, натиснувши дану гілку вище за течією, я захочу відвідати її на github і створити запит на тягу. Я починаю дратуватись тим, що потрібно вручну відвідати репо, знайти відділення та створити PR.

З: Як я можу написати команду, яка відвідує URL-адресу PR у браузері?

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

На жаль, я нічого не знаю про внутрішню роботу компанії Magit, тому не знаю, як отримати цю інформацію.


2
Я не досліджував цього, але є відповідний запит на потяг до magit плагіна: github.com/sigma/magit-gh-pulls/pull/21
glucas

@glucas виглядає перспективно. Я тестую, коли знайду час.
Малабарба

О, це корисно…
Шон Аллред

Відповіді:


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 експорт цього фрагмента пішов не так у ваш блог.
Тарсій

І дайте мені знати, коли ви додасте щось подібне до магіту. :-)
Малабарба

3

Ви розглядали магітуб ?

Це не дозволяє переглядати запит на виклик поточної гілки, але надає повний список запитів на тягу, які ви можете відвідати, натиснувши RET.

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

Зверніть увагу, для цього потрібен концентратор 2.2 .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.