refactor(ci,docs): gitcode 镜像仓改名 HomeAgent→HologramAgent,定义点取值对齐

gitcode 侧镜像仓已完成改名,旧名 HomeAgent 变成 301 跳转,真仓是
HologramAgent。dbb787a 里三处 GC_REPO 定义点仍取旧名(命中 301),本批只
改取值与说明,**不改变 dbb787a 已建立的「每个文件恰一个定义点」结构**,
不引入任何新字面量。

实测(2026-10-21 20:1x,直连不带代理,非推测):
  $ curl -s -o /dev/null -w '%{http_code}' https://gitcode.com/JianFeeeee/<repo>

  HologramAgent     → 200  ← 当前取值
  HomeAgent         → 301  ← 旧名,跳转到 HologramAgent
  homeagent-sdk     → 200(SDK 仓,另一对象)
  hologramagentsdk  → 200(SDK 仓,另一对象)
  homeagentsdk      → 404
  HologramAgent-sdk → 404

「301 不是另一个仓,就是同一仓改名」的判定依据:两个地址 `git ls-remote`
得到的 refs 列表 md5 相同(同一组分支与 SHA),且 curl 页面 title 一致。

三个定义点(各文件恰好 1 处,消费点全部走变量,本次只改这三行的取值):
1. .github/workflows/ci.yml   job sync-gitcode-main 的 env.GC_REPO
2. .github/workflows/release.yml job sync-gitcode   的 env.GC_REPO
3. deploy/scripts/upload_assets.py 的 os.environ.get("GITCODE_REPO", ...) 默认值
消费点未动:ci.yml 2 处、release.yml 4 处命令行,仍全部是 ${GC_REPO}。

注释同步改准(原来把 301 的仓写成「200 ← 当前用这个」,是错的):
- 两个 workflow 的取值依据清单换成上面六个仓的现状,注明实测时间与 curl 命令
- 明确 HomeAgent = 301 跳转、HologramAgent = 当前取值
- 「以后再改名只改这三行」的说明保留

docs/zh/ci-cd-runbook.md 同步:
- 总览表 gitcode 镜像改为 HologramAgent(与主仓同名)
- 「当前取值」段与六仓实测表、301 判定依据
- API 侧口径也改准:/api/v5/repos/JianFeeeee/{HomeAgent,HologramAgent}
  不带 token 均 400(需鉴权,非仓不存在);/releases/tags/v1.3.13
  两名字均 200 且响应体一致。旧文档写「HologramAgent→404 是死链」已不成立。
- §3.3 curl 验活地址、§3.4 手工上传示例的 GITCODE_REPO 同步为新值

判据(正向 14 项 + 变异 11 条,全部实跑):
- 两个 workflow yaml.safe_load 解析通过;每个 env.GC_REPO 恰好 1 处
- 三处定义点取值完全一致(P4);消费点计数 ci=2/release=4(P6)
- P8 改为「不带 -L 的 200」:这正是本次误判的根因——之前用 curl -L 测,
  301 跟随后也是 200,把「旧名跳转」误读成「旧名是真仓、新名 404」
- 变异 M11「三处一致改回旧名 HomeAgent」只被 P8 抓住(P4 仍绿),
  证明该判据能单独区分「一致但指向 301 旧名」
- 所有 step run 块过 bash -n(30 个 run 块,0 错)
- gitcode 作 import host 残留 0;工作区无 .go/.lua/go.mod/go.sum 变更

零代码改动:packaging_test.go 里「禁止历史模块路径」的反向断言未动,
third_party 未动,systemd 相关行未动。
This commit is contained in:
JianFeeeee
2026-10-21 20:15:41 +08:00
parent dbb787a658
commit ffe9bc2cff
4 changed files with 72 additions and 35 deletions

View File

