命令用Magit访问当前分支的Github拉取请求


15

通常,在将给定分支推入上游之后,我想在github上访问它并创建拉取请求。我开始不得不手动访问存储库,找到分支并创建PR感到烦恼。

问:如何编写在浏览器中访问PR URL的命令?

PR网址由提供https://github.com/ORIGIN-REPO/compare/BRANCH-NAME。由于两个originbranch-name通过Magit(和普通知git),它应该很容易编写建立一个命令URL和电话browse-url就可以了。

不幸的是,我对Magit的内部运作一无所知,所以我不知道如何获取这些信息。


2
我还没有对此进行探讨,但是对magit插件有一个相关的请求:github.com/sigma/magit-gh-pulls/pull/21
glucas 2014年

@glucas看起来很有希望。有空的时候我会测试。
马拉巴巴2014年

哦,这很有用……
肖恩·阿雷德

Answers:


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

马拉巴巴(Malabarba)在博客上发布了他的方法

(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添加类似内容时,请务必告诉我。:-)
马拉巴巴

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.