PyGithub 简介

PyGithub 简介#

PyGithub 是使用 Github API v3 的 Python 库,可以管理 Github 资源(存储库,用户配置文件,组织等)。

快速使用#

首先创建 Github 实例:

from github import Github

# 使用访问令牌
g = Github("access_token")

# Github 企业自定义主机名
g = Github(base_url="https://{hostname}/api/v3", login_or_token="access_token")

然后操纵 Github 对象:

user = g.get_user() # 获取当前用户
for repo in g.get_user().get_repos():
    print(repo.name)
    repo.edit(has_wiki=False)
    # 查看所有可用的属性和方法
    print(dir(repo))

user.login # 获取当前用户名称

安装:

pip install PyGithub[integrations]

或者

pip install PyGithub

使用案例#

from github import Github

g = Github(user_agent="xinetzone")

按名称获取用户名:

user = g.get_user("daobook")
user.name
'Dao Book'

按名称获取存储库:

repo = g.get_repo("xinetzone/d2py")
repo.name
'd2py'

按名称获取组织:

org = g.get_organization("daobook")
org.login
'daobook'

按编程语言搜索存储库:

repositories = g.search_repositories(query='language:cpp')
k = 0
for repo in repositories:
    print(repo)
    k += 1
    if k > 3:
        break
Repository(full_name="tensorflow/tensorflow")
Repository(full_name="facebook/react-native")
Repository(full_name="electron/electron")
Repository(full_name="microsoft/terminal")

根据 good-first-issue 的 issue 数量搜索存储库:

repositories = g.search_repositories(query='good-first-issues:>3')
k = 0
for repo in repositories:
    print(repo)
    k += 1
    if k > 3:
        break
Repository(full_name="vuejs/vue")
Repository(full_name="practical-tutorials/project-based-learning")
Repository(full_name="flutter/flutter")
Repository(full_name="microsoft/vscode")