support.bugs 不生效是因为 composer 官方 schema 仅支持 issues 键,不支持 bugs;正确写法是 "support": {"issues": "https://github.com/myorg/mypackage/issues"},且需手动触发 packagist reindex。

Composer 的 support 字段不支持 Bug 追踪链接(如 issue tracker),它只接受预定义的键名;想暴露 issue 地址,必须用 support.source 或 homepage,或退而求其次放在 description 里 —— 但后者不被 Packagist 解析为可点击链接。
为什么 support.bugs 不生效
Composer 官方 schema 明确限定 support 对象只允许以下键:email、issues、source、docs、rss、forum、wiki、irc、twitter、chat。注意:issues 是合法键,bugs 不是 —— 很多人因命名直觉误写成 bugs,结果字段被完全忽略。
-
issues值应为指向 issue 列表页的 URL(如 GitHub 的https://github.com/vender/package/issues),不是单个 issue 模板链接 - Packagist 仅识别
issues键,并在包页面渲染为 “Bug reports” 标签 + 可点击链接 - 若写成
bugs或bug_tracker,Composer install 时无报错,但该字段静默丢弃
正确配置 support.issues 的写法
在 composer.json 的 support 下直接使用 issues 键,值为标准 issue 列表 URL:
围绕关键发现、作用机制、临床相关性及研究局限性展开讨论。适用于撰写或优化任何生物医学论文的“讨论(Discussion)”部分——包括结果解读、与既往文献关联、阐释意外发现、界定研究局限性,以及撰写结论。当用户输入以下任一指令时也会自动触发该功能: - “write my discussion” - “help me discuss my findings” - “how do I compare to prior studies” - “write the limitations par
{
"support": {
"issues": "https://github.com/myorg/mypackage/issues"
}
}
- URL 必须可公开访问,且返回 200 状态码;若重定向到登录页(如私有仓库未授权),Packagist 会标记为无效链接
- GitHub/GitLab 用户可直接用项目主页后缀
/issues,无需加?q=或模板参数 - 不建议填
https://github.com/myorg/mypackage/blob/main/.github/ISSUE_TEMPLATE/bug.md—— 这是 issue 模板,不是列表页,Packagist 不识别
替代方案:当 issues 不够用时
如果需要同时提供 issue 列表、PR 指南、行为准则等,support 字段能力有限,应分层处理:
-
support.source填仓库地址(如https://github.com/myorg/mypackage)—— Packagist 会显示 “Source” 按钮,点进去自然能看到 Issues tab -
homepage可设为项目文档站,其中明确写出 issue 提交规范和链接 - 在
readme.md顶部固定位置放 badge:[](https://github.com/myorg/mypackage/issues) - 避免把 issue 链接塞进
description字段 —— Packagist 会截断显示,且不转义为超链接
真正容易被忽略的是 Packagist 的缓存机制:修改 composer.json 后,需手动触发 reindex(在 Packagist 包页面点 “Update”),否则新 issues 链接不会立即出现。另外,GitHub 仓库若启用了 issue templates,记得保持 .github/ISSUE_TEMPLATE 目录存在且可读 —— 否则用户点过去看到的是空列表,第一印象就坏了。










