ghq + peco로 GitHub 리포지토리를 선택하면서 curl + jq에서 GitHub API 실행

3463 단어 GitHubGhqPecocurljq
이전에 작성한 기사에서 curl + jq를 사용하여 Github API에서 Pull Request에 대한 base/head branch를 얻을 수있는 것을 시도했습니다.

Github의 Pull Request에 묶는 base / head branch를 curl과 jq로 얻는다.

이번에는 ghq + peco의 리포지토리 선택을 결합하여 리포지토리를 더 쉽게 선택할 수 있도록 시도했습니다.

전제 환경


  • MacOSX 10.13.6
  • ghq 0.8.0
  • peco 0.5.3
  • jq 1.5
  • GitHub Access Token 검색됨(취득되지 않은 경우 Creating a personal access token for the command line - User Documentation 참조)

  • ※ ghq, peco, jq ​​는 모두 HomeBrew 로 인스톨 할 수 있습니다.

    준비 정책



    아래 방침으로 준비하겠습니다.
  • ghq에서 로컬로 GitHub 리포지토리 목록 만들기
  • peco에서 GitHub 리포지토리 목록을 증분 검색 가능
  • curl에서 GitHub API 실행
  • jq로 응답 처리

  • 사전 준비



    GitHub 리포지토리 목록 만들기



    ghq에서 Pull Request를 확인할 리포지토리를 로컬로 복제합니다.
    $ ghq get <repo URL>
    

    원라이너 준비



    아래의 원라이너를 쉘 설정에 추가합니다.
    제 경우에는 zsh 를 사용하고 있으므로 .zshrc 에 별칭을 등록하고 source ~/.zshrc 등으로 로드해 둡니다.
    alias pb='curl -sH "Authorization: token ${GITHUB_API_TOKEN}" "https://api.github.com/repos/$(ghq list | sed s#github.com\/##g | peco)/pulls" | jq ".[] | { number: .number, title: .title, base: .base.ref, head: .head.ref }"'
    

    curl, jq 부분은 이전 기사을 답습하고 있습니다.
    추가한 부분은 $(ghq list | sed s#github.com\/##g | peco) 부분에서 :owner/:repo 부분을 추출하여 증분 검색에서 선택할 수 있도록 했습니다.
    GITHUB_API_TOKEN.zshrc에 쓰고 싶지 않았기 때문에 다른 파일 github_credentials로 잘라서 로드하는 형태로 했습니다.
    ※.github_credentials 의 내용을 직접 Git 관리하지 않도록, .gitignore 로 지정해 두는 등, 주의해 주세요!

    ~/.github_credentials
    export GITHUB_API_TOKEN=xxx
    
    GITHUB_CREDENTIAL_FILE=~/.github_credentials
    if [ -e $GITHUB_CREDENTIAL_FILE ]; then
      source $GITHUB_CREDENTIAL_FILE
    fi
    

    이용방법



    alias에 등록한 pb을 실행하면,

    ghq로 복제한 리포지토리 목록을 증분 검색할 수 있습니다.



    그런 다음 리포지토리를 선택하면 리포지토리의 풀 요청과 소스/헤드 브랜치를 볼 수 있습니다.

    이번에는 facebook/react의 Pull Request 목록을 보려고했습니다.



    끝에



    peco + ghq 의 조합으로, GitHub APi 의 실행이 보다 편리하게 되었습니다.
    이번에는 Pull Request와 관련된 API를 실행하려고 시도했지만 Issues와 같은 다른 API에도 적용 할 수 있다고 생각했습니다.

    참고 URL


  • ghq, peco, hub에서 편안한 Git 생활을 얻으십시오!
  • 좋은 웹페이지 즐겨찾기