社区健康衡量一个仓库是否为接纳用户与贡献者做好了准备:那些向新来者说明项目是什么、依据什么条款可以使用、以及如何参与的标准文件。这些文件正是代码库与社区之间的分界。
- 类别:社区与采用(类别内占 35%)
- 在总指数中的权重:6.3%
- 指标键名:
community_health
数值如何计算
对标准文件逐项加权核查,每项或存在或缺失(许可证一行还可获得部分分值——见下文):
| 组成部分 | 权重 |
|---|---|
| README | 22.5 |
| 许可证 | 22.5 |
| CONTRIBUTING 指南 | 18 |
| 行为准则 | 13.5 |
| 议题模板 | 7.2 |
| PR 模板 | 6.3 |
许可证如何检测
许可证的存在只检测一次,由三个来源共同判定:仓库自身的许可证元数据、 GitHub 的社区档案,以及 OpenSSF Scorecard 公开发布的、工具中立的 License 检查。只要任一来源发现了文件即计为存在——这些来源在约 1% 的仓库上存在分歧,而单个端点不可用不应导致许可证被报告为缺失。
判定结果为以下三种状态之一:
| 状态 | 含义 | 计分 |
|---|---|---|
| 标准 | 可识别的许可证,由 SPDX 代码标识 | 22.5 |
| 自定义 | 存在许可证文件,但其文本不是可识别的许可证 | 16.9 |
| 无 | 没有任何来源发现许可证文件 | 0 |
自定义许可证是真实的许可证,可获得大部分权重。它不能获得全部权重:自动化工具无法识别的许可证是采用过程中的实际障碍,因为策略工具、企业法务审查与软件包注册表都依赖可识别的标识符,而读者若不亲自阅读文本便无法确定自己被允许做什么。GitHub 将这种情形报告为 NOASSERTION——即找到了许可证但无法归类,这与完全没有许可证并不相同。
Scorecard 的结果仍是安全态势指标的组成部分;在此处它只是三项输入之一,仅以 License 呈现。
这些文件为何承载权重
- README 与许可证是承重结构。没有 README 的仓库无法被采用;没有许可证的仓库在多数组织中在法律上无法使用——没有任何下游法务团队会批准一个使用条款未定义的依赖。二者合计承载该指标一半的权重。
- CONTRIBUTING 与行为准则把偶然的兴趣转化为持续的参与,直接滋养维护者韧性所衡量的延续性。
- 模板提升传入议题与拉取请求的信号质量,减轻维护者的分诊负担 ——对项目所能维持的响应能力而言,这是一个虽小但真实的因素。
如何解读结果
- 该清单与规模无关:一个诞生一周的项目可以在获得第一个星标之前达到 100 分,而一个缺失许可证的著名项目则明显读出不完整。这正是设计意图——该指标度量的是准备程度,而非声量。
- 被核验的是存在与否,而非文字质量——参见 信号,而非担保中的测量诚实性说明。
提升数值
每个组成部分都可在一小时内直接落实:
- 编写一份 README,涵盖项目用途、安装方式与最小示例。
- 添加带有可识别 SPDX 许可证的
LICENSE文件。 - 在
.github/下添加CONTRIBUTING.md、CODE_OF_CONDUCT.md与议题/PR 模板。
这通常是整个方法论中最容易快速提升的指标。