diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..ee68de5 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,16 @@ +# 大二进制文件走 Git LFS,避免仓库膨胀 / 网页预览超时 +# 提交这类文件前,先在本机执行一次: git lfs install +*.pptx filter=lfs diff=lfs merge=lfs -text +*.ppt filter=lfs diff=lfs merge=lfs -text +*.docx filter=lfs diff=lfs merge=lfs -text +*.doc filter=lfs diff=lfs merge=lfs -text +*.xlsx filter=lfs diff=lfs merge=lfs -text +*.xls filter=lfs diff=lfs merge=lfs -text +*.pdf filter=lfs diff=lfs merge=lfs -text +*.zip filter=lfs diff=lfs merge=lfs -text +*.rar filter=lfs diff=lfs merge=lfs -text +*.7z filter=lfs diff=lfs merge=lfs -text +*.mp4 filter=lfs diff=lfs merge=lfs -text +*.mov filter=lfs diff=lfs merge=lfs -text +*.psd filter=lfs diff=lfs merge=lfs -text +*.ai filter=lfs diff=lfs merge=lfs -text diff --git a/.gitea/workflows/ai-review.yml b/.gitea/workflows/ai-review.yml index 06ee1d3..81c76df 100644 --- a/.gitea/workflows/ai-review.yml +++ b/.gitea/workflows/ai-review.yml @@ -1,5 +1,7 @@ # AI 代码审查:每次 PR 触发,用 Claude Code 调用智谱 GLM(glm-5.2) 审查 diff, # 并把结论评论到 PR。走 GLM 的 Anthropic 兼容端点,无需访问 Anthropic 官方。 +# 密钥用 Gitea 的 ${{ secrets.* }}(同仓库 PR 正常下发;来自 fork 的跨仓库 PR 会被 +# Gitea 隐藏密钥 → 自动跳过审查,不报错)。请在团队仓库内开同仓库 PR。 name: AI Code Review on: pull_request: @@ -9,33 +11,45 @@ jobs: review: runs-on: ubuntu-latest env: - # 关键:把 Claude Code 指向智谱 GLM 的 Anthropic 兼容端点(已验证可用) ANTHROPIC_BASE_URL: https://open.bigmodel.cn/api/anthropic ANTHROPIC_API_KEY: ${{ secrets.ZHIPU_API_KEY }} ANTHROPIC_MODEL: glm-5.2 - CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "1" # 关闭遥测,避免访问被墙地址 + CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC: "1" DISABLE_AUTOUPDATER: "1" IS_SANDBOX: "1" # CI 容器以 root 运行,需此项才能用 --dangerously-skip-permissions steps: - name: 检出代码 - # 手动克隆,避免从 github.com 下载 actions/checkout(内网不可达) env: REVIEW_PAT: ${{ secrets.REVIEW_PAT }} run: | - git clone "http://oauth2:${REVIEW_PAT}@gitea:3000/${{ gitea.repository }}.git" . + if [ -z "$REVIEW_PAT" ]; then + echo "::warning::REVIEW_PAT 为空:通常是来自 fork 的跨仓库 PR(Gitea 会隐藏密钥)。请在团队仓库内开同仓库 PR。本次跳过审查。" + echo "SKIP_REVIEW=1" >> "$GITHUB_ENV" + exit 0 + fi + git config --global http.extraHeader "Authorization: Basic $(printf 'oauth2:%s' "$REVIEW_PAT" | base64 -w0)" + git clone "http://gitea:3000/${{ gitea.repository }}.git" . git checkout "${{ gitea.event.pull_request.head.ref }}" - name: 生成 PR diff + if: env.SKIP_REVIEW != '1' run: | BASE="${{ gitea.event.pull_request.base.ref }}" git fetch origin "$BASE" git diff "origin/$BASE...HEAD" > pr.diff echo "diff 行数: $(wc -l < pr.diff)" - - name: 安装 Claude Code - run: npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com + - name: 安装 Claude Code(已装则跳过) + if: env.SKIP_REVIEW != '1' + run: | + if command -v claude >/dev/null 2>&1; then + echo "claude 已存在,跳过安装" + else + npm install -g @anthropic-ai/claude-code --registry=https://registry.npmmirror.com + fi - name: 运行 AI 审查 + if: env.SKIP_REVIEW != '1' # Claude Code 会自动读取本仓库 CLAUDE.md 与 .claude/skills/* run: | claude -p "$(cat .claude/review-prompt.md)" \ @@ -45,6 +59,7 @@ jobs: --max-turns 15 > review.md || true - name: 把审查结论评论到 PR + if: env.SKIP_REVIEW != '1' env: REVIEW_PAT: ${{ secrets.REVIEW_PAT }} API: ${{ vars.MAIN_API }} @@ -52,11 +67,11 @@ jobs: PR: ${{ gitea.event.pull_request.number }} run: | if [ -s review.md ]; then - BODY=$(node -e 'let d="";process.stdin.on("data",c=>d+=c).on("end",()=>process.stdout.write(JSON.stringify({body:d})))' < review.md) + node -e 'let d="";process.stdin.on("data",c=>d+=c).on("end",()=>process.stdout.write(JSON.stringify({body:d})))' < review.md > /tmp/body.json curl -fsS -X POST "$API/repos/$REPO/issues/$PR/comments" \ -H "Authorization: token $REVIEW_PAT" \ -H "Content-Type: application/json" \ - -d "$BODY" + --data @/tmp/body.json else echo "review.md 为空,跳过评论" fi diff --git a/files/光明区文旅全域地图及AI导览POC建设方案.docx b/files/光明区文旅全域地图及AI导览POC建设方案.docx index 4b2cb6f..b9d3d83 100644 Binary files a/files/光明区文旅全域地图及AI导览POC建设方案.docx and b/files/光明区文旅全域地图及AI导览POC建设方案.docx differ diff --git a/files/文旅小程序三期规划方案20260709.pptx b/files/文旅小程序三期规划方案20260709.pptx index 4334b76..d2d0b66 100644 Binary files a/files/文旅小程序三期规划方案20260709.pptx and b/files/文旅小程序三期规划方案20260709.pptx differ diff --git a/files/文旅小程序三期规划方案202607091517.pptx b/files/文旅小程序三期规划方案202607091517.pptx index 39d4d3c..be0eac9 100644 Binary files a/files/文旅小程序三期规划方案202607091517.pptx and b/files/文旅小程序三期规划方案202607091517.pptx differ