Skip to content

hyeebeen/star_following_repos

Repository files navigation

GitHub Star 同步工具

这是一个用于自动同步 GitHub 用户 star 列表的 Python 工具。你可以通过它快速获取并同步其他 GitHub 用户的 star 列表,实现批量 star 操作。

功能特点

  • 🚀 异步请求:使用 aiohttp 实现高效的异步 HTTP 请求
  • 📝 断点续传:通过进度文件记录已处理的仓库,支持中断后继续执行
  • 📊 进度显示:使用 tqdm 提供友好的进度显示和预计剩余时间
  • ⚡ 智能重试:遇到请求失败时自动重试,提高任务成功率
  • 🔄 API 限制处理:自动处理 GitHub API 速率限制,避免请求失败

依赖安装

pip install aiohttp tqdm asyncio pathlib

使用方法

  1. 运行脚本:
python star_following_repos.py <target_username> <your_username> <your_token>

参数说明:

  • target_username: 要同步的目标用户名
  • your_username: 你的 GitHub 用户名
  • your_token: 你的 GitHub 访问令牌

示例:

python star_following_repos.py target_user your_user your_token

技术实现

  • 使用 Python 的 asyncioaiohttp 库实现异步操作
  • 采用分页方式获取完整的 star 列表(每页 100 条数据)
  • 实现 API 速率限制检测和等待机制
  • 使用 pathlib 进行跨平台文件路径处理
  • 使用 tqdm 提供实时进度显示和预计剩余时间
  • 使用 json 进行数据持久化存储
  • 支持断点续传,记录已处理的仓库列表

实现细节

  • 使用异步会话管理,避免频繁创建连接
  • 实现智能重试机制,最多重试 3 次
  • 每次请求后增加适当延迟,避免触发 API 限制
  • 使用进度条提供友好的进度显示
  • 支持优雅的错误处理和异常恢复

注意事项

  1. Token 获取

    • 访问 GitHub Settings -> Developer settings -> Personal access tokens
    • 创建新的 token,确保勾选 public_repo 权限
  2. API 限制

    • GitHub API 有速率限制,脚本会自动处理限制等待
    • 认证用户每小时可以发起 5000 次请求
  3. 数据文件

    • 脚本会生成两个 JSON 文件:
      • {target_username}_starred_repos.json: 存储目标用户的 star 列表
      • {target_username}_progress.json: 记录处理进度

开源协议

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages