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")
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
Cell In[1], line 1
----> 1 from github import Github
3 g = Github(user_agent="xinetzone")
ModuleNotFoundError: No module named 'github'
按名称获取用户名:
user = g.get_user("daobook")
user.name
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[2], line 1
----> 1 user = g.get_user("daobook")
2 user.name
NameError: name 'g' is not defined
按名称获取存储库:
repo = g.get_repo("xinetzone/d2py")
repo.name
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[3], line 1
----> 1 repo = g.get_repo("xinetzone/d2py")
2 repo.name
NameError: name 'g' is not defined
按名称获取组织:
org = g.get_organization("daobook")
org.login
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[4], line 1
----> 1 org = g.get_organization("daobook")
2 org.login
NameError: name 'g' is not defined
按编程语言搜索存储库:
repositories = g.search_repositories(query='language:cpp')
k = 0
for repo in repositories:
print(repo)
k += 1
if k > 3:
break
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[5], line 1
----> 1 repositories = g.search_repositories(query='language:cpp')
2 k = 0
3 for repo in repositories:
NameError: name 'g' is not defined
根据 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
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
Cell In[6], line 1
----> 1 repositories = g.search_repositories(query='good-first-issues:>3')
2 k = 0
3 for repo in repositories:
NameError: name 'g' is not defined