这是一个用于自动同步 Gitee 仓库到 GitHub 的工具,基于 GitHub Actions 实现。支持多仓库同步、分支指定、仓库可见性控制等功能。
- 🔄 支持多个仓库同步
- 🕒 可配置的同步时间(默认东八区 14:00, 22:00, 23:00, 24:00)
- 🌿 支持指定源分支和目标分支
- 🔐 支持设置 GitHub 仓库的可见性(公开/私有)
首先将本项目fork到自己的仓库中,然后按照以下步骤设置即可。
在项目根目录创建 sync-config.yml 文件:
-
name (必填)
- 同步任务的唯一标识名称
- 建议使用有意义的名称,方便在日志中识别
-
gitee (必填)
repo_url: Gitee 仓库的完整 HTTPS 地址branch: 要同步的源分支名称
-
github (必填)
repo_name: 目标 GitHub 仓库名称- 如果仓库不存在,将自动创建
- 如果仓库已存在,将同步到该仓库
branch: 目标分支名称(可选)- 如果不指定,将使用与 Gitee 相同的分支名
- 可以与源分支名称不同
private: 仓库可见性设置true: 创建/设置为私有仓库false: 创建/设置为公开仓库- 此设置也会影响现有仓库的可见性
- 确保 Gitee 仓库地址正确且可访问
- GitHub 仓库名称不要与现有的其他仓库冲突
- 分支名称区分大小写
- 可以根据需要添加任意数量的仓库配置
- 修改配置文件后无需重启,下次同步时会自动使用新配置
在 GitHub 仓库的 Settings -> Secrets and variables -> Actions 中添加以下 secrets:
GH_TOKEN: GitHub Personal Access Token,需要有创建和管理仓库的权限(获取token路径:Settings -> Developer Settings -> Personal access tokens)GITEE_USERNAME: Gitee 用户名GITEE_PASSWORD: Gitee 密码或访问令牌
工作流默认在以下时间点(东八区)运行:
- 14:00 - 检查上午的更新
- 22:00 - 检查下午的更新
- 23:00 - 第一次晚间同步
- 24:00 - 最后一次同步
- 进入仓库的 Actions 页面
- 选择 "Sync from Gitee to GitHub" 工作流
- 点击 "Run workflow" 按钮
- 确保 GitHub Personal Access Token 具有足够的权限
- Gitee 仓库需要可访问(公开或有访问权限)
- 同步操作会强制覆盖 GitHub 仓库的目标分支
- 每个月有 2000 分钟的免费 Actions 时长
- 配置文件中的仓库数量会影响执行时间
-
同步失败怎么办?
- 检查 Secrets 是否正确配置
- 确认 Gitee 仓库地址和分支是否正确
- 查看 Actions 日志了解详细错误信息
-
如何修改同步频率?
- 修改
.github/workflows/gitee-sync.yml文件中的 cron 表达式
- 修改
-
如何添加新的同步仓库?
- 在
sync-config.yml中添加新的仓库配置项
- 在
欢迎提交 Issue 和 Pull Request 来改进这个工具。