PyGithub Programming Model: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
Line 1: Line 1:
=Internal=
=Internal=
* [[Python_Package_PyGithub#Subjects|PyGithub]]
* [[Python_Package_PyGithub#Subjects|PyGithub]]
=Authentication=
Various authentication mechanism are invoked by appropriately configuring the main <code>[[PyGithub_Concepts#Github|Github]]</code> class.
==Authentication with Personal Access Token (PAT)==
<syntaxhighlight lang='py'>
github_pat = os.environ.get('GITHUB_PAT')
if not github_pat:
    raise ValueError("'GITHUB_PAT' not found in environment")
github = Github(base_url='https://github.com/api/v3', login_or_token=github_pat)
</syntaxhighlight>
==Authentication with Username and Password==
<syntaxhighlight lang='py'>
github = Github(base_url='https://github.com/api/v3', login_or_token='someusername', password='somepassword')
</syntaxhighlight>
Note that the invocation '''does not''' fail if the username or the password is invalid. Subsequent calls are made as unauthenticated user.
==Authentication with JWT==
=Configuring Retry=
=Configuring Retry=
<syntaxhighlight lang='py'>
<syntaxhighlight lang='py'>

Revision as of 23:51, 15 May 2023

Internal

Configuring Retry

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='...', retry=retry, ...)