2017-02-27 2 views
0

내 git 저장소를 포크 한 사람을 알 수있는 명령이나 API가 있습니까 (github.com에 있음). 나는 이것이 github.com의 UI를 사용하여 간단하다는 것을 알고 있지만 명령 행 (git bash 또는 다른 명령 행 유틸리티 사용)을 선호한다.Repo를 분기 한 사람들을 나열하는 명령어

+0

당신이 Github에서의 API에 대해 얘기하는 - API를 사용 https://github.com/frost-nzcr4/find_forks을? – awendt

+0

@awendt git bash만을 사용해서는 안된다. – BeginnersSake

+4

@BeginnersSake - "forking"이라는 개념은 git 용어가 아닙니다. github (또는 버전 제어를 관리하는 다른 서비스)에만 관련됩니다. 그 정보를 얻을 수있는 유일한 방법은 버전 관리 코드의 일부로 저장되지 않은 github에 문의하는 것입니다. – Lix

답변

1

이것은 GitHub API을 사용하여 가능합니다.

주어진 저장소에 대한 포크 목록을 얻으려면 https://api.github.com/repos/<user>/<repository>/forks에게 GET 요청을 발행하십시오. 그 결과 다른 많은 정보 중에서 저장소를 포크 한 사용자를 포함하는 JSON 문서가 생성됩니다. 리눅스 쉘에서

:

$ curl https://api.github.com/repos/<user>/<repository>/forks 

결과 JSON을 구문 분석은 (파이썬 3를 사용하여) 간단한 파이썬 스크립트로, 예를 들어, 수행 할 수 있습니다 : 다른 옵션에 대한

#!/usr/bin/env python3 

from urllib.request import urlopen 
import json 

def fork_users(user, repo): 
    url = 'http://api.github.com/repos/{u}/{r}/forks'.format(u=user, r=repo) 
    with urlopen(url) as r: 
     forks = json.loads(r.read().decode('utf8')) 
    return [f['owner']['login'] for f in forks] 

if __name__ == '__main__': 
    from sys import argv 
    user, repo = argv[1:3] 
    for user in sorted(fork_users(user, repo)): 
     print(user) 

참조 예 : this question. @Englund 포크에 의해 언급 한 바와 같이

2

포킹은 공식적인 git 언어의 일부가 아니라 github의 일부이므로 git bash를 사용하여 수행 할 수 없습니다.