PyGithub Programming Model: Difference between revisions

From NovaOrdis Knowledge Base
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)

Authentication with Username and Password

Authentication with JWT

Configuring Retry