Magit으로 현재 지점의 Github 풀 요청을 방문하는 명령


15

주어진 브랜치를 업스트림으로 푸시 한 후 github에서 해당 브랜치를 방문하여 풀 요청을 생성하는 것이 매우 일반적입니다. 나는 수동으로 repo를 방문하고 지점을 찾고 PR을 만들어야하는 것에 대해 화가 나기 시작했습니다.

Q : 브라우저에서 PR URL을 방문하는 명령을 작성하려면 어떻게해야합니까?

PR URL은로 제공됩니다 https://github.com/ORIGIN-REPO/compare/BRANCH-NAME. 모두 이후 originbranch-nameMagit에 의해 (그리고 일반으로 알려진 git)는 빌드 명령을 쉽게 작성할 수 있어야 URL 전화를 걸고 browse-url그 위에.

안타깝게도 Magit의 내부 작업에 대해서는 전혀 모르므로 해당 정보를 얻는 방법을 모르겠습니다.


2
나는 이것을 탐구하지는 않았지만 magit 플러그인에 관련된 풀 요청이 있습니다 : github.com/sigma/magit-gh-pulls/pull/21
glucas

@glucas는 유망한 것으로 보입니다. 나는 시간이되면 테스트합니다.
Malabarba

오, 이것은 유용합니다…
Sean 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

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에 추가 할 때 알려주십시오. :-)
Malabarba 2016 년

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.