<p>PyGithub 예제 μ‚¬μš©λ²•</p>

에 λ§Œλ“  2018λ…„ 08μ›” 21일  Β·  19μ½”λ©˜νŠΈ  Β·  좜처: PyGithub/PyGithub

동기 λΆ€μ—¬:

862 #456 #321 #584 #762

PyGithub은 ν›Œλ₯­ν•œ λΌμ΄λΈŒλŸ¬λ¦¬μ΄μ§€λ§Œ μ²˜μŒμ—λŠ” 직관적이지 μ•Šμ„ 수 μžˆμŠ΅λ‹ˆλ‹€. λͺ¨λ“  μ‚¬λžŒμ΄ Github API μ „λ¬Έκ°€λŠ” μ•„λ‹ˆλ―€λ‘œ μ‹œμž‘ν•˜λŠ” 데 도움이 될 λͺ‡ 가지 μž‘μ—… 예제(λ ˆμ‹œν”Ό)λ₯Ό μ œκ³΅ν•˜λ €κ³  ν•©λ‹ˆλ‹€.

μŠ€μΌˆλ ˆν†€μ΄ μ—¬κΈ° 에 μ„€μ •λ˜μ—ˆμœΌλ©° 예제 λ¬Έμ„œλŠ” 이미 ν‰μ†Œμ™€ 같이 readthedocs에 μžˆμŠ΅λ‹ˆλ‹€.

https://pygithub.readthedocs.io/en/latest/examples.html

λͺ©λ‘μ΄ ν™•μž₯될 것이며 더 λ§Žμ€ 예λ₯Ό μΆ”κ°€ν•˜κΈ° μœ„ν•œ PR은 맀우 ν™˜μ˜ν•©λ‹ˆλ‹€ πŸ˜„

μ—¬κΈ°μ—μ„œ 닀루지 μ•Šμ€ 예λ₯Ό 보렀면 λŒ“κΈ€μ„ λ‚¨κ²¨μ£Όμ„Έμš”.

documentation good first issue high priority

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ‚˜λŠ” μ§€κΈˆ μ“°κΈ° 쑰직의 μ˜ˆμž…λ‹ˆλ‹€

λͺ¨λ“  19 λŒ“κΈ€

@sfdye λŠ” 둜그인 예제λ₯Ό

방금 PyGithub으둜 μ‹œμž‘ν–ˆκ³  λͺ‡ 가지 예제λ₯Ό μ°Ύμ•˜ μœΌλ―€λ‘œ λΆ„λͺ…νžˆ 일뢀 μž‘μ—…μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. κ°μ‚¬ν•©λ‹ˆλ‹€!

ν•˜μ§€λ§Œ pushevent 및 pullrequestevent 와 같은 이벀트λ₯Ό μˆ˜μ‹  λŒ€κΈ°ν•˜λŠ” 방법에 λŒ€ν•œ μ˜ˆλŠ” 보이지 μ•ŠμŠ΅λ‹ˆλ‹€ . 이에 λŒ€ν•œ 예λ₯Ό μΆ”κ°€ν•  수 μžˆμŠ΅λ‹ˆκΉŒ?

@LeviMatus κ°μ‚¬ν•©λ‹ˆλ‹€!

이 λ¬Έμ œλŠ” 졜근 ν™œλ™μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ— μžλ™μœΌλ‘œ 였래된 κ²ƒμœΌλ‘œ ν‘œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 더 이상 ν™œλ™μ΄ μ—†μœΌλ©΄ νμ‡„λ©λ‹ˆλ‹€. κ·€ν•˜μ˜ 기여에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

이것은 였래된 것이 μ•„λ‹™λ‹ˆλ‹€.

λ‚˜λŠ” μ§€κΈˆ μ“°κΈ° 쑰직의 μ˜ˆμž…λ‹ˆλ‹€

이 λ¬Έμ œλŠ” 졜근 ν™œλ™μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ— μžλ™μœΌλ‘œ 였래된 κ²ƒμœΌλ‘œ ν‘œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 더 이상 ν™œλ™μ΄ μ—†μœΌλ©΄ νμ‡„λ©λ‹ˆλ‹€. κ·€ν•˜μ˜ 기여에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

μ €λŠ” PyGithub SDKλ₯Ό 처음 μ‚¬μš©ν•˜κ³  μ•„λž˜ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ €κ³  ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ‚¬μš©λ²•μ„ μ•ŒκΈ° μœ„ν•΄ λ¬Έμ„œλ₯Ό μ‚΄νŽ΄λ³΄λŠ” 데 어렀움이 μžˆμŠ΅λ‹ˆλ‹€.

  1. νŠΉμ • λΆ„κΈ°μ—μ„œ 파일 λ‚΄μš© κ°€μ Έμ˜€κΈ°

λ™λ“±ν•œ λͺ…령쀄:

git checkout <<branch>> and then get file content

문제:

