# 06. Gitea 账号 & tea CLI ## 前置 - 已完成 03 (cfg CLI) — 需要 `GITEA_ADMIN_TOKEN`(shared) - 已完成 04 (邮箱) — 创建 Gitea 用户需要邮箱 ## 检查 ```bash which tea tea login list cfg get GITEA_TOKEN ``` ✅ 达标:`tea` 可用,login list 显示 `shazhou` 登录条目且为 default,`GITEA_TOKEN` 是你自己的 token(不是 admin token) ## 安装 ### 1. 安装 tea ```bash # macOS brew install tea # Linux (amd64) curl -sL https://dl.gitea.com/tea/0.9.2/tea-0.9.2-linux-amd64 -o /usr/local/bin/tea chmod +x /usr/local/bin/tea # Linux (arm64) curl -sL https://dl.gitea.com/tea/0.9.2/tea-0.9.2-linux-arm64 -o /usr/local/bin/tea chmod +x /usr/local/bin/tea ``` ### 2. 创建 Gitea 用户(如果还没有) 用 `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) \ --no-version-check tea login default shazhou ``` ### 6. 注册 SSH 公钥到 Gitea 将 01 步生成的公钥注册上去,以后 git clone 可走 SSH: ```bash # 方法一:Gitea Web UI # 访问 https://git.shazhou.work/user/settings/keys,添加公钥 # 方法二:API PUBKEY=$(cat ~/.ssh/id_ed25519.pub) curl -s -X POST \ -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\"}" ``` 验证 SSH 连接: ```bash ssh -T git@git.shazhou.work 2>&1 # 应该返回: Hi YOUR_NAME! You've successfully authenticated... ``` ### Gitea 账号对照表 | Gitea 用户 | 家族成员 | |------------|----------| | scottwei | 主人沙洲 | | xiaoju | 小橘 🍊 | | xingyue | 星月 🌙 | | xiaomo | 小墨 🖤 | | xiaonuo | 小糯 🍡 | | tuanzi | 团子 🐰 | | luming | 鹿鸣 🦌 | | aobing | 敖丙 🐉 | ## 验证 ```bash tea repos tea issues --repo scottwei/shazhou-workshop ```