Perintah untuk mengunjungi Github menarik permintaan cabang saat ini dengan Magit

15

Sangat umum bahwa, setelah mendorong cabang tertentu ke hulu, saya ingin mengunjunginya di github dan membuat permintaan tarik. Saya mulai merasa kesal karena harus secara manual mengunjungi repo, menemukan cabang, dan membuat PR.

Q: Bagaimana saya bisa menulis perintah yang mengunjungi url PR di browser?

URL PR diberikan oleh https://github.com/ORIGIN-REPO/compare/BRANCH-NAME. Karena keduanya origindan yang branch-namedikenal dengan Magit (dan dengan polos git), seharusnya mudah untuk menulis perintah yang membangun URL dan panggilanbrowse-url .

Sayangnya, saya tidak tahu apa-apa tentang cara kerja internal Magit, jadi saya tidak tahu cara mendapatkan informasi itu.

Malabarba
sumber
2
Saya belum menjelajahi ini, tetapi ada permintaan tarik yang relevan untuk plugin magit
glucas
@glucas terlihat menjanjikan. Saya akan menguji ketika saya mendapatkan waktu.
Malabarba
Oh, ini berguna ...
Sean Allred

Jawaban:

9

Inilah yang saya pikirkan:

(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 cukup mudah dibaca, omong-omong.

Constantine
sumber
3

Malabarba telah memposting pendekatannya di blog-nya.

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

Ngomong-ngomong, saya bermaksud untuk menambahkan fungsionalitas yang serupa (dan lebih banyak ;-) untuk Magit sendiri, pada akhirnya.

tarsius
sumber
@Malabarba ekspor cuplikan itu salah di blog Anda.
tarsius
Dan beri tahu saya ketika Anda menambahkan sesuatu seperti itu ke dalam magit. :-)
Malabarba
3

Sudahkah Anda mempertimbangkan magithub ?

Itu tidak memungkinkan Anda melihat permintaan tarikan dari cabang saat ini, tetapi itu memberi Anda daftar lengkap permintaan tarikan yang dapat Anda kunjungi dengan menekan RET.

masukkan deskripsi gambar di sini

Perhatikan ini membutuhkan hub 2.2 .

Wilfred Hughes
sumber