Python 调用 GitHub API 全攻略:获取用户信息、管理存储库与自动化操作
作者:API传播员 · 2025-10-21 · 阅读时间:5分钟
本文详细介绍了如何在Python中使用GitHub API进行自动化存储库管理和集成GitHub功能到应用程序中。内容包括生成访问令牌、发起GET请求获取用户信息、管理存储库列表、创建新存储库、更新存储库描述以及删除存储库的实用代码示例。
一. 使用 Python 与 GitHub API 交互
在开始之前,您需要生成一个 访问令牌 (Access Token) 并确保授予正确的权限范围。
GitHub API 的基础 URL 为:
https://api.github.com/
接下来我们通过 Python 发起 GET 请求来获取用户数据。
1. 示例:获取用户信息
以下代码演示如何获取某个 GitHub 用户的基本信息:
import requests
username = "apify" # GitHub 用户名
url = f"https://api.github.com/users/{username}"
user_data = requests.get(url)
print(user_data.json())
输出示例:
{
"avatar_url": "https://avatars.githubusercontent.com/u/24586296?v=4",
"bio": "我们正在使网络更加可编程。",
"blog": "https://apify.com/",
"company": null,
"created_at": "2016-12-15T10:36:52Z",
"email": "hello@apify.com",
"followers": 279,
"following": 0,
"html_url": "https://github.com/apify",
"id": 24586296,
"location": "互联网",
"login": "apify",
"name": "apify",
"public_repos": 108,
"type": "组织",
"updated_at": "2023-08-03T08:51:47Z"
}
这样即可获取用户的简介、邮箱、公开仓库数等信息。
二. 获取用户的存储库列表
要获取用户的存储库列表,可以调用 /users/{username}/repos
端点:
import requests
base_url = "https://api.github.com"
def get_user_repos(username):
url = f"{base_url}/users/{username}/repos"
response = requests.get(url)
if response.status_code == 200:
return response.json()
return None
username = "apify"
repos = get_user_repos(username)
if repos:
print(f"{username} 的存储库:")
for repo in repos:
print(repo["name"])
示例输出:
apify 的存储库:
actor-crawler
actor-scraper
actor-template
...
还可以使用 查询参数 来筛选结果,例如按更新时间排序:
def get_user_repos(username):
url = f"{base_url}/users/{username}/repos"
query_params = {"sort": "updated", "per_page": 5}
response = requests.get(url, params=query_params)
if response.status_code == 200:
return response.json()
return None
示例输出:
apify 的存储库:
crawler
fingerprint-suite
browser-pool
proxy-chain
三. 创建新的存储库
通过 POST 请求,您可以创建新仓库(需要 repo
权限的访问令牌):
import requests
base_url = "https://api.github.com"
def create_repo(access_token, repo_name, repo_descr=None):
url = f"{base_url}/user/repos"
headers = {"Authorization": f"token {access_token}"}
data = {"name": repo_name, "description": repo_descr}
response = requests.post(url, headers=headers, json=data)
if response.status_code == 201:
return response.json()
return None
access_token = "YOUR_ACCESS_TOKEN"
repo_name = "apify_testing"
repo_descr = "使用 Python GitHub API 创建的新存储库。"
new_repo = create_repo(access_token, repo_name, repo_descr)
if new_repo:
print("成功创建新的公共存储库!")
else:
print("无法创建新的存储库。")
执行成功后即可在 GitHub 上看到新仓库。
四. 更新存储库描述
通过 PATCH 请求更新仓库描述:
def update_repo_descr(access_token, username, repo_name, new_description):
url = f"{base_url}/repos/{username}/{repo_name}"
headers = {"Authorization": f"token {access_token}"}
data = {"description": new_description}
response = requests.patch(url, headers=headers, json=data)
if response.status_code == 200:
return response.json()
return None
access_token = "YOUR_ACCESS_TOKEN"
username = "GITHUB_USERNAME"
repo_name = "apify_testing"
new_description = "这是使用 PATCH 请求更新的描述。"
updated_repo = update_repo_descr(access_token, username, repo_name, new_description)
if updated_repo:
print("存储库描述已更新。")
else:
print("无法更新存储库描述。")
五. 删除存储库
最后,可以通过 DELETE 请求删除指定仓库:
def delete_repo(access_token, username, repo_name):
url = f"{base_url}/repos/{username}/{repo_name}"
headers = {"Authorization": f"token {access_token}"}
response = requests.delete(url, headers=headers)
if response.status_code == 204:
print("存储库已成功删除。")
elif response.status_code == 404:
print("存储库未找到或已删除。")
else:
print(f"删除失败,状态码:{response.status_code}")
access_token = "YOUR_ACCESS_TOKEN"
username = "GITHUB_USERNAME"
repo_name = "apify_testing"
delete_repo(access_token, username, repo_name)
示例输出:
存储库已成功删除。
六. 总结
通过本文,您学习了如何使用 Python 调用 GitHub API,完成从 获取用户信息 → 获取仓库列表 → 创建/更新/删除仓库 的全流程操作。
这些技能可以帮助开发者:
- 自动化 GitHub 日常任务。
- 快速集成 GitHub 功能到自己的项目。
- 提升开发效率与团队协作能力。
继续深入探索 GitHub REST API 和 GraphQL API,您还可以实现更多高级操作。
热门推荐
一个账号试用1000+ API
助力AI无缝链接物理世界 · 无需多次注册
3000+提示词助力AI大模型
和专业工程师共享工作效率翻倍的秘密
热门API
- 1. AI文本生成
- 2. AI图片生成_文生图
- 3. AI图片生成_图生图
- 4. AI图像编辑
- 5. AI视频生成_文生视频
- 6. AI视频生成_图生视频
- 7. AI语音合成_文生语音
- 8. AI文本生成(中国)
最新文章
- 如何获取 tianqiip 开放平台 API Key 密钥(分步指南)
- Python实现表情识别:利用稠密关键点API分析面部情绪
- RWA 上链秒级碳信用合规评级 API:5 天
- 香港稳定币条例 GDPR 删除权 API:3 天合规实现
- Auth0 Session Management API 教程:高效管理用户会话与刷新令牌
- Dolphin-MCP 技术指南:OpenAI API 集成与高级使用
- Ktor 入门指南:用 Kotlin 构建高性能 Web 应用和 REST API
- 什么是API模拟?
- 基于NodeJS的KOA2框架实现restful API网站后台
- 2025 AI 股票/加密机器人副业|ChatGPT API 策略+TG Bot 信号 99 元/月变现
- 舆情服务API应用实践案例解析
- Dolphin MCP 使用指南:通过 OpenAI API 扩展 MCP 协议与 GPT 模型集成