Magitで現在のブランチのGithubプルリクエストにアクセスするコマンド


15

特定のブランチをアップストリームにプッシュした後、githubでそのブランチにアクセスしてプルリクエストを作成することは非常に一般的です。私は手動でリポジトリにアクセスし、ブランチを見つけ、PRを作成しなければならないことに悩まされ始めています。

Q:ブラウザでPRのURLにアクセスするコマンドを作成するにはどうすればよいですか?

PR urlはによって提供されhttps://github.com/ORIGIN-REPO/compare/BRANCH-NAMEます。originとはbranch-nameMagitによって(そしてplainによってgit)知られているので、そのURLを構築しbrowse-urlてそれを呼び出すコマンドを書くのは簡単です。

残念ながら、Magitの内部動作については何も知らないため、その情報を取得する方法はわかりません。


2
私はこれを調査していませんが、magitプラグインへの関連するプルリクエストがあります:github.com/sigma/magit-gh-pulls/pull/21
glucas

@glucasは有望に見えます。時間があるときにテストします。
マラバルバ14年

ああ、これは便利です…
ショーン・オールレッド14年

回答:


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は、そのスニペットのエクスポートがブログで間違っていました。
タシウス

そして、そのようなものをmagitに追加する際にお知らせください。:-)
マラバルバ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.