Source snapshot: 97d7f0fae96dc04b7ddad56fc1db6a108ed662cc [SEC-CLEAN] · pre-push-clean v1.0 · 109处敏感信息已自动转乱码
6.9 KiB
6.9 KiB
belongs_to
| belongs_to | |
|---|---|
|
🔧 Awen 仓库初始化指令 · GitHub Actions 模板方案
📋 总流程(4步)
- 创建仓库
guanghu-awen - 添加
MAIN_REPO_TOKEN密钥 - 创建 GitHub Actions 工作流文件
- 推送触发测试
Step 1 · 创建仓库
- 打开 https://github.com/new
- 仓库名:
guanghu-awen - 可见性:Private(推荐)或 Public
- ✅ 勾选 "Add a README file"
- 点击 Create repository
Step 2 · 添加 MAIN_REPO_TOKEN 密钥
冰朔操作:
冰朔已在主仓库 guanghulab 配置过 Token,不需要重新生成。
直接把已有的 MAIN_REPO_TOKEN 值发给 Awen 即可。
Awen 操作(配置Secret):
- 打开你的仓库:
https://github.com/WENZHUOXI/guanghu-awen - 点击 Settings → 左侧 Secrets and variables → Actions
- 点击 New repository secret
- Name 填:
MAIN_REPO_TOKEN - Secret 填:冰朔给你的 Token
- 点击 Add secret
Step 3 · 创建 GitHub Actions 工作流
方法A:网页直接创建(推荐新手)
- 打开你的仓库页面
- 点击 Add file → Create new file
- 文件名输入:
.github/workflows/bridge-sync.yml - 粘贴以下内容:
# 🌊 光湖桥接同步工作流
# Awen 仓库 → 主仓库 guanghulab 同步
# 触发条件:push 到 main 分支 / 手动触发 / 每天 09:00 UTC+8
name: "🌉 Bridge Sync to GuanghuLab"
on:
push:
branches: [main]
workflow_dispatch:
schedule:
- cron: "0 1 * * *" # UTC 01:00 = 北京时间 09:00
jobs:
sync-to-main-repo:
runs-on: ubuntu-latest
steps:
- name: "📥 Checkout Awen Repo"
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: "📋 Prepare Sync Payload"
run: |
echo "🌊 光湖桥接同步开始"
echo "时间: $(TZ='Asia/Shanghai' date '+%Y-%m-%d %H:%M:%S CST')"
echo "仓库: $GITHUB_REPOSITORY"
echo "分支: $GITHUB_REF_NAME"
echo "提交: $GITHUB_SHA"
# 创建同步清单
mkdir -p .sync-payload
echo "{" > .sync-payload/manifest.json
echo " \"source\": \"$GITHUB_REPOSITORY\"," >> .sync-payload/manifest.json
echo " \"branch\": \"$GITHUB_REF_NAME\"," >> .sync-payload/manifest.json
echo " \"commit\": \"$GITHUB_SHA\"," >> .sync-payload/manifest.json
echo " \"timestamp\": \"$(date -u +%Y-%m-%dT%H:%M:%SZ)\"," >> .sync-payload/manifest.json
echo " \"developer\": \"awen\"" >> .sync-payload/manifest.json
echo "}" >> .sync-payload/manifest.json
cat .sync-payload/manifest.json
- name: "🌉 Sync to GuanghuLab Main Repo"
env:
MAIN_REPO_TOKEN: $\{\{ secrets.MAIN_REPO_TOKEN \}\}
run: |
# 配置 Git
git config --global user.name "guanghu-awen-bridge"
git config --global user.email "awen-bridge@guanghu.dev"
# 克隆主仓库
git clone https://x-access-token:${MAIN_REPO_TOKEN}@github.com/qinfendebingshuo/guanghulab.git /tmp/main-repo
# 创建 Awen 同步分支目录
mkdir -p /tmp/main-repo/federation/awen
# 复制同步清单
cp .sync-payload/manifest.json /tmp/main-repo/federation/awen/latest-sync.json
# 复制仓库内容(排除 .git 和 .sync-payload)
rsync -av --exclude='.git' --exclude='.sync-payload' --exclude='.github' ./ /tmp/main-repo/federation/awen/workspace/
# 提交推送
cd /tmp/main-repo
git add -A
git diff --cached --quiet && echo "无变更,跳过推送" && exit 0
git commit -m "🌉 [bridge-sync] Awen → GuanghuLab | $(TZ='Asia/Shanghai' date '+%Y-%m-%d %H:%M')"
git push origin main
echo "✅ 同步完成!"
- name: "📝 Sync Result Summary"
if: always()
run: |
echo "## 🌉 桥接同步结果" >> $GITHUB_STEP_SUMMARY
echo "- 源仓库: $GITHUB_REPOSITORY" >> $GITHUB_STEP_SUMMARY
echo "- 目标仓库: qinfendebingshuo/guanghulab" >> $GITHUB_STEP_SUMMARY
echo "- 同步路径: federation/awen/" >> $GITHUB_STEP_SUMMARY
echo "- 时间: $(TZ='Asia/Shanghai' date '+%Y-%m-%d %H:%M:%S CST')" >> $GITHUB_STEP_SUMMARY
- 点击 Commit changes → 选择 "Commit directly to the main branch" → Commit
方法B:命令行创建(适合熟悉Git的)
# 克隆你的仓库
git clone https://github.com/WENZHUOXI/guanghu-awen.git
cd guanghu-awen
# 创建工作流目录
mkdir -p .github/workflows
# 创建工作流文件(把上面的 YAML 内容保存为这个文件)
nano .github/workflows/bridge-sync.yml
# 提交推送
git add -A
git commit -m "🌉 初始化桥接同步工作流"
git push origin main
Step 4 · 测试验证
- 推送后,Actions 会自动触发
- 打开
https://github.com/WENZHUOXI/guanghu-awen/actions - 查看最新的工作流运行状态
- ✅ 绿色 = 成功,数据已同步到
guanghulab/federation/awen/ - ❌ 红色 = 失败,点进去看日志排查
常见报错及解决
| 报错 | 原因 | 解决 |
|---|---|---|
| remote: Permission denied | MAIN_REPO_TOKEN 无效或过期 | 让冰朔重新生成 Token,重新配置 Secret |
| secret MAIN_REPO_TOKEN not found | Secret 名字打错 | 检查 Settings → Secrets,确认名字完全一致 |
| Repository not found | 主仓库地址错或 Token 没有 repo 权限 | 确认 Token 勾选了 repo 权限 |
| Nothing to commit | 仓库没有新内容 | 正常现象,不是错误 |
🔄 手动触发同步
不想等定时?随时手动触发:
- 打开 Actions 页面
- 左侧选 "🌉 Bridge Sync to GuanghuLab"
- 点击 Run workflow → Run workflow