auth.json必须放在项目根目录、COMPOSER_HOME(Linux/macOS为~/.composer/auth.json,Windows为%APPDATA%\Composer\auth.json)或系统级配置目录;权限须为600(Linux/macOS)或当前用户可读(Windows),域名key须与仓库URL的host完全一致。

auth.json 文件必须放在哪几个路径才有效
Composer 只在三个固定位置自动读取 auth.json:项目根目录(与 composer.json 同级)、COMPOSER_HOME 目录、系统级配置目录。它不会扫描子目录,也不会读取 vendor/ 或 .gitignore 里被排除的文件。
Linux/macOS 下全局路径是 ~/.composer/auth.json;Windows 是 %APPDATA%\Composer\auth.json。写成 ~/.config/composer/auth.json 或 ./config/auth.json 都无效——Composer 完全忽略。
项目级 auth.json 必须和 composer.json 在同一目录,且不能被 .gitignore 删除(开发时本地放一份是常见做法,但别提交)。
权限错误比内容错误更致命
即使 auth.json 写对了路径和字段,只要权限不对,Composer 就静默跳过,不报错也不提示。这是 90% 的认证失败原因。
Linux/macOS 必须执行:chmod 600 ~/.composer/auth.json
Windows 不需 chmod,但要确保文件属性未设为“只读”,且当前用户有读取权限。
以下情况都会导致失效:
- 文件权限是 644 或 755
- 文件属主不是当前运行 composer 的用户(如用 sudo 运行后属主变成 root)
- Windows 上文件被标记为“来自互联网”,需右键 → 属性 → 解除锁定
域名 key 必须和仓库 URL 的 host 完全一致
在 auth.json 中,http-basic 下的 key 是纯域名(含端口),不是完整 URL,也不是协议前缀。写错就静默跳过。
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
比如你的 repositories.url 是:"https://gitlab.internal:8443/acme/utils.git"
那 auth.json 里必须写:"gitlab.internal:8443" —— 端口不能省,也不能加 https:// 或路径。
常见错误:
- 写成
"https://gitlab.internal"(带协议) - 写成
"gitlab.internal"(漏端口,而实际用了非标端口) - 大小写不一致,如
"GitLab.Internal" - 用 IP 地址代替域名,但仓库 URL 用的是域名(或反之)
用 composer config 命令生成最安全
手动编辑 JSON 容易出格式错误,密码还可能留在 shell 历史里。用命令行工具生成可规避这两点。
项目级写入:composer config http-basic.gitlab.internal:8443 deploy-token abc123xyz
全局写入:composer config --global http-basic.gitlab.internal:8443 deploy-token abc123xyz
注意:composer config 不支持 github-oauth 的交互式录入,GitHub Enterprise 的 token 还得手动编辑 auth.json 添加 github-oauth 段,并确保 key 是 "github.com"。

















