diff --git a/hermes/shazhou-family-onboard/references/05-gitea-tea.md b/hermes/shazhou-family-onboard/references/05-gitea-tea.md index b90c87d..0ff5a43 100644 --- a/hermes/shazhou-family-onboard/references/05-gitea-tea.md +++ b/hermes/shazhou-family-onboard/references/05-gitea-tea.md @@ -2,20 +2,22 @@ ## 前置 -- 已完成 02 (cfg CLI) — 需要 `cfg get GITEA_TOKEN` +- 已完成 02 (cfg CLI) — 需要 `GITEA_ADMIN_TOKEN`(shared) +- 已完成 03 (邮箱) — 创建 Gitea 用户需要邮箱 ## 检查 ```bash which tea tea login list +cfg get GITEA_TOKEN ``` -✅ 达标:`tea` 可用,login list 显示 `shazhou` 登录条目且为 default +✅ 达标:`tea` 可用,login list 显示 `shazhou` 登录条目且为 default,`GITEA_TOKEN` 是你自己的 token(不是 admin token) ## 安装 -### 安装 tea +### 1. 安装 tea ```bash # macOS @@ -30,24 +32,64 @@ curl -sL https://dl.gitea.com/tea/0.9.2/tea-0.9.2-linux-arm64 -o /usr/local/bin/ chmod +x /usr/local/bin/tea ``` -### 登录 Gitea +### 2. 创建 Gitea 用户(如果还没有) -GITEA_TOKEN 在 02 步 `cfg sync` 后就有了(shared scope),直接用: +用 `GITEA_ADMIN_TOKEN`(shared scope)调 API 创建用户: + +```bash +eval "$(cfg env)" +MY_EMAIL=$(cfg get MY_EMAIL) +MY_NAME=你的用户名 # 如 xiaonuo, xingyue + +curl -s -X POST \ + -H "Authorization: token $GITEA_ADMIN_TOKEN" \ + -H "Content-Type: application/json" \ + "https://git.shazhou.work/api/v1/admin/users" \ + -d "{ + \"username\": \"$MY_NAME\", + \"email\": \"$MY_EMAIL\", + \"password\": \"你的Gitea密码\", + \"must_change_password\": false + }" +``` + +如果用户已存在会返回 422,忽略即可。 + +### 3. 生成个人 Token + +用你的 Gitea 用户密码通过 API 创建 token: + +```bash +curl -s -X POST \ + "https://git.shazhou.work/api/v1/users/$MY_NAME/tokens" \ + -u "$MY_NAME:你的Gitea密码" \ + -H "Content-Type: application/json" \ + -d "{\"name\": \"$(hostname)-agent\", \"scopes\": [\"all\"]}" +``` + +返回的 `sha1` 字段就是你的 token。 + +### 4. 存入 cfg personal scope + +```bash +cfg set GITEA_TOKEN 你拿到的sha1值 --secret +``` + +⚠️ 存的是你自己的用户 token,不是 GITEA_ADMIN_TOKEN! + +### 5. 登录 tea ```bash tea login add \ --name shazhou \ --url https://git.shazhou.work \ --token $(cfg get GITEA_TOKEN) \ - --user YOUR_USERNAME \ --no-version-check tea login default shazhou ``` -YOUR_USERNAME 替换为你的 Gitea 用户名(见下方对照表)。 - -### 注册 SSH 公钥到 Gitea +### 6. 注册 SSH 公钥到 Gitea 将 01 步生成的公钥注册上去,以后 git clone 可走 SSH: @@ -57,9 +99,8 @@ YOUR_USERNAME 替换为你的 Gitea 用户名(见下方对照表)。 # 方法二:API PUBKEY=$(cat ~/.ssh/id_ed25519.pub) -TOKEN=$(cfg get GITEA_TOKEN) curl -s -X POST \ - -H "Authorization: token $TOKEN" \ + -H "Authorization: token $(cfg get GITEA_TOKEN)" \ -H "Content-Type: application/json" \ "https://git.shazhou.work/api/v1/user/keys" \ -d "{\"title\": \"$(hostname)\", \"key\": \"$PUBKEY\"}" @@ -69,7 +110,7 @@ curl -s -X POST \ ```bash ssh -T git@git.shazhou.work 2>&1 -# 应该返回: Hi AGENT_NAME! You've successfully authenticated... +# 应该返回: Hi YOUR_NAME! You've successfully authenticated... ``` ### Gitea 账号对照表