From 8e893d02a0ea0b52d654d035c2c061c8acbabb64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=A1=E8=8B=A5?= Date: Sat, 11 Apr 2026 17:29:11 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20Gitea=20=E6=94=B9=E4=B8=BA=20yongpxu/wz?= =?UTF-8?q?dj=20SSH(gitea-wzdj)=EF=BC=8C=E8=A1=A5=E5=85=85=20API=20?= =?UTF-8?q?=E5=BB=BA=E5=BA=93=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- 玩值开发文档/8、部署/Gitea同步说明.md | 16 +++++++++++--- .../8、部署/gitea_api_create_user_repo.sh | 21 +++++++++++++++++++ 玩值开发文档/8、部署/sync_to_gitea.sh | 2 +- 3 files changed, 35 insertions(+), 4 deletions(-) create mode 100755 玩值开发文档/8、部署/gitea_api_create_user_repo.sh diff --git a/玩值开发文档/8、部署/Gitea同步说明.md b/玩值开发文档/8、部署/Gitea同步说明.md index 4d963e9..b6521de 100644 --- a/玩值开发文档/8、部署/Gitea同步说明.md +++ b/玩值开发文档/8、部署/Gitea同步说明.md @@ -1,6 +1,8 @@ # 玩值电竞 App → Gitea 同步说明 -> 仓库已投屏到 Gitea:**http://192.168.1.201:3000/fnvtk/wzdj** +> 内网 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**)。 > 本地有更新会自动/手动推送到该仓库。 ## 一、远程与分支 @@ -8,10 +10,18 @@ | 远程名 | 地址 | 说明 | |:---|:---|:---| | `origin` | https://github.com/fnvtk/wzdj.git | GitHub 主仓 | -| `gitea` | http://192.168.1.201:3000/fnvtk/wzdj.git | Gitea 镜像(投屏目标,内网) | +| `gitea` | `git@gitea-wzdj:yongpxu/wzdj.git` | Gitea(内网,SSH) | 当前默认分支:`main`。 +### 管理员:允许「push 自动新建仓库」(可选) + +若希望**任意用户**首次 `git push` 到不存在的路径即可建库,需 Gitea **站点管理员**在「管理后台」或通过 `app.ini` 开启(具体名称以当前 Gitea 版本为准): + +- `[repository]` 下 **`ENABLE_PUSH_CREATE_USER = true`**(允许用户 push 建库) + +未开启时,可用本目录脚本 **`gitea_api_create_user_repo.sh`** 先建空库再推送。 + ## 二、自动同步(推荐) - **每次 commit 后**:已配置 `post-commit` 钩子,自动执行 `git push gitea main`,把最新提交推到 Gitea。 @@ -38,5 +48,5 @@ bash "玩值开发文档/8、部署/sync_to_gitea.sh" ## 五、检查是否已同步 -- 打开:http://192.168.1.201:3000/fnvtk/wzdj +- 打开:http://192.168.1.201:3000/yongpxu/wzdj - 查看最新提交时间与本地 `git log -1` 一致即表示已同步。 diff --git a/玩值开发文档/8、部署/gitea_api_create_user_repo.sh b/玩值开发文档/8、部署/gitea_api_create_user_repo.sh new file mode 100755 index 0000000..6c0f5a5 --- /dev/null +++ b/玩值开发文档/8、部署/gitea_api_create_user_repo.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# 在内网 Gitea 上通过 API 创建「当前登录用户」名下的空仓库(避免 push 建库被禁时的 403) +# 依赖:macOS 钥匙串已保存 http://192.168.1.201:3000 的账号密码(与 git credential-osxkeychain 一致) +# 用法:REPO_NAME=myproj bash 玩值开发文档/8、部署/gitea_api_create_user_repo.sh + +set -euo pipefail +GITEA_HTTP="${GITEA_HTTP:-http://192.168.1.201:3000}" +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) +U=$(echo "$CRED" | grep ^username= | cut -d= -f2-) +P=$(echo "$CRED" | grep ^password= | cut -d= -f2-) + +curl -sS -u "$U:$P" -X POST "$GITEA_HTTP/api/v1/user/repos" \ + -H "Content-Type: application/json" \ + -d "{\"name\":\"$REPO_NAME\",\"private\":false,\"auto_init\":false,\"default_branch\":\"main\"}" + +echo +echo "[gitea_api_create_user_repo] 若返回 JSON 含 full_name,则已创建。随后:" +echo " git remote add gitea git@gitea-wzdj:${U}/${REPO_NAME}.git" +echo " git push -u gitea main" diff --git a/玩值开发文档/8、部署/sync_to_gitea.sh b/玩值开发文档/8、部署/sync_to_gitea.sh index d0f663c..73866f0 100755 --- a/玩值开发文档/8、部署/sync_to_gitea.sh +++ b/玩值开发文档/8、部署/sync_to_gitea.sh @@ -20,4 +20,4 @@ else echo "[sync_to_gitea] 已提交:$COMMIT_MSG" fi git push "$REMOTE" "$BRANCH" -echo "[sync_to_gitea] 已推送到 gitea/$BRANCH → http://192.168.1.201:3000/fnvtk/wzdj" +echo "[sync_to_gitea] 已推送到 gitea/$BRANCH → ssh://git@192.168.1.201:2222/yongpxu/wzdj (网页: http://192.168.1.201:3000/yongpxu/wzdj)"