Search code examples
pythongitgithubgithub-api

PyGithub BadCredentialsException when calling Github.get_organization()


I'm using PyGithub v1.25 to create a little webapp where members of my organization can create private repositories in our github organization. Right now, I'm getting a BadCredentialsException when trying to call the get_organization() method of the Github base class.

Here is the relevant portion of my code:

from github import Github                                                                

import settings                                                                  


GIT_OBJECT = Github(login_or_token=settings.AUTH_TOKEN)                          
ORG_OBJECT = GIT_OBJECT.get_organization('My-Organization-Name')

The auth token I am using was generated from my github user account, which has sufficient privileges to create private repositories in this organization when using the github web interface. I created the token with "user", "repo", and "admin:org" scopes selected. I am getting an error at the creation of ORG_OBJECT.

The stack trace:

File "/local/path/to/my/code/github_console/console/org_manage.py", line 10, in <module>
  ORG_OBJECT = GIT_OBJECT.get_organization(‘My-Organization-Name’)
File "/local/path/to/my/code/github_console/lib/github/MainClass.py", line 187, in get_organization
  "/orgs/" + login
File "/local/path/to/my/code/github_console/lib/github/Requester.py", line 169, in requestJsonAndCheck
  return self.__check(*self.requestJson(verb, url, parameters, headers, input, cnx))
File "/local/path/to/my/code/github_console/lib/github/Requester.py", line 177, in __check
  raise self.__createException(status, responseHeaders, output)
BadCredentialsException: 401 {u'documentation_url': u'https://developer.github.com/v3', u'message': u'Bad credentials'}

If anyone who has used either PyGithub or the github API before (or someone who is better than me at reading docs) has any insights, I appreciate the help!

Here's the PyGithub source code, in case anyone wants a look at that.


Solution

  • Doh!

    Apparently, the above displayed code works great, and I just effed up importing local settings into my settings module, so a dummy AUTH_TOKEN was being used, and of course, resulting in a BadCredentialsException.

    On the plus side, I guess the above is a demonstration of correct PyGithub usage.