developer tip

Github API v3에 가장 적합한 Python 라이브러리

optionbox 2020. 10. 8. 07:56
반응형

Github API v3에 가장 적합한 Python 라이브러리


나에게 적합한 Github APIv3 용 파이썬 라이브러리를 찾고 있습니다.

GH API 문서에 언급 된 라이브러리 (python-github3) 하나를 찾았습니다 . ipython에서 한두 시간 동안 놀아 본 후 탐색 / 작업하는 것이 정말 직관적이지 않다는 것을 알았습니다. 나는 좀 더 살펴 보았고, 적어도 그러한 도서관을 쓰려고 시도하는 사람들이 꽤 많다는 것을 알았습니다. 더 유망 해 보이는 (한눈에) PyGithub다른 python-github3 , 이는 분명히 첫 번째 것과 다릅니다.

다음 날 연속해서 도서관을 시험해보기 전에 SO 커뮤니티에 해당 도서관에 대해 허용되고 결정적이고 명백한 선택이 있는지 묻고 싶었습니다.

첫 번째 라이브러리에 대해 내가 싫어했던 것은 (나에게) 직관적이지 않은 데이터 가져 오기 방법이었습니다. 페이징 및 반복 등

이와 관련하여 PyGithub는 언뜻보기에 더 매력적으로 보입니다. 객체 계층 구조를 명확하게 드릴 다운 한 다음 원하는 것을 포함하는 속성에 도달합니다.

for repo in g.get_user().get_repos(): print repo.name

그래서 공유 할 지혜의 진주가 있습니까? 라이브러리 품질을 신속하게 판단 할 수있는 기술이 부족하다는 것을 알고 있으므로 SO 커뮤니티로 전환하고 있습니다.

편집 : fwiw, 나는 PyGithub 을 사용하게 되었습니다 . 그것은 잘 작동하고 저자는 피드백과 버그 보고서를 정말로 수용합니다. :-)


당신이 초보자 파이썬 프로그래머라고 언급 했으므로 먼저 Github 라이브러리없이 JSON API를 사용하는 것이 좋습니다. 실제로 그렇게 어렵지 않으며 모든 JSON API에 동일한 접근 방식을 적용 할 수 있으므로 나중에 프로그래밍 생활에서 많은 도움이 될 것입니다. 특히 도서관을 시험하는 데 며칠이 걸릴 것 같다면.

일부 라이브러리가 사용하기 쉽지 않다는 것이 아니라 API를 직접 사용하려는 작은 추가 노력이 장기적으로 가치가있을 수 있다고 말하는 것입니다. 적어도이 라이브러리 중 일부가 "직관적이지 않은"이유를 이해하는 데 도움이 될 것입니다 (말한대로).

django 저장소의 생성 시간을 가져 오는 간단한 예제 :

import requests
import json
r = requests.get('https://api.github.com/repos/django/django')
if(r.ok):
    repoItem = json.loads(r.text or r.content)
    print "Django repository created: " + repoItem['created_at']

이것은 인기있는 요청 라이브러리를 사용하고 있습니다 . 코드에서 당연히 오류 사례도 처리해야합니다.

인증을 통한 액세스가 필요한 경우 조금 더 복잡합니다.


결국 나는 PyGithub 를 사용하게 되었습니다 . 그것은 잘 작동하고 저자는 피드백과 버그 보고서를 정말로 수용합니다. :-)

(더 나은 가시성을 위해 내 편집에서 원래 질문에 적용)


PyGitHub에 대한 문서는 끔찍하지만 제품은 훌륭합니다. 다음은 실제로 파일을 검색하고 파일 시작 부분에 새 주석으로 변경 한 다음 다시 커밋하는 간단한 샘플입니다.

from github import Github
gh = Github(login_or_token='.....', base_url='...../api/v3')
user = gh.get_user()
repo = user.get_repo("RepoName")
file = repo.get_file_contents("/App/forms.py")
decoded_content = "# Test " + "\r\n" + file.decoded_content
repo.update_file("/"RepoName"/forms.py", "Commit Comments", decoded_content, file.sha)

Libsaas 는 초보자에게 좋습니다. 좋은 문서 가 있고 사용하기 쉽습니다 . 예를 참조하십시오 . 자유롭게 기여하십시오.

참고 URL : https://stackoverflow.com/questions/10625190/most-suitable-python-library-for-github-api-v3

반응형