@ -10,7 +10,7 @@
| --- | --- | --- | --- |
| 主仓 HologramAgent | `github.com/JianFeeeee/HologramAgent`(公开) | `ci.yml` + `release.yml` | push / PR、`release/**` push |
| SDK 仓 homeagentsdk | `github.com/JianFeeeee/homeagentsdk`(公开) | `release.yml` | `release/**` push |
| gitcode 镜像 | `gitcode.com/JianFeeeee/HomeAgent`(**不与主仓同名**) | 无(由主仓 Release 的 sync job 同步) | — |
| gitcode 镜像 | `gitcode.com/JianFeeeee/HologramAgent`(与主仓同名) | 无(由主仓 Release 的 sync job 同步) | — |
**分支保护**(main,公开仓免费):10 项必须检查(Go build/vet/test、Race、
cross×5、GUI、C gates、Docs)+ `strict`(必须与 main 同步)+ 禁 force push。
@ -30,12 +30,28 @@ cross×5、GUI、C gates、Docs)+ `strict`(必须与 main 同步)+ 禁 for
| `deploy/scripts/upload_assets.py` | `GITCODE_REPO` 环境变量默认值 | 脚本自身 |
两个 workflow 是独立 workflow,因此各自一个定义(不能跨文件共享 env)。
**gitcode 侧真正把仓改名成 HologramAgent 之后,只改这三个定义点即可**。
**gitcode 侧以后再改仓名,只改这三个定义点即可**,消费点无需动。
**当前取值 `JianFeeeee/HomeAgent`**,而不是 `HologramAgent`。实测(2026-10-21,
curl 直连):`gitcode.com/JianFeeeee/HomeAgent` → **200**,
`gitcode.com/JianFeeeee/HologramAgent` → **404**。GitHub 主仓已改名,
gitcode 侧镜像仓没跟着改。指向 HologramAgent 会让每次发版都红在镜像同步。
**当前取值 `JianFeeeee/HologramAgent`**(与 GitHub 主仓同名)。gitcode 侧镜像仓
**已由 `HomeAgent` 改名为 `HologramAgent`**;旧地址仍 301 跳转,跟随后也能到,
但走重定向,不应再用。实测(2026-10-21 20:1x,直连不带代理,
`curl -s -o /dev/null -w '%{http_code}' https://gitcode.com/JianFeeeee/<repo>`):
| 仓名 | HTTP | 说明 |
| --- | --- | --- |
| `HologramAgent` | **200** | 当前取值(主仓镜像) |
| `HomeAgent` | 301 | 旧名,跳转到 `HologramAgent` |
| `homeagent-sdk` | 200 | SDK 仓,另一对象 |
| `hologramagentsdk` | 200 | SDK 仓,另一对象 |
| `homeagentsdk` | 404 | 不存在 |
| `HologramAgent-sdk` | 404 | 不存在 |
判定「301 不是另一个仓、就是同一仓改名」的依据:两个地址 `git ls-remote`
得到的 refs 列表 md5 相同(同一组分支与 SHA)。
API 侧同样兼容两个名字:`/api/v5/repos/JianFeeeee/{HomeAgent,HologramAgent}`
不带 token 都返回 **400**(需要鉴权,不是仓不存在),
`/releases/tags/v1.3.13` 都返回 **200** 且响应体一致。
**失败面(两个 job 不一样,别搞混)**:
@ -209,11 +225,12 @@ gh secret list --repo JianFeeeee/HologramAgent | grep GITCODE_TOKEN
# ② token 有效
curl -s "https://gitcode.com/api/v5/user?access_token=$TOKEN"
# ③ job 用的 private-token 头可读 release(两仓都测)
# ⚠ gitcode 侧主仓镜像名是 HomeAgent(不是 HologramAgent)——
# 实测 2026-10-21:/repos/JianFeeeee/HomeAgent→400(带 token 可读)、
# /repos/JianFeeeee/HologramAgent→404。写成 HologramAgent 是死链。
# ⚠ gitcode 侧主仓镜像现已改名为 HologramAgent(与 GitHub 同名),
# 旧名 HomeAgent 仍 301 跳转。实测 2026-10-21 20:1x(直连不带代理):
# /api/v5/repos/JianFeeeee/{HomeAgent,HologramAgent} 不带 token 均 400
# (需鉴权,非仓不存在);/releases/tags/v1.3.13 两名字均 200 且响应一致。
curl -s -H "private-token: $TOKEN" \
"https://gitcode.com/api/v5/repos/JianFeeeee/HomeAgent/releases/tags/v1.3.13"
"https://gitcode.com/api/v5/repos/JianFeeeee/HologramAgent/releases/tags/v1.3.13"
```
★ **token 是宽范围的个人令牌**(可读 92 仓/48 私有、有写权限),而 CI 只需要这两个仓。
@ -224,8 +241,8 @@ curl -s -H "private-token: $TOKEN" \
```bash
# token 放 ~/.git-credentials(https://JianFeeeee:<token>@gitcode.com)
# GITCODE_REPO 是 gitcode 镜像仓名(当前 HomeAgent),与 GitHub 侧仓名无关。
ASSET_DIR=<产物目录> GITCODE_REPO=JianFeeeee/HomeAgent \
# GITCODE_REPO 是 gitcode 镜像仓名(当前 HologramAgent,旧名 HomeAgent 为 301)。
ASSET_DIR=<产物目录> GITCODE_REPO=JianFeeeee/HologramAgent \
python3 deploy/scripts/upload_assets.py <tag> <token>
# release 条目必须先存在(脚本向 releases/<tag>/upload_url 取 OBS 签名 URL)
```