GithubException κ°μ²΄λ‘ μμ νλ λ°©λ²μ λν μ§λ¬Έμ΄ μμ΅λλ€.
μν μ½λ :
μν:
ν = org.create_team (teamName,
[],
"νΈμ");
eλ‘ GithubExceptionμ μ μΈνκ³ :
μΈμ (e)
(e) μΈμνλ©΄ λ€μμ μ»μ΅λλ€.
422 {u'message': u'Validation Failed', u'errors': [{u'field': u'name', u'code': u'already_exists', u'resource': u'Team'}]}
λ΄κ° ν μ μκΈ°λ₯Ό μνλ κ²μ GithubException κ°μ²΄μ μμ± λ° λ©€λ² ν¨μ λͺ©λ‘μ νμΈνμ¬ νΉμ μ΄λ²€νΈλ₯Ό νμΈνκΈ° μν΄ λ€μν νλͺ©μ μΆμΆ ν μ μλλ‘νλ κ²μ λλ€ ...νμ§λ§ λ¬Έμμμ μ°Ύμ μ μμ΅λλ€. PyGithub API. PyGithub APIμ κΈ°λ³Έ github RESTful API κ°μ κ΄κ³λ₯Ό λ μ μ΄ν΄ν΄μΌ ν μλ μμ΅λλ€.
μμ€μμ GithubException κ°μ²΄μ λ κ°μ§ μμ±μ΄μλ κ²μΌλ‘ 보μ λλ€.
https://github.com/jacquev6/PyGithub/blob/master/github/GithubException.py
data
μΆλ ₯κ³Ό ν¨κ» 422κ° μν (μλ§ APIμ μν΄ λ°ν λμμ΅λκΉ?)μ΄κ³ λ°μ΄ν°κ° μ¬μ κ°μ²΄ (μλ§ λ°ν λ JSON μΈμ½λ©μΌκΉμ?) μΈ κ²μ²λΌ 보μ΄μ§λ§ μ΄λ μΆμΈ‘ μΌλΏμ λλ€.
μμ€μμ GithubExceptionμ΄ λ°μνλ μ μΌν μ₯μλ Requester.py --- λ΄ μΆμΈ‘μ νμΈνλ κ²½ν₯μ΄ μμ΅λλ€.
github APIμ λν λ¬Έμ μ΄λκ°μ JSON κ°μ²΄μμ μ°Ύμ κ²μΌλ‘ μμλλ ν€λ₯Ό μ°Ύμ μμλ κ³³μ΄ μμ΅λκΉ? μ¦,μ΄ κ²½μ° "λ©μμ§", "μ€λ₯", "μ€λ₯", "νλ"λ΄μμ , "μ½λ", "λ°"μμ "?
μν μ°©μ€ μΆμΈ‘μΌλ‘ μ΄λ κ² μ½λλ₯Ό μ νμ§λ§ "ν΄ν€ --- λ΄κ°μ΄ μΌμ μ λλ‘νκ³ μλμ§ μλ€λ©΄ λ νΈν ν λ° ..."
team = False # Sentinel to see if it succeeded or failed
try:
team = org.create_team(teamName,
[],
"push");
print(" team {0} created...".format(teamName),end='')
except GithubException as e:
if (e.data['errors'][0]['code']=='already_exists'):
print(" team {0} already exists...".format(teamName),end='')
else:
print (e)
if (team != False):
# do something with team...
λ΄κ° μ¬λ°λ₯Έ κΈΈμ κ°κ³ μλκ°?
μ¬μ©μ @ jacquev6 μ λ¬Έμ # 82μ λν μ견μμμ΄ λ¬Έμ λ₯Ό λΆλΆμ μΌλ‘ ν΄κ²°νμ΅λλ€.
μ΄κ²μ μ°ΈμΌλ‘ μ¬λ°λ₯Έ κΈΈμ λλ€. μ¬κΈ°μ λͺ κ°μ§ μΈκΈμ΄ μμ΅λλ€.
status
λ° data
μ λν΄ λ§μ΅λλ€. HTTP μνμ λμ½λ© λ json νμ΄λ‘λμ
λλ€. λ°μν μμλ μ€λ₯ μ νμ λν΄ μ ν λͺ°λκΈ° λλ¬Έμμ΄ λ°©λ²μ μ¬μ©νμ¬ PyGithubμ λ€λ₯Έ λͺ¨λ ν΄λμ€ μμμ²λΌ νΉμ μμ±μ λ§λ€ μ μμμ΅λλ€. ( NamedUser
μλ νμ name
μ΄ μμ§λ§ μμΈ / μ€λ₯μ λν μ§μμ μμ΅λλ€.)
λ°λΌμ Github API v3κ° 400 μ΄μμ HTTP μνλ₯Ό λ°ν ν λλ§λ€μ΄ μνμ νμ΄λ‘λλ‘ GithubException
λ₯Ό μ¬λ¦½λλ€.
μ€λ Github API v3 λ¬Έμλ₯Ό νμΈνλ©΄ μ€λ₯μ λν λͺ λ§λλ₯Ό λ³Ό μ μμ΅λλ€. http://developer.github.com/v3/#client -errorsνμ§λ§ μ€μ λ‘λ λ λ§μ μ€λ₯κ°μμ μ μμ΅λλ€. μλ₯Ό λ€μ΄ μ‘΄μ¬νμ§ μλ κ°μ²΄μ λν 404 μ€λ₯, μλͺ»λ μΈμ¦μ λν 401 λ±μ λλ€.
μ΄μ μ€λ₯λ₯Ό μ‘°κΈ λ μκ³ μμΌλ―λ‘ GithubException
μ νμ ν΄λμ€λ₯Ό λ§λ€κ³ νΉμ μ νμ μ€λ₯λ₯Ό λ³Ό λμ΄λ₯Ό λ°μμν€λ κ²μ
λλ€. μ΄λ κ²νλ©΄ ν΄λΌμ΄μΈνΈκ° νΉμ μ€λ₯ ν΄λμ€λ₯Ό except
μ μκ³ λ€λ₯Έ ν΄λμ€κ° μ€ν μλ‘ μ¬λΌκ° μ μμ΅λλ€.
λ²μ 1.14.0μμμ΄λ₯Ό μννκ³ http://jacquev6.github.com/PyGithub/ μ λ¬Έμν ν κΈ°νλ‘ μΌκ² μ΅λλ€
topic/SpecificExceptions
μ§μ μμ ν κ²μ
λλ¨ν μ리μ
λλ€. λ€μ ν λ², λͺ¨λ λ
Έλ ₯μ κ°μ¬ λ리며
μ°μν μννΈμ¨μ΄ μ€κ³ κΈ°μ . μ νμ λΉλ²νκ²
μ μ©νκ³ μ΄ν΄νκΈ° μ¬μ° λ©°μ΄ λ¬Έμ λ₯Ό ν΄κ²°νλ©΄
λ³΄λ€ λμ.
2013 λ
3 μ 28 μΌ λͺ©μμΌ μ€ν 12:59, Vincent Jacques
[email protected] μμ± :
λΈλμΉ μ£Όμ / SpecificExcept ions μμ κ·Έλ κ² ν κ²μ λλ€
β
μ΄ μ΄λ©μΌμ μ§μ λ΅μ₯νκ±°λ Gi tHubμμ νμΈνμΈμ .https : //github.com/jacquev6/PyGithub/issues/152#issuecomment -15611026
.
Phill Conrad, κ°μ¬ (SOE) *, μ»΄ν¨ν° κ³Όνκ³Ό
μΊλ¦¬ν¬λμ λνκ΅, μ°ν λ°λ°λΌ
곡λ μλͺ
: ν¬λ¦¬μμ΄ν°λΈ μ€ν°λ λν (www.ccs.ucsb.edu)
* SOE : μ§κΈ λ° μ§λ¬΄μ ν΄λΉνλ UC κ΅μμ§ μλͺ
μ’
μ λΆκ΅μμκ² λ³΄μ
κ°μ¬ν©λλ€ \ o / νμ λ§μ‘±μ€λ¬μ΄ κ³ κ°μ κ·λ΄μ λ£κ²λμ΄ κΈ°μ©λλ€!
μ, μ λ λΉμ μκ² μΈμμ μ€ κ² κ°μμ --- μ κ° λΉμ μκ² μ§λΆνλ κΈμ¬μ λ λ°°
μ§κΈ. :-)
2013 λ
3 μ 28 μΌ λͺ©μμΌ μ€ν 1:33, Vincent Jacques
[email protected] μμ± :
κ°μ¬ν©λλ€ \ o / νμ λ§μ‘±μ€λ¬μ΄ κ³ κ°μ κ·λ΄μ λ£κ²λμ΄ κΈ°μ©λλ€!
β
μ΄ μ΄λ©μΌμ μ§μ νμ νκ±°λ Gi tHubμμ νμΈνμμμ€.
.
Phill Conrad, κ°μ¬ (SOE) *, μ»΄ν¨ν° κ³Όνκ³Ό
μΊλ¦¬ν¬λμ λνκ΅, μ°ν λ°λ°λΌ
곡λ μλͺ
: ν¬λ¦¬μμ΄ν°λΈ μ€ν°λ λν (www.ccs.ucsb.edu)
* SOE : μ§κΈ λ° μ§λ¬΄μ ν΄λΉνλ UC κ΅μμ§ μλͺ
μ’
μ λΆκ΅μμκ² λ³΄μ
Huhu, κ·Έκ²μ λμ κ°μ₯ ν¬κ³ μμ λ μ΄μ¦κ° λ κ²μ λλ€!
λμκ² μ°Έκ³ :
μ΄ λ¬Έμ μ μΌλΆλ 1.14.0μμ μ 곡λμμ§λ§ λͺ κ°μ§ λ€λ₯Έ νΉμ μμΈ μ νμ μΆκ°νκΈ° μν΄ λ²μ 1.15.0μΌλ‘ μ μ§ν©λλ€.
μμ± ν μλ‘μ΄ νΉμ μμΈ : HTTP 403 "μλͺ»λ μ¬μ©μ μμ΄μ νΈ"(# 160 μ°Έμ‘°)
μ§κΈμ΄ λ¬Έμ λ₯Ό μ’ λ£νκ³ μμ§λ§ νΉμ μ νμ μμΈκ° λ°μνλ©΄ κ³μν΄μ μΆκ°νκ² μ΅λλ€.
μλ
νμΈμ,
μμΈλ₯Ό μ‘μΌλ €κ³ ν©λλ€.
github.GithubException.BadCredentialsException: 401 {'message': 'Bad credentials', 'documentation_url': 'https://developer.github.com/v3'}
μ΄μ μ§μ μ‘μΈμ€νλ €κ³ νλ©΄ λ€μ μ€λ₯κ° λ°μν©λλ€.
AttributeError: type object 'GithubException' has no attribute 'BadCredentialsException'
μΌλ°μ μΈ github μμΈλΏλ§ μλλΌμ΄ νΉμ μμΈλ₯Ό μ΄λ»κ² μ‘μ μ μμ΅λκΉ?
μλ νμΈμ,
μμΈλ₯Ό μ‘μΌλ €κ³ ν©λλ€.github.GithubException.BadCredentialsException: 401 {'message': 'Bad credentials', 'documentation_url': 'https://developer.github.com/v3'}
μ΄μ μ§μ μ‘μΈμ€νλ €κ³ νλ©΄ λ€μ μ€λ₯κ° λ°μν©λλ€.
AttributeError: type object 'GithubException' has no attribute 'BadCredentialsException'
μΌλ°μ μΈ github μμΈλΏλ§ μλλΌμ΄ νΉμ μμΈλ₯Ό μ΄λ»κ² μ‘μ μ μμ΅λκΉ?
@NicoHood λ github.BadCredentialsException
-μμ€ μ½λμμ λ λͺ
νν©λλ€.
GithubExceptionμ ν΄λμ€μ΄μ λͺ¨λμ΄λ©° ν΄λμ€μ μ 체 λͺ¨λ κ²½λ‘λ github.GithubException.GithubExceptionμ΄λ©° BadCredentialsExceptionμ κ°μ Έμ¬ μ μμ΅λλ€. λͺ¨λ μμΈλ githubλ₯Ό ν΅ν΄ λ΄λ³΄λ΄ μ§λ―λ‘ from github import BadCredentialsException
κ° μ μμ μΌλ‘ μλν©λλ€.
κ°μ₯ μ μ©ν λκΈ
μλ νμΈμ,
μμΈλ₯Ό μ‘μΌλ €κ³ ν©λλ€.
μ΄μ μ§μ μ‘μΈμ€νλ €κ³ νλ©΄ λ€μ μ€λ₯κ° λ°μν©λλ€.
μΌλ°μ μΈ github μμΈλΏλ§ μλλΌμ΄ νΉμ μμΈλ₯Ό μ΄λ»κ² μ‘μ μ μμ΅λκΉ?