Pygithub: GithubException 객체둜 μž‘μ—…ν•˜λŠ” 방법

에 λ§Œλ“  2013λ…„ 03μ›” 28일  Β·  14μ½”λ©˜νŠΈ  Β·  좜처: PyGithub/PyGithub

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...

λ‚΄κ°€ μ˜¬λ°”λ₯Έ 길을 κ°€κ³  μžˆλŠ”κ°€?

question

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

μ•ˆλ…•ν•˜μ„Έμš”,
μ˜ˆμ™Έλ₯Ό μž‘μœΌλ €κ³ ν•©λ‹ˆλ‹€.

github.GithubException.BadCredentialsException: 401 {'message': 'Bad credentials', 'documentation_url': 'https://developer.github.com/v3'}

이제 직접 μ•‘μ„ΈμŠ€ν•˜λ €κ³ ν•˜λ©΄ λ‹€μŒ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

AttributeError: type object 'GithubException' has no attribute 'BadCredentialsException'

일반적인 github μ˜ˆμ™ΈλΏλ§Œ μ•„λ‹ˆλΌμ΄ νŠΉμ • μ˜ˆμ™Έλ₯Ό μ–΄λ–»κ²Œ μž‘μ„ 수 μžˆμŠ΅λ‹ˆκΉŒ?

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

μ‚¬μš©μž @ 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)

[email protected] , www.cs.ucsb.edu/~pconrad

* SOE : 직급 및 직무에 ν•΄λ‹Ήν•˜λŠ” UC κ΅μˆ˜μ§„ μž„λͺ…
μ’…μ‹  λΆ€κ΅μˆ˜μ—κ²Œ λ³΄μ•ˆ

κ°μ‚¬ν•©λ‹ˆλ‹€ \ o / 항상 만쑱슀러운 고객을 κ·€λ‹΄μ•„ λ“£κ²Œλ˜μ–΄ κΈ°μ©λ‹ˆλ‹€!

예, μ €λŠ” λ‹Ήμ‹ μ—κ²Œ 인상을 쀄 것 κ°™μ•„μš” --- μ œκ°€ λ‹Ήμ‹ μ—κ²Œ μ§€λΆˆν•˜λŠ” κΈ‰μ—¬μ˜ 두 λ°°
μ§€κΈˆ. :-)

2013 λ…„ 3 μ›” 28 일 λͺ©μš”일 μ˜€ν›„ 1:33, Vincent Jacques
[email protected] μž‘μ„± :

κ°μ‚¬ν•©λ‹ˆλ‹€ \ o / 항상 만쑱슀러운 고객을 κ·€λ‹΄μ•„ λ“£κ²Œλ˜μ–΄ κΈ°μ©λ‹ˆλ‹€!

β€”
이 이메일에 직접 νšŒμ‹ ν•˜κ±°λ‚˜ Gi tHubμ—μ„œ ν™•μΈν•˜μ‹­μ‹œμ˜€.
.

Phill Conrad, 강사 (SOE) *, 컴퓨터 κ³Όν•™κ³Ό
μΊ˜λ¦¬ν¬λ‹ˆμ•„ λŒ€ν•™κ΅, 산타 바바라
곡동 μž„λͺ… : ν¬λ¦¬μ—μ΄ν‹°λΈŒ μŠ€ν„°λ”” λŒ€ν•™ (www.ccs.ucsb.edu)

[email protected] , www.cs.ucsb.edu/~pconrad

* SOE : 직급 및 직무에 ν•΄λ‹Ήν•˜λŠ” UC κ΅μˆ˜μ§„ μž„λͺ…
μ’…μ‹  λΆ€κ΅μˆ˜μ—κ²Œ λ³΄μ•ˆ

Huhu, 그것은 λ‚˜μ˜ κ°€μž₯ 크고 μž‘μ€ λ ˆμ΄μ¦ˆκ°€ 될 κ²ƒμž…λ‹ˆλ‹€!

λ‚˜μ—κ²Œ μ°Έκ³  :

  • ν…ŒμŠ€νŠΈ github.tests.Organization.testMembers 확인 : 403 μƒνƒœκ°€ μžˆμŠ΅λ‹ˆλ‹€.
  • ν† ν°μœΌλ‘œ 잘λͺ»λœ 인증이 λ°œμƒν•œ 경우 νŠΉμ • exn에 λŒ€ν•œ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ μΆ”κ°€

이 문제의 μΌλΆ€λŠ” 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 κ°€ μ •μƒμ μœΌλ‘œ μž‘λ™ν•©λ‹ˆλ‹€.

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