<SYSTEM_TASK:>
Given the following text description, write Python code to implement the functionality described below step by step
<END_TASK>
<USER_TASK:>
Description:
 GitHub Basics
This notebook is a starter notebook for finding information about repositories that are managed by the Jupyter team.
Step1:  GitHub Authorization
Note
Step2:  Basic API request
Step3:  Issues in an organization's repos
<ASSISTANT_TASK:>
Python Code:
import github3
import json
from os.path import join
import pprint
import requests
from urllib.parse import urljoin
Explanation: GitHub Basics
This notebook is a starter notebook for finding information about repositories that are managed by the Jupyter team.
End of explanation
TOKEN=''
gh = github3.login(token=TOKEN)
type(gh)
Explanation: GitHub Authorization
Note: Be careful. Don't check in to version control your username and password.
End of explanation
url = 'https://api.github.com/orgs/jupyterhub/repos'
response = requests.get(url)
if response.status_code != 200:
    # This means something went wrong.
    raise ApiError('GET /orgs/ {}'.format(resp.status_code))
repos = response.json()
pprint.pprint(repos)
print('The total number of repos in the organization is {}'.format(len(repos)))
# print repos
print('{0:30s}      {1:20s}\n'.format('Repository name', 'open_issues_count'))
for num in range(0, len(repos)):
    print('{0:30s}      {1:4d}\n'.format(repos[num]['name'],  repos[num]['open_issues_count']))
for num in range(0, len(repos)):
    print('{0:30s}      {1:50s}\n'.format(repos[num]['name'], repos[num]['description']))
print('{0:30s}      {1:20s}\n'.format('Repository name', 'open_issues_count'))
for num in range(0, len(repos)):
    print('{0:30s}      {1:4d}  {2:20s}\n'.format(repos[num]['name'], repos[num]['open_issues_count'], repos[num]['description']))
Explanation: Basic API request
End of explanation
def get_issues(my_org, my_repo):
    for issue in gh.iter_repo_issues(owner=my_org, repository=my_repo):
        print(issue.number, issue.title)    
my_org = 'jupyterhub'
my_repo = 'configurable-http-proxy'
get_issues(my_org, my_repo)
my_org = 'jupyterhub'
my_repo = 'jupyterhub'
get_issues(my_org, my_repo)
subgroup={'authenticators':['oauthenticator', 'ldapauthenticator'],
         'spawners':['dockerspawner', 'sudospawner', 'kubespawner', 'batchspawner', 'wrapspawner', 'systemdspawner'],
         'deployments':['jupyterhub-deploy-docker', 'jupyterhub-deploy-teaching', 'jupyterhub-deploy-hpc', 'jupyterhub-example-kerberos'],
         'fundamentals':['jupyterhub', 'configurable-http-proxy', 'hubshare', 'jupyterhub-labextension'],
         'community':['jupyterhub-tutorial', 'jupyterhub-2016-workshop'],
        }
print(subgroup['authenticators'])
Explanation: Issues in an organization's repos
End of explanation
<END_TASK>