一个基于 Python 的 GitHub REST API 命令行客户端,用于获取 GitHub 上 Star 数最高的仓库,并在终端中展示仓库名称、Star 数、描述和地址。
相关版本:FastAPI 服务版(Web API 服务,位于
fastapi分支)
- 查询 GitHub Star 数最高的仓库
- 支持通过
--count指定返回数量(1~1000,自动分页) - 按 Star 数降序排列
- 展示仓库名称、Star 数、描述和 GitHub 地址
- 支持 GitHub Token 认证
- 统一处理 API 请求、超时和 HTTP 异常
- 触发限流时自动等待重试(最多 3 次)
- 记录 API 请求耗时及运行日志
- Python 3.13+
- Requests
- python-dotenv
克隆项目并进入项目目录:
git clone https://github.com/DenJeb/GitHub-API-client.git
cd GitHub-API-client创建并激活虚拟环境:
python -m venv .venvWindows PowerShell:
.\.venv\Scripts\Activate.ps1安装项目依赖:
pip install -r requirements.txt项目支持通过环境变量配置 GitHub Token。
在项目根目录创建 .env 文件:
GITHUB_TOKEN=your_github_token如果未配置 Token,项目仍然可以运行,但 GitHub API 的访问限制将按照未认证请求处理。GitHub 搜索 API 的限流为:未认证每分钟 10 次,带 Token 每分钟 30 次;触发限流时客户端会自动等待并重试(最多 3 次)。--count 取较大值(如 1000)时会消耗 10 次请求额度。该工具只查询公开仓库,不配置 Token 也能正常使用。
在项目根目录运行:
# 查看 Star 数最高的 100 个仓库(默认)
python -m src.main
# 指定返回数量(最多 1000,自动分页)
python -m src.main --count 500github_api_client/
├── README.md
├── LICENSE
├── .venv/
├── .env
├── .gitignore
├── requirements.txt
├── logs/
│ └── client.log
└── src/
├── __init__.py
├── api.py
├── config.py
├── display.py
├── logging_config.py
└── main.py
程序运行过程中会记录相关日志,包括:
- 程序启动与结束
- API 查询操作
- 请求耗时
- HTTP 错误
- 网络请求异常
日志文件位于:
logs/client.log
日志示例:
2026-09-15 22:44:15,781 - src.api - INFO - 请求 GET https://api.github.com/search/repositories 耗时: 2.78 秒