이 SDKλ₯Ό μ‚¬μš©ν•˜μ—¬ λ§ˆμŠ€ν„° λΆ„κΈ°μ—μ„œ 파일 μ½˜ν…μΈ λ₯Ό κ°€μ Έμ˜¬ 수 μžˆμ§€λ§Œ νŠΉμ • λΆ„κΈ°μ—μ„œλŠ” κ°€μ Έμ˜¬ 수 μ—†μŠ΅λ‹ˆλ‹€.

  1. repo νƒœκ·Έ 및 μ„ΈλΆ€ 정보

λ™λ“±ν•œ λͺ…령쀄:

git tag -v <<tag_id>>

  1. ν•΄λ‹Ή 파일 μ—…λ°μ΄νŠΈ

μ—¬κΈ° λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€. https://pygithub.readthedocs.io/en/latest/examples/Repository.html#update-a-file-in-the-repository

  1. 컀밋에 λŒ€ν•œ μ‚¬μš©μž μ„ΈλΆ€ 정보 μ—…λ°μ΄νŠΈ
git config user.email "[email protected]"
git config user.name "cicd"
git commit --amend --reset-author --no-edit
  1. Git은 λ‹€λ₯Έ μžλ™ν™”κ°€ λ‹€λ₯Έ νŒŒμΌμ„ μ»€λ°‹ν–ˆμ„ 수 μžˆμœΌλ―€λ‘œ μ»€λ°‹ν•˜κΈ° 전에 ν•΄λ‹Ή λΆ„κΈ°λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.
  2. λΈŒλžœμΉ˜μ—μ„œ git 컀밋
git pull --no-edit
git add $FILE_NAME
git commit -m "updating $FILE_NAME"
git pull --no-edit && git push origin

λ‚˜λŠ” λ˜ν•œ κ·Έκ²ƒμ„ν•˜κΈ° μœ„ν•΄μ΄ sdk의 λ©”μ†Œλ“œ / APIλ₯Ό 찾으렀고 λ…Έλ ₯ν•˜κ³  μžˆμ§€λ§Œ λˆ„κ΅°κ°€κ°€ μ€€λΉ„λ˜μ–΄ μžˆλ‹€λ©΄ 같은 것을 λ„μ™€μ£Όμ„Έμš”.

이 λ¬Έμ œλŠ” 졜근 ν™œλ™μ΄ μ—†μ—ˆκΈ° λ•Œλ¬Έμ— μžλ™μœΌλ‘œ 였래된 κ²ƒμœΌλ‘œ ν‘œμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€. 더 이상 ν™œλ™μ΄ μ—†μœΌλ©΄ νμ‡„λ©λ‹ˆλ‹€. κ·€ν•˜μ˜ 기여에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.

μ•ˆλ…•ν•˜μ„Έμš”, μ €λŠ” 비ꡐ적 μƒˆλ‘œμš΄ 개발자이며 λ§Žμ€ 도움이 되고 μžˆμŠ΅λ‹ˆλ‹€. github 앱에 λŒ€ν•œ 예제λ₯Ό λ§Œλ“€ κ³„νšμ΄ μžˆλŠ” μ‚¬λžŒμ΄ μžˆμŠ΅λ‹ˆκΉŒ? 감사 ν•΄μš”!

μ €λŠ” PyGithub SDKλ₯Ό 처음 μ‚¬μš©ν•˜κ³  μ•„λž˜ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λ €κ³  ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ‚¬μš©λ²•μ„ μ•ŒκΈ° μœ„ν•΄ λ¬Έμ„œλ₯Ό μ‚΄νŽ΄λ³΄λŠ” 데 어렀움이 μžˆμŠ΅λ‹ˆλ‹€.

  1. νŠΉμ • λΆ„κΈ°μ—μ„œ 파일 λ‚΄μš© κ°€μ Έμ˜€κΈ°

λ™λ“±ν•œ λͺ…령쀄:

git checkout <<branch>> and then get file content

문제:

이 SDKλ₯Ό μ‚¬μš©ν•˜μ—¬ λ§ˆμŠ€ν„° λΆ„κΈ°μ—μ„œ 파일 μ½˜ν…μΈ λ₯Ό κ°€μ Έμ˜¬ 수 μžˆμ§€λ§Œ νŠΉμ • λΆ„κΈ°μ—μ„œλŠ” κ°€μ Έμ˜¬ 수 μ—†μŠ΅λ‹ˆλ‹€.

  1. repo νƒœκ·Έ 및 μ„ΈλΆ€ 정보

λ™λ“±ν•œ λͺ…령쀄:

git tag -v <<tag_id>>

  1. ν•΄λ‹Ή 파일 μ—…λ°μ΄νŠΈ

μ—¬κΈ° λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€. https://pygithub.readthedocs.io/en/latest/examples/Repository.html#update-a-file-in-the-repository

  1. 컀밋에 λŒ€ν•œ μ‚¬μš©μž μ„ΈλΆ€ 정보 μ—…λ°μ΄νŠΈ
