From 65c19212e86d7bab330973c610f5f28d8463b215 Mon Sep 17 00:00:00 2001 From: "xiaobing.wang" Date: Wed, 15 Apr 2026 18:35:55 +0800 Subject: [PATCH] docs: clarify private git dependency handling --- gitops-app-onboarding/SKILL.md | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/gitops-app-onboarding/SKILL.md b/gitops-app-onboarding/SKILL.md index b9b5d84..f3017c1 100644 --- a/gitops-app-onboarding/SKILL.md +++ b/gitops-app-onboarding/SKILL.md @@ -48,7 +48,7 @@ GitLab CI 默认依赖这些变量: - 对外暴露方式 - 运行时配置结构 - 平台共享依赖与应用私有依赖 -- 是否实际依赖 `git.in.chaitin.net/ai/baizhiyun/opensdk` +- 是否检测到私有 Git 依赖(例如 `git.in.chaitin.net/ai/baizhiyun/opensdk`) 应用仓库自己的 `README.md` 是应用运行架构的真相来源;本 skill 只定义平台接入规则。 @@ -94,6 +94,12 @@ CI 导出结果固定为: ## GitLab CI 规则 +### 私有 Git 依赖判定口径 + +下文中的“检测到私有 Git 依赖”统一指:仓库在 `go.mod`、`go.sum`、源码 import、构建脚本或 Dockerfile 构建流程中,实际引用了需要认证访问的私有 Git 仓库(例如 `git.in.chaitin.net/ai/baizhiyun/opensdk`)。 + +只有在检测到这类依赖时,才启用 `.netrc`、私有仓库认证,以及 `GOPRIVATE`、`GONOSUMDB`、`GONOPROXY`、`GOINSECURE`、`GIT_SSL_NO_VERIFY` 这一组私有 Go 变量;否则不要添加这些配置。 + ### stages 固定使用: @@ -117,13 +123,16 @@ CI 导出结果固定为: - 运行在分支和 MR 上 - 安装当前语言栈的最小依赖 -- 如依赖私有仓库,补齐认证 +- 只有检测到私有 Git 依赖时才补齐认证;否则不要引入 `.netrc` - 使用项目原生测试入口 Go 项目默认变量写在 `.gitlab-ci.yml` 的 `variables:`: - `GOPROXY=https://goproxy.cn,direct` - `GOSUMDB=sum.golang.google.cn` + +只有检测到私有 Git 依赖时,才额外设置这些变量: + - `GOPRIVATE=git.in.chaitin.net` - `GONOSUMDB=git.in.chaitin.net` - `GONOPROXY=git.in.chaitin.net` @@ -144,11 +153,11 @@ Go 项目默认变量写在 `.gitlab-ci.yml` 的 `variables:`: - 登录 `registry.baizhi.cloud` - 优先使用 `docker buildx` -- 私有 Git 依赖通过 `.netrc` 和 build secret 传入 +- 只有检测到私有 Git 依赖时,才通过 `.netrc` 和 build secret 传入;否则不要生成 `.netrc` 相关步骤 - 如需额外 CA,也通过 build secret 传入 - 如果 Dockerfile 内会执行 `go mod download`、`go build` 等 Go 构建命令,必须通过 `--build-arg` 透传 Go 构建变量,不要只写在 `.gitlab-ci.yml` 的 `variables:` 里 -- 至少透传:`GOPROXY`、`GOSUMDB`、`GOINSECURE` -- 如果 Dockerfile 用到了 `GOPRIVATE`、`GONOSUMDB`、`GONOPROXY`,也一并透传 +- 无论是否检测到私有 Git 依赖,至少透传:`GOPROXY`、`GOSUMDB` +- 只有检测到私有 Git 依赖时,才额外透传:`GOPRIVATE`、`GONOSUMDB`、`GONOPROXY`、`GOINSECURE` - Dockerfile 中对应变量必须有 `ARG`,并让构建命令实际使用传入值,而不是退回默认值 禁止: @@ -352,12 +361,12 @@ Chart 必须反映应用的真实运行架构。 ## 百智云用户鉴权接入 -只有在仓库里实际依赖 `git.in.chaitin.net/ai/baizhiyun/opensdk` 时才需要接入。 +只有在检测到私有 Git 依赖,且该依赖就是 `git.in.chaitin.net/ai/baizhiyun/opensdk` 时才需要接入。 识别规则: -- 先检查 `go.mod`、`go.sum`、源码 import,以及构建脚本里是否实际引用 `git.in.chaitin.net/ai/baizhiyun/opensdk` -- 只有确认存在这个依赖或导入时,才进入本节并索取百智云相关材料 +- 先按上文“私有 Git 依赖判定口径”检查仓库,再确认私有依赖中是否实际包含 `git.in.chaitin.net/ai/baizhiyun/opensdk` +- 只有确认包含这个依赖或导入时,才进入本节并索取百智云相关材料 - 如果仓库里没有这个包,就跳过整段,不要要求接入百智云,也不要生成对应配置 固定规则: @@ -415,7 +424,7 @@ Chart 必须反映应用的真实运行架构。 - 如果 `Application` 仍引用 `releases//manifests/`,该 path 在发布结果中实际存在 - 如果镜像内包含固定 upstream 配置,upstream service 名与 Chart 渲染结果一致 - Neo4j 一类自带依赖的启动环境变量不依赖 `$(OTHER_ENV)` 展开 -- 如果检测到 `git.in.chaitin.net/ai/baizhiyun/opensdk`,缺少必填百智云私有配置时交互停在当前项继续索取 +- 如果检测到的私有 Git 依赖中包含 `git.in.chaitin.net/ai/baizhiyun/opensdk`,缺少必填百智云私有配置时交互停在当前项继续索取 ## 最终输出 @@ -434,5 +443,5 @@ Chart 必须反映应用的真实运行架构。 - Chart 与应用真实组件不匹配 - 在生产 release values 中写示例地址 - 擅自发明新的公网 host -- 在未检测到 `git.in.chaitin.net/ai/baizhiyun/opensdk` 时仍强行接入百智云 +- 在未检测到私有 Git 依赖中的 `git.in.chaitin.net/ai/baizhiyun/opensdk` 时仍强行接入百智云 - 用户未提供必填值时伪造占位内容