제출 산열에서pull request 페이지를 열거나 가져오는 명령행 도구 tosa
이거 뭐야?
git의 제출 산열에서pull request 페이지를 열고 정보를 얻는 명령줄 도구입니다.
언제 써요?
Giit가 관리하는 코드인데 왜 지금의 실크로 변했는지 알고 싶어요.이때 수수료 격차를 보고도 의도를 잘 알지 못했지만, 제출한 사람이 퇴직했으니 사실상 자신이 낸 수수료는 잘 기억나지 않는 것일까?
GiitHub를 사용하여 코드를 관리할 때pull request 페이지를 참조하면 코드 심사와 심사를 거친 로그를 확인하여 개발 효율을 높일 수 있습니다.또한 미래를 위해pullrequest는 이러한 변화된 기록을 잘 보존하는 것이 팀을 뿌리내리게 하는 동기라고 생각합니다.
설치하다.
Homebrew 사용자인 경우 다음 명령을 사용하여 간단히 설치할 수 있습니다.$ brew tap kyoshidajp/tosa
$ brew install tosa
또한 Go에 설치되어 있으므로 Go 환경이 설치되어 있으면 go get
에 설치할 수 있습니다.$ go get -u github.com/kyoshidajp/tosa
이외에도 릴리즈 페이지에서 동작 환경에 맞는 파일을 다운로드하고 펼치면 tosa
를 실행 경로를 통과하는 곳에 놓는다.
실행 방법
매개 변수에 제출 산열을 지정하면 기본 브라우저에서pull request 페이지를 열 것입니다.$ tosa c97e6909
처음 시작할 때 Giithub의 로그인 알림을 표시하려면 사용자 이름, 비밀번호, 2단계 인증 코드를 입력해야 합니다.이는 Giithub API가 개인 저장소를 포함하는 검색에 사용되기 때문입니다.CI 등을 사용하여 실행할 때, 방문 영패를 환경 변수 GITHUB_TOKEN
로 설정하면 이 항목이 우선입니다.
시간에서 시작
tig 사용자$HOME/.tigrc
라면 다음 버튼 귀속 설정을 미리 하는 것이 편리합니다.bind main O @tosa %(commit)
bind blame O @tosa %(commit)
홈 보기와 blame 보기에서 O (Shift+o) 를 누르면 커서 위치의 제출 해시에서pull request URL을 열 수 있습니다.
URL 출력
-u
또는 --url
를 지정하면 URL이 출력됩니다.% tosa -u c97e6909
https://github.com/kyoshidajp/tosa/pull/13
사용 상황으로 ssh를 통해 연결된 원격 기기에서 브라우저가 직접 시작되지 않을 경우를 가정합니다.
API URL 출력
-a
또는 --apiurl
를 지정하면 API URL이 출력됩니다.$ tosa -a c97e6909
https://api.github.com/repos/kyoshidajp/tosa/issues/13
이것을 컬에게 건네주면 jq성형을 받을 수 있다.다음은 pull request 제목을 가져오는 예입니다.$ curl -s `tosa -a c97e6909` | jq -r '.title'
Add short command option and usage
API에서 가져올 수 있는 항목은 참조Issues | GitHub Developer Guide하십시오.
예를 들어 상세한 발행 수첩을 자동으로 생성한다.지난번에 발표된 수정 내용에 대한git-log를 사용하여 산열 목록을 제출하고pullrequest 데이터로 수정 개요와 수정된 사용자 정보를 출력할 수 있도록 합니다.
pull request는 어떻게 얻습니까?
Giithub APISearch issues에서 검색 키워드'해시 제출''창고''pull request 상태'를 지정하여 검색합니다.
예를 들어 토사의 제출 해시c97e6909
의 검색 조건 매개 변수q
는 q=repo:kyoshidajp/tosa pr:merged c97e6909
이다.
URL 인코딩이 수행된 최종 검색 URL은 다음과 같습니다.
이 응답에 포함된 html_url
은pull request의 URL입니다.현재 응답 items
은 여러 개로 되돌아오지만, 앞의 1개는 일치해야 합니다.
API에 대한 액세스와 데이터를 Go API의 클라이언트 라이브러리go-github에서 가져옵니다.
참고로 API가 아닌 일반적인 웹 검색을 통해서도 얻을 수 있다.검색 상자에서 아까 repo:kyoshidajp/tosa pr:merged c97e6909
로 검색하십시오.
검색 결과의 페이지 URL은 여기에 있습니다.
참고할 수 있는 아이디어, 도구
Giit 기반 Code ding Tips-cookpad 개발자 블로그
제출 산열에서pull request 페이지를 열 생각은 원래 이곳에서 소개한 것이기 때문에 매우 편리하게 이용할 수 있다.다만, 간혹 무관한pull request 페이지가 뜨거워지면서 창고를 바꿀 때마다 URL$YOUR_REPO_URL
을 설정해야 하는 불편함이 있었다.
또 루비 가입을 전제로 조개껍질을 편입하는 형태도 있는데, 당시 재적한 팀(루비가 설치되지 않은 윈도 환경)이 침투하지 않았던 것으로 기억한다.
pocke/whichpr: Find a pull request form commit hash.
검색 실현 부분은 이쪽 도구를 참고했습니다.다만, OSS의 구성을 개인적으로 변경하고 싶은 상시 포크의 창고가 잘 작동하지 않고, API URL 출력 등의 기능을 추가해 새롭게 제작했다.
tcnksm/ghr: Upload multiple artifacts to GitHub Release in parallel
특히 Go CLI 설치 상태 코드, 디버그 함수, Makefile 쓰기 방법에 대해서는 전혀 모르기 때문에 참고합니다.또한 Release용 업로드에서 실제로 사용됩니다.
앞으로의 과제
GitLab, Bitbucket 등 기타 git 서비스 지원
깃허브뿐만 아니라 깃랩과 비트bucket 등 깃허핑 서비스를 이용하는 이용자가 일정 수 있어 활용이 가능하다.
다만, 조금 조사해보니 GitLab에서 제출 주제만 찾은 것 같고 merge reuqest는 찾지 못했다.다른 서비스는 아직 조사하지 않았습니다.
고속화
현재 API의 요청은 시간이 오래 걸렸고 특히 포크의 창고 데이터를 가져올 때 최대 3차례의 네트워크 접근을 하기 때문에 매우 늦을 것이다.
Giit가 관리하는 코드인데 왜 지금의 실크로 변했는지 알고 싶어요.이때 수수료 격차를 보고도 의도를 잘 알지 못했지만, 제출한 사람이 퇴직했으니 사실상 자신이 낸 수수료는 잘 기억나지 않는 것일까?
GiitHub를 사용하여 코드를 관리할 때pull request 페이지를 참조하면 코드 심사와 심사를 거친 로그를 확인하여 개발 효율을 높일 수 있습니다.또한 미래를 위해pullrequest는 이러한 변화된 기록을 잘 보존하는 것이 팀을 뿌리내리게 하는 동기라고 생각합니다.
설치하다.
Homebrew 사용자인 경우 다음 명령을 사용하여 간단히 설치할 수 있습니다.$ brew tap kyoshidajp/tosa
$ brew install tosa
또한 Go에 설치되어 있으므로 Go 환경이 설치되어 있으면 go get
에 설치할 수 있습니다.$ go get -u github.com/kyoshidajp/tosa
이외에도 릴리즈 페이지에서 동작 환경에 맞는 파일을 다운로드하고 펼치면 tosa
를 실행 경로를 통과하는 곳에 놓는다.
실행 방법
매개 변수에 제출 산열을 지정하면 기본 브라우저에서pull request 페이지를 열 것입니다.$ tosa c97e6909
처음 시작할 때 Giithub의 로그인 알림을 표시하려면 사용자 이름, 비밀번호, 2단계 인증 코드를 입력해야 합니다.이는 Giithub API가 개인 저장소를 포함하는 검색에 사용되기 때문입니다.CI 등을 사용하여 실행할 때, 방문 영패를 환경 변수 GITHUB_TOKEN
로 설정하면 이 항목이 우선입니다.
시간에서 시작
tig 사용자$HOME/.tigrc
라면 다음 버튼 귀속 설정을 미리 하는 것이 편리합니다.bind main O @tosa %(commit)
bind blame O @tosa %(commit)
홈 보기와 blame 보기에서 O (Shift+o) 를 누르면 커서 위치의 제출 해시에서pull request URL을 열 수 있습니다.
URL 출력
-u
또는 --url
를 지정하면 URL이 출력됩니다.% tosa -u c97e6909
https://github.com/kyoshidajp/tosa/pull/13
사용 상황으로 ssh를 통해 연결된 원격 기기에서 브라우저가 직접 시작되지 않을 경우를 가정합니다.
API URL 출력
-a
또는 --apiurl
를 지정하면 API URL이 출력됩니다.$ tosa -a c97e6909
https://api.github.com/repos/kyoshidajp/tosa/issues/13
이것을 컬에게 건네주면 jq성형을 받을 수 있다.다음은 pull request 제목을 가져오는 예입니다.$ curl -s `tosa -a c97e6909` | jq -r '.title'
Add short command option and usage
API에서 가져올 수 있는 항목은 참조Issues | GitHub Developer Guide하십시오.
예를 들어 상세한 발행 수첩을 자동으로 생성한다.지난번에 발표된 수정 내용에 대한git-log를 사용하여 산열 목록을 제출하고pullrequest 데이터로 수정 개요와 수정된 사용자 정보를 출력할 수 있도록 합니다.
pull request는 어떻게 얻습니까?
Giithub APISearch issues에서 검색 키워드'해시 제출''창고''pull request 상태'를 지정하여 검색합니다.
예를 들어 토사의 제출 해시c97e6909
의 검색 조건 매개 변수q
는 q=repo:kyoshidajp/tosa pr:merged c97e6909
이다.
URL 인코딩이 수행된 최종 검색 URL은 다음과 같습니다.
이 응답에 포함된 html_url
은pull request의 URL입니다.현재 응답 items
은 여러 개로 되돌아오지만, 앞의 1개는 일치해야 합니다.
API에 대한 액세스와 데이터를 Go API의 클라이언트 라이브러리go-github에서 가져옵니다.
참고로 API가 아닌 일반적인 웹 검색을 통해서도 얻을 수 있다.검색 상자에서 아까 repo:kyoshidajp/tosa pr:merged c97e6909
로 검색하십시오.
검색 결과의 페이지 URL은 여기에 있습니다.
참고할 수 있는 아이디어, 도구
Giit 기반 Code ding Tips-cookpad 개발자 블로그
제출 산열에서pull request 페이지를 열 생각은 원래 이곳에서 소개한 것이기 때문에 매우 편리하게 이용할 수 있다.다만, 간혹 무관한pull request 페이지가 뜨거워지면서 창고를 바꿀 때마다 URL$YOUR_REPO_URL
을 설정해야 하는 불편함이 있었다.
또 루비 가입을 전제로 조개껍질을 편입하는 형태도 있는데, 당시 재적한 팀(루비가 설치되지 않은 윈도 환경)이 침투하지 않았던 것으로 기억한다.
pocke/whichpr: Find a pull request form commit hash.
검색 실현 부분은 이쪽 도구를 참고했습니다.다만, OSS의 구성을 개인적으로 변경하고 싶은 상시 포크의 창고가 잘 작동하지 않고, API URL 출력 등의 기능을 추가해 새롭게 제작했다.
tcnksm/ghr: Upload multiple artifacts to GitHub Release in parallel
특히 Go CLI 설치 상태 코드, 디버그 함수, Makefile 쓰기 방법에 대해서는 전혀 모르기 때문에 참고합니다.또한 Release용 업로드에서 실제로 사용됩니다.
앞으로의 과제
GitLab, Bitbucket 등 기타 git 서비스 지원
깃허브뿐만 아니라 깃랩과 비트bucket 등 깃허핑 서비스를 이용하는 이용자가 일정 수 있어 활용이 가능하다.
다만, 조금 조사해보니 GitLab에서 제출 주제만 찾은 것 같고 merge reuqest는 찾지 못했다.다른 서비스는 아직 조사하지 않았습니다.
고속화
현재 API의 요청은 시간이 오래 걸렸고 특히 포크의 창고 데이터를 가져올 때 최대 3차례의 네트워크 접근을 하기 때문에 매우 늦을 것이다.
$ brew tap kyoshidajp/tosa
$ brew install tosa
$ go get -u github.com/kyoshidajp/tosa
매개 변수에 제출 산열을 지정하면 기본 브라우저에서pull request 페이지를 열 것입니다.
$ tosa c97e6909
처음 시작할 때 Giithub의 로그인 알림을 표시하려면 사용자 이름, 비밀번호, 2단계 인증 코드를 입력해야 합니다.이는 Giithub API가 개인 저장소를 포함하는 검색에 사용되기 때문입니다.CI 등을 사용하여 실행할 때, 방문 영패를 환경 변수 GITHUB_TOKEN
로 설정하면 이 항목이 우선입니다.시간에서 시작
tig 사용자
$HOME/.tigrc
라면 다음 버튼 귀속 설정을 미리 하는 것이 편리합니다.bind main O @tosa %(commit)
bind blame O @tosa %(commit)
홈 보기와 blame 보기에서 O (Shift+o) 를 누르면 커서 위치의 제출 해시에서pull request URL을 열 수 있습니다.URL 출력
-u
또는 --url
를 지정하면 URL이 출력됩니다.% tosa -u c97e6909
https://github.com/kyoshidajp/tosa/pull/13
사용 상황으로 ssh를 통해 연결된 원격 기기에서 브라우저가 직접 시작되지 않을 경우를 가정합니다.API URL 출력
-a
또는 --apiurl
를 지정하면 API URL이 출력됩니다.$ tosa -a c97e6909
https://api.github.com/repos/kyoshidajp/tosa/issues/13
이것을 컬에게 건네주면 jq성형을 받을 수 있다.다음은 pull request 제목을 가져오는 예입니다.$ curl -s `tosa -a c97e6909` | jq -r '.title'
Add short command option and usage
API에서 가져올 수 있는 항목은 참조Issues | GitHub Developer Guide하십시오.예를 들어 상세한 발행 수첩을 자동으로 생성한다.지난번에 발표된 수정 내용에 대한git-log를 사용하여 산열 목록을 제출하고pullrequest 데이터로 수정 개요와 수정된 사용자 정보를 출력할 수 있도록 합니다.
pull request는 어떻게 얻습니까?
Giithub APISearch issues에서 검색 키워드'해시 제출''창고''pull request 상태'를 지정하여 검색합니다.
예를 들어 토사의 제출 해시c97e6909
의 검색 조건 매개 변수q
는 q=repo:kyoshidajp/tosa pr:merged c97e6909
이다.
URL 인코딩이 수행된 최종 검색 URL은 다음과 같습니다.
이 응답에 포함된 html_url
은pull request의 URL입니다.현재 응답 items
은 여러 개로 되돌아오지만, 앞의 1개는 일치해야 합니다.
API에 대한 액세스와 데이터를 Go API의 클라이언트 라이브러리go-github에서 가져옵니다.
참고로 API가 아닌 일반적인 웹 검색을 통해서도 얻을 수 있다.검색 상자에서 아까 repo:kyoshidajp/tosa pr:merged c97e6909
로 검색하십시오.
검색 결과의 페이지 URL은 여기에 있습니다.
참고할 수 있는 아이디어, 도구
Giit 기반 Code ding Tips-cookpad 개발자 블로그
제출 산열에서pull request 페이지를 열 생각은 원래 이곳에서 소개한 것이기 때문에 매우 편리하게 이용할 수 있다.다만, 간혹 무관한pull request 페이지가 뜨거워지면서 창고를 바꿀 때마다 URL$YOUR_REPO_URL
을 설정해야 하는 불편함이 있었다.
또 루비 가입을 전제로 조개껍질을 편입하는 형태도 있는데, 당시 재적한 팀(루비가 설치되지 않은 윈도 환경)이 침투하지 않았던 것으로 기억한다.
pocke/whichpr: Find a pull request form commit hash.
검색 실현 부분은 이쪽 도구를 참고했습니다.다만, OSS의 구성을 개인적으로 변경하고 싶은 상시 포크의 창고가 잘 작동하지 않고, API URL 출력 등의 기능을 추가해 새롭게 제작했다.
tcnksm/ghr: Upload multiple artifacts to GitHub Release in parallel
특히 Go CLI 설치 상태 코드, 디버그 함수, Makefile 쓰기 방법에 대해서는 전혀 모르기 때문에 참고합니다.또한 Release용 업로드에서 실제로 사용됩니다.
앞으로의 과제
GitLab, Bitbucket 등 기타 git 서비스 지원
깃허브뿐만 아니라 깃랩과 비트bucket 등 깃허핑 서비스를 이용하는 이용자가 일정 수 있어 활용이 가능하다.
다만, 조금 조사해보니 GitLab에서 제출 주제만 찾은 것 같고 merge reuqest는 찾지 못했다.다른 서비스는 아직 조사하지 않았습니다.
고속화
현재 API의 요청은 시간이 오래 걸렸고 특히 포크의 창고 데이터를 가져올 때 최대 3차례의 네트워크 접근을 하기 때문에 매우 늦을 것이다.
Giit 기반 Code ding Tips-cookpad 개발자 블로그
제출 산열에서pull request 페이지를 열 생각은 원래 이곳에서 소개한 것이기 때문에 매우 편리하게 이용할 수 있다.다만, 간혹 무관한pull request 페이지가 뜨거워지면서 창고를 바꿀 때마다 URL
$YOUR_REPO_URL
을 설정해야 하는 불편함이 있었다.또 루비 가입을 전제로 조개껍질을 편입하는 형태도 있는데, 당시 재적한 팀(루비가 설치되지 않은 윈도 환경)이 침투하지 않았던 것으로 기억한다.
pocke/whichpr: Find a pull request form commit hash.
검색 실현 부분은 이쪽 도구를 참고했습니다.다만, OSS의 구성을 개인적으로 변경하고 싶은 상시 포크의 창고가 잘 작동하지 않고, API URL 출력 등의 기능을 추가해 새롭게 제작했다.
tcnksm/ghr: Upload multiple artifacts to GitHub Release in parallel
특히 Go CLI 설치 상태 코드, 디버그 함수, Makefile 쓰기 방법에 대해서는 전혀 모르기 때문에 참고합니다.또한 Release용 업로드에서 실제로 사용됩니다.
앞으로의 과제
GitLab, Bitbucket 등 기타 git 서비스 지원
깃허브뿐만 아니라 깃랩과 비트bucket 등 깃허핑 서비스를 이용하는 이용자가 일정 수 있어 활용이 가능하다.
다만, 조금 조사해보니 GitLab에서 제출 주제만 찾은 것 같고 merge reuqest는 찾지 못했다.다른 서비스는 아직 조사하지 않았습니다.
고속화
현재 API의 요청은 시간이 오래 걸렸고 특히 포크의 창고 데이터를 가져올 때 최대 3차례의 네트워크 접근을 하기 때문에 매우 늦을 것이다.
GTHub GraphiQL APIv4 지원
현재 토사 사용GitHub API v3, 지티허브는 그래픽QL에 대응하는 차세대GitHub GraphQL API v4를 공개했다.
예를 들어 tosa의 c97e 6909 병합된 pull request의 제목과 URL을 검색한 것은 다음과 같다.
query {
search(type: ISSUE, query: "repo:kyoshidajp/tosa pr:merged c97e6909", first: 1) {
edges {
node {
... on PullRequest {
title
url
}
}
}
}
}
실행 결과는 다음과 같습니다.{
"data": {
"search": {
"edges": [
{
"node": {
"title": "Add short command option and usage",
"url": "https://github.com/kyoshidajp/tosa/pull/13"
}
}
]
}
}
}
참고로 GraphQL API Explorer부터 확인할 수 있습니다.이렇게 되면 좋을 것 같지는 않지만, 그래픽QL이기 때문에 효율적인 데이터 확보를 기대할 수 있다.
예를 들어pull request에서 제출한 사용자의 가상 이미지 URL을 얻으려면curl 요청 중간에 jq 등으로 성형하는 시간이 필요하고 GiitHub GraphiQL APIv4는 필요 없고 요청 하나만 하면 된다.
Go에는 GiitHub GraphiQL APIv4에 해당하는githubql 라이브러리가 이미 있습니다.조회는 구조로 정의되기 때문에reflect 패키지를 사용하여 사용자의 요구에 따라 동적 정의를 하는 것이 가장 좋다.
Reference
이 문제에 관하여(제출 산열에서pull request 페이지를 열거나 가져오는 명령행 도구 tosa), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/kyoshidajp/items/18d5385ef8375c7bcd14텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)