git config user.email "[email protected]"
git config user.name "cicd"
git commit --amend --reset-author --no-edit
  1. Git은 λ‹€λ₯Έ μžλ™ν™”κ°€ λ‹€λ₯Έ νŒŒμΌμ„ μ»€λ°‹ν–ˆμ„ 수 μžˆμœΌλ―€λ‘œ μ»€λ°‹ν•˜κΈ° 전에 ν•΄λ‹Ή λΆ„κΈ°λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.
  2. λΈŒλžœμΉ˜μ—μ„œ git 컀밋
git pull --no-edit
git add $FILE_NAME
git commit -m "updating $FILE_NAME"
git pull --no-edit && git push origin

λ‚˜λŠ” λ˜ν•œ κ·Έκ²ƒμ„ν•˜κΈ° μœ„ν•΄μ΄ sdk의 λ©”μ†Œλ“œ / APIλ₯Ό 찾으렀고 λ…Έλ ₯ν•˜κ³  μžˆμ§€λ§Œ λˆ„κ΅°κ°€κ°€ μ€€λΉ„λ˜μ–΄ μžˆλ‹€λ©΄ 같은 것을 λ„μ™€μ£Όμ„Έμš”.

μ•ˆλ…•! νŠΉμ • μ§€μ μ˜ μ½˜ν…μΈ λ„ μ–»μœΌλ €κ³  ν•©λ‹ˆλ‹€. 당신은 그것을 μ–»μ—ˆμŠ΅λ‹ˆκΉŒ? 감사 ν•΄μš”!

@estagumor 이 닡변이 μ—¬μ „νžˆ ν•„μš”ν•œ 경우 핡심은 get_contents ν•¨μˆ˜μ˜ ref λ§€κ°œλ³€μˆ˜ μž…λ‹ˆλ‹€. 기본값은 "λ§ˆμŠ€ν„°"μž…λ‹ˆλ‹€. λ‹€μŒμ€ scikit-learn λ¦¬ν¬μ§€ν† λ¦¬μ˜ "0.6.X" λΆ„κΈ° λ‚΄μš©μ„ κ°€μ Έμ˜€λŠ” μ˜ˆμž…λ‹ˆλ‹€.

from github import Github

g = Github("USERNAME", "PASSWORD")
repo = g.get_repo("scikit-learn/scikit-learn")
repo.get_contents("", ref = "0.6.X")

@sfdye 방금

λ‚˜λŠ” 예λ₯Ό λ“€μ–΄ μ‹œλ„ν–ˆλ‹€ :
g.get_repo('SECRET/SECRET').get_branch('λ§ˆμŠ€ν„°').add_required_signatures()

@qbits-rwx ν•„μš”ν•œ 방법은 λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.
https://pygithub.readthedocs.io/en/latest/github_objects/Branch.html#github.Branch.Branch.edit_protection

https://developer.github.com/v3/repos/branches/#update -branch-protection

예, 이것은 νŠΈλ¦­μ„ ν–ˆμŠ΅λ‹ˆλ‹€. λΆˆν–‰νžˆλ„ μ„œλͺ…λœ 컀밋 μš”κ΅¬κ°€ κ΅¬ν˜„λ˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€. λͺ¨λ“  지점에 μ„€μ •ν•΄μ•Ό ν•˜λŠ” μ •μ±…μ΄λ―€λ‘œ 있으면 쒋을 κ²ƒμž…λ‹ˆλ‹€.

자유둭게 FR λ˜λŠ” PR을 λ³΄λ‚΄μ£Όμ‹­μ‹œμ˜€.

1628 ν•˜λ‚˜μ˜ 컀밋에 μ—¬λŸ¬ νŒŒμΌμ„ μ—…λ‘œλ“œν•˜λŠ” 전체 예

이봐, λ‚˜λŠ” Pull Requests 예제λ₯Ό μ‚΄νŽ΄λ³΄κ³  μžˆμ—ˆλŠ”λ° HTML 둜 pull requestλ₯Ό 얻을 수 μžˆλŠ” 방법이 μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ HTML URL을 Github API 쿼리둜 λ³€ν™˜ν•˜λŠ” 데 μ‚¬μš©ν•  수 μžˆλŠ” κΈ°λŠ₯이 μžˆμŠ΅λ‹ˆκΉŒ?

μ΄λŸ¬ν•œ 예λ₯Ό λ“€μ–΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€! λ‚΄κ°€ λ†“μΉ˜κ³  μžˆλŠ” 것은 μ˜ˆμ™Έ μ²˜λ¦¬μ— λŒ€ν•œ μ˜ˆμž…λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ github.GithubException.UnknownObjectException λ₯Ό μž‘λŠ” 방법이 μ¦‰μ‹œ λͺ…ν™•ν•˜μ§€ μ•Šμ•˜μŠ΅λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