Python Package PyGithub: Difference between revisions

From NovaOrdis Knowledge Base
Jump to navigation Jump to search
 
(22 intermediate revisions by the same user not shown)
Line 6: Line 6:
=Overview=
=Overview=
A package used to interact with GitHub APIs.
A package used to interact with GitHub APIs.
 
=Subjects=
=Example=
* [[PyGithub Concepts|Concepts]]
<syntaxhighlight lang='py'>
* [[PyGithub Programming Model|Programming Model]]
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)
</syntaxhighlight>
=Programming Model=
==Repository==
{{External|https://pygithub.readthedocs.io/en/latest/examples/Repository.html}}
===Get a Repository===
<syntaxhighlight lang='py'>
github = Github(...)
repo = github.get_repo('some-owner/some-repo')
</syntaxhighlight>
 
==Issues==
{{External|https://pygithub.readthedocs.io/en/latest/examples/Issue.html}}
<syntaxhighlight lang='py'>
repo = ...
issues = repo.get_issues(state=state, milestone=milestone)
</syntaxhighlight>

Latest revision as of 21:47, 18 May 2023

External

Internal

Overview

A package used to interact with GitHub APIs.

Subjects