File tree Expand file tree Collapse file tree 2 files changed +3
-70
lines changed Expand file tree Collapse file tree 2 files changed +3
-70
lines changed Original file line number Diff line number Diff line change 33这是一个用于自动同步 Gitee 仓库到 GitHub 的工具,基于 GitHub Actions 实现。支持多仓库同步、分支指定、仓库可见性控制等功能。
44
55## 功能特点
6-
76- 🔄 支持多个仓库同步
87- 🕒 可配置的同步时间(默认东八区 14:00, 22:00, 23:00, 24:00)
98- 🌿 支持指定源分支和目标分支
109- 🔐 支持设置 GitHub 仓库的可见性(公开/私有)
11- - 🚫 自动排除 ` .git ` 和 ` .github ` 目录
12- - 🔑 安全的凭证管理
1310
1411## 使用方法
1512
13+ 首先将本项目fork到自己的仓库中,然后按照以下步骤设置即可。
14+
1615### 1. 配置文件设置
1716
1817在项目根目录创建 ` sync-config.yml ` 文件:
5150
5251在 GitHub 仓库的 Settings -> Secrets and variables -> Actions 中添加以下 secrets:
5352
54- - ` GH_TOKEN ` : GitHub Personal Access Token,需要有创建和管理仓库的权限
53+ - ` GH_TOKEN ` : GitHub Personal Access Token,需要有创建和管理仓库的权限(获取token路径:Settings -> Developer Settings -> Personal access tokens)
5554- ` GITEE_USERNAME ` : Gitee 用户名
5655- ` GITEE_PASSWORD ` : Gitee 密码或访问令牌
5756
6362- 23:00 - 第一次晚间同步
6463- 24:00 - 最后一次同步
6564
66- 也可以通过手动触发立即同步。
67-
6865### 4. 手动触发同步
6966
70671 . 进入仓库的 Actions 页面
9996## 许可证
10097
10198[ MIT License] ( LICENSE )
102-
103- ## 项目结构
104-
105- ### 核心文件说明
106-
107- 1 . ** .github/workflows/gitee-sync.yml**
108- - GitHub Actions 的工作流配置文件
109- - 定义了自动同步的触发条件和执行步骤
110- - 包含了同步逻辑的具体实现
111- - 主要功能:
112- - 读取配置文件
113- - 创建/更新 GitHub 仓库
114- - 克隆 Gitee 仓库
115- - 同步代码到 GitHub
116- - 处理多仓库并行同步
117-
118- 2 . ** sync-config.yml**
119- - 用户配置文件,需要根据 example 文件自行创建
120- - 定义需要同步的仓库信息
121- - 包含:
122- - Gitee 源仓库信息
123- - GitHub 目标仓库设置
124- - 分支配置
125- - 可见性设置
126-
127- 3 . ** sync-config.yml.example**
128- - 配置文件的示例和模板
129- - 包含了不同场景的配置示例
130- - 提供了配置参考
131-
132- ### 实现流程
133-
134- 1 . ** 配置解析**
135- - 读取 ` sync-config.yml ` 获取同步任务列表
136- - 使用 ` yq ` 工具解析 YAML 配置
137-
138- 2 . ** 任务分发**
139- - 使用 GitHub Actions 的 matrix 策略
140- - 并行处理多个仓库的同步任务
141-
142- 3 . ** 仓库处理**
143- - 检查 GitHub 仓库是否存在
144- - 自动创建不存在的仓库
145- - 更新仓库可见性设置
146-
147- 4 . ** 代码同步**
148- - 克隆指定分支的 Gitee 仓库
149- - 排除 ` .git ` 和 ` .github ` 目录
150- - 推送代码到 GitHub 指定分支
151-
152- 5 . ** 错误处理**
153- - 单个仓库同步失败不影响其他仓库
154- - 详细的错误日志输出
155- - 失败重试机制
156-
157- ### 自动化运行
158-
159- - 按照预设时间自动运行(东八区):
160- - 14:00
161- - 22:00
162- - 23:00
163- - 24:00
164- - 支持手动触发运行
165- - 使用 GitHub Actions 的调度系统
File renamed without changes.
You can’t perform that action at this time.
0 commit comments