PyGithub Programming Model: Difference between revisions
Jump to navigation
Jump to search
Line 2: | Line 2: | ||
* [[Python_Package_PyGithub#Subjects|PyGithub]] | * [[Python_Package_PyGithub#Subjects|PyGithub]] | ||
=Authentication= | =Authentication= | ||
Various authentication mechanism are invoked by appropriately configuring the main <code>[[PyGithub_Concepts#Github|Github]]</code> class. | |||
==Authentication with Personal Access Token (PAT)== | ==Authentication with Personal Access Token (PAT)== | ||
<syntaxhighlight lang='py'> | <syntaxhighlight lang='py'> |
Revision as of 23:19, 15 May 2023
Internal
Authentication
Various authentication mechanism are invoked by appropriately configuring the main Github
class.
Authentication with Personal Access Token (PAT)
import os
from github import Github
from urllib3 import Retry
def access_github():
# github = Github('user', 'password')
github_pat = os.environ.get('GITHUB_PAT')
if not github_pat:
raise ValueError("'GITHUB_PAT' not setup")
base_url = 'https://github.com'
api_endpoint = 'api/v3'
status_forcelist = [403, 500, 502, 504] # retry 403s, 5XX from GitHub
retry = Retry(total=10, backoff_factor=0.2, raise_on_status=True, status_forcelist=status_forcelist)
github = Github(base_url=f'{base_url}/{api_endpoint}', login_or_token=github_pat, retry=retry, per_page=100)
for repo in github.get_user().get_repos():
print(repo.name)