chore: 默认 Gitea 远程改为 fnvtk/wzdj,补充接受转移脚本与说明

Made-with: Cursor
This commit is contained in:
卡若
2026-04-11 17:42:58 +08:00
parent 8e893d02a0
commit f6f14c5525
4 changed files with 53 additions and 14 deletions

View File

@@ -1,26 +1,37 @@
# 玩值电竞 App → Gitea 同步说明
> 内网 Gitea 仓库:**http://192.168.1.201:3000/yongpxu/wzdj**
> (本机 Gitea 上原先不存在组织 `fnvtk`,已在用户 **yongpxu** 下创建同名仓库 `wzdj`,与 GitHub `fnvtk/wzdj` 对应。)
> **SSH**`git@gitea-wzdj:yongpxu/wzdj.git`(见本机 `~/.ssh/config` `Host gitea-wzdj`,端口 **2222**
> 本地有更新会自动/手动推送到该仓库。
> **默认上传目标(内网 Gitea****`fnvtk/wzdj`**
> 网页:<http://192.168.1.201:3000/fnvtk/wzdj>
> **SSH**(见本机 `~/.ssh/config` `Host gitea-wzdj`,端口 **2222**`git@gitea-wzdj:fnvtk/wzdj.git`
说明:内网里的 **fnvtk****Gitea 用户账号**(与 GitHub 上的组织名 `fnvtk` 对应),不是「组织」实体。此前曾建在 **yongpxu** 下的 `wzdj` 已**发起所有权转移**至 **fnvtk**;在 **fnvtk** 账号在网页上**接受转移**之前,远程路径 `fnvtk/wzdj` 尚不可用,`git push gitea` 可能提示找不到仓库。
### 待处理:接受转移(任选其一)
1. **网页**:使用 **fnvtk** 登录 Gitea → 通知/待办中接受 `wzdj` 仓库转移。
2. **命令行**(需 **fnvtk** 当前密码;若钥匙串密码过期请先用环境变量):
`FNVTK_PASSWORD='你的密码' bash "玩值开发文档/8、部署/gitea_accept_transfer.sh"`
接受完成后,执行 `git push gitea main` 即可。
**fnvtk** 密码与钥匙串不一致,请到「钥匙串访问」更新 **192.168.1.201**、账户 **fnvtk** 的密码,便于脚本与 `gitea_api_create_user_repo.sh` 使用。
## 一、远程与分支
| 远程名 | 地址 | 说明 |
|:---|:---|:---|
| `origin` | https://github.com/fnvtk/wzdj.git | GitHub 主仓 |
| `gitea` | `git@gitea-wzdj:yongpxu/wzdj.git` | Gitea内网SSH |
| `gitea` | `git@gitea-wzdj:fnvtk/wzdj.git` | Gitea内网默认上传 |
当前默认分支:`main`
### 管理员允许「push 自动新建仓库」(可选)
若希望**任意用户**首次 `git push` 到不存在的路径即可建库,需 Gitea **站点管理员**在「管理后台」或通过 `app.ini` 开启(具体名称以当前 Gitea 版本为准):
若希望**任意用户**首次 `git push` 到不存在的路径即可建库,需 Gitea **站点管理员**在 `app.ini` 开启(名称以版本为准):
- `[repository]`**`ENABLE_PUSH_CREATE_USER = true`**(允许用户 push 建库)
- `[repository]`**`ENABLE_PUSH_CREATE_USER = true`**
未开启时,可用本目录脚本 **`gitea_api_create_user_repo.sh`** 先建空库再推送。
未开启时,可用 **`gitea_api_create_user_repo.sh`**(默认在 **fnvtk** 名下建库)先建空库再推送。
## 二、自动同步(推荐)
@@ -48,5 +59,5 @@ bash "玩值开发文档/8、部署/sync_to_gitea.sh"
## 五、检查是否已同步
- 打开http://192.168.1.201:3000/yongpxu/wzdj
- 打开:<http://192.168.1.201:3000/fnvtk/wzdj>
- 查看最新提交时间与本地 `git log -1` 一致即表示已同步。

View File

@@ -0,0 +1,22 @@
#!/bin/bash
# 以「接收方 fnvtk」身份接受仓库转移yongpxu/wzdj → fnvtk/wzdj
# 本机钥匙串里 fnvtk 密码若与 Gitea 不一致会失败,请用环境变量传入当前密码:
# FNVTK_PASSWORD='…' bash 玩值开发文档/8、部署/gitea_accept_transfer.sh
set -euo pipefail
GITEA_HTTP="${GITEA_HTTP:-http://192.168.1.201:3000}"
if [[ -z "${FNVTK_PASSWORD:-}" ]]; then
FNVTK_PASSWORD=$(security find-internet-password -s 192.168.1.201 -a fnvtk -w 2>/dev/null || true)
fi
if [[ -z "${FNVTK_PASSWORD:-}" ]]; then
echo "[gitea_accept_transfer] 请设置 FNVTK_PASSWORD或把正确密码写入钥匙串主机 192.168.1.201,账户 fnvtk" >&2
exit 1
fi
curl -sS -u "fnvtk:${FNVTK_PASSWORD}" -X POST \
"${GITEA_HTTP}/api/v1/repos/yongpxu/wzdj/transfer/accept" \
-H "Content-Length: 0"
echo
echo "[gitea_accept_transfer] 若返回 JSON 含 full_name: fnvtk/wzdj则已就绪。随后git push gitea main"

View File

@@ -1,15 +1,21 @@
#!/bin/bash
# 在内网 Gitea 上通过 API 创建「当前登录用户名下空仓库(避免 push 建库被禁时的 403
# 依赖:macOS 钥匙串已保存 http://192.168.1.201:3000 的账号密码(与 git credential-osxkeychain 一致
# 在内网 Gitea 上通过 API 在指定用户名下创建空仓库(避免 push 建库被禁时的 403
# 依赖:钥匙串已保存该用户在 http://192.168.1.201:3000 的密码;默认用户为 fnvtk玩值默认上传账号
# 用法REPO_NAME=myproj bash 玩值开发文档/8、部署/gitea_api_create_user_repo.sh
# GITEA_OWNER=yongpxu REPO_NAME=test bash …
set -euo pipefail
GITEA_HTTP="${GITEA_HTTP:-http://192.168.1.201:3000}"
GITEA_OWNER="${GITEA_OWNER:-fnvtk}"
REPO_NAME="${REPO_NAME:?请设置 REPO_NAME例如 REPO_NAME=wzdj}"
CRED=$(printf "protocol=http\nhost=192.168.1.201:3000\n\n" | git credential-osxkeychain get)
CRED=$(printf "protocol=http\nhost=192.168.1.201:3000\nusername=${GITEA_OWNER}\n\n" | git credential-osxkeychain get)
U=$(echo "$CRED" | grep ^username= | cut -d= -f2-)
P=$(echo "$CRED" | grep ^password= | cut -d= -f2-)
if [[ -z "$P" ]]; then
echo "[gitea_api_create_user_repo] 无法读取 ${GITEA_OWNER} 的密码,请用「钥匙串访问」为 192.168.1.201 添加该账户密码" >&2
exit 1
fi
curl -sS -u "$U:$P" -X POST "$GITEA_HTTP/api/v1/user/repos" \
-H "Content-Type: application/json" \
@@ -17,5 +23,5 @@ curl -sS -u "$U:$P" -X POST "$GITEA_HTTP/api/v1/user/repos" \
echo
echo "[gitea_api_create_user_repo] 若返回 JSON 含 full_name则已创建。随后"
echo " git remote add gitea git@gitea-wzdj:${U}/${REPO_NAME}.git"
echo " git remote set-url gitea git@gitea-wzdj:${GITEA_OWNER}/${REPO_NAME}.git"
echo " git push -u gitea main"

View File

@@ -20,4 +20,4 @@ else
echo "[sync_to_gitea] 已提交:$COMMIT_MSG"
fi
git push "$REMOTE" "$BRANCH"
echo "[sync_to_gitea] 已推送到 gitea/$BRANCH → ssh://git@192.168.1.201:2222/yongpxu/wzdj (网页: http://192.168.1.201:3000/yongpxu/wzdj"
echo "[sync_to_gitea] 已推送到 gitea/$BRANCH → ssh://git@192.168.1.201:2222/fnvtk/wzdj (网页: http://192.168.1.201:3000/fnvtk/wzdj"