私有 GitLab 仓库不走 packagist.org 镜像,因阿里云等镜像仅缓存公开包,对私有源无感知;Composer 会直连 repositories 中声明的 GitLab 地址,而非镜像。正确做法是:在 repositories 中显式声明 "type": "vcs" 和完整 HTTPS URL,并通过 composer config http-basic.gitlab.example.com token "" 将认证信息存入 auth.json(需 .gitignore 保护),避免误配 type: "composer" 导致 404。

私有 GitLab 仓库根本不会走 packagist.org 镜像
Composer 镜像(如阿里云、腾讯云)只代理 packagist.org 上的公开 PHP 包元数据和 ZIP 分发,对私有 GitLab 仓库完全无感知——你配置了也白配,Composer 自动跳过镜像逻辑,直连你 repositories 里写的 GitLab 地址。
私有源依赖的是 type 和 URL 的显式声明
要让 Composer 正确拉取私有 GitLab 包,关键不是镜像,而是:
• repositories 数组中必须明确写 "type": "vcs" 或 "type": "git"(推荐前者)
• url 必须是完整 HTTPS 地址,如 https://gitlab.example.com/group/project.git
• 若启用了 token 认证,得用 composer config http-basic.gitlab.example.com token "" 存进 auth.json,而不是塞进 composer.json
CNB 云原生构建平台的 Git 操作技能,支持代码克隆、提交、推送、分支管理、Merge Request 管理、流水线触发与结果读取。初次使用需收集用户的 Git 用户名和邮箱。
配了全局镜像反而可能引发元数据错乱
如果你在全局或项目里错误地把私有源写成 "type": "composer" 并指向镜像地址(比如 "url": "https://mirrors.aliyun.com/composer/"),Composer 会尝试从镜像拉取私有包的 packages.json,结果必然是 404 —— 因为镜像压根没缓存你的私有包。
- 现象:
Could not find package internal/sdk或卡在Cloning into '...' - 原因:镜像不托管私有包,也不提供权限代理;
"packagist.org": false只禁官方源,不加速私有源 - 正确做法:私有源单独声明,公共包走镜像,两者并存不冲突
真正影响私有仓库速度的,是认证和协议
慢通常来自反复握手或 Git 协议被拦截,不是网络延迟本身:
• 用 HTTPS + Personal Access Token 比 SSH 更稳定(尤其 CI 环境)
• 确保 auth.json 在 .gitignore 里,且域名与 GitLab 实际访问域名完全一致(gitlab.example.com ≠ www.gitlab.example.com)
• 如果公司防火墙拦截 HTTPS,临时降级为 HTTP(仅限内网)需加 --allow-http 参数

















