Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub API 客户端

一个基于 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 .venv

Windows 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 500

项目结构

github_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 秒

About

基于 FastAPI 和 Requests 开发的 GitHub REST API 客户端,用于查询 GitHub Star 数最高的仓库:fastapi 分支提供 Web 服务(JSON API、参数校验、交互式文档、限流重试),main 分支为命令行客户端,均支持自定义查询数量、异常处理、日志记录和环境变量配置。

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages