目标
维基里的合规清单只能提醒忙碌的人,接进 CI 的同一份清单能阻断忙碌的人。本工作流把外部义务分成两类:机械项做成会挂构建的门禁,判断项做成具名签署,发布时自动归档证据包——审计从数天的邮件考古变成一次文件传输。
步骤要点
- 盘点义务:汇集发布附带的一切外部要求——许可证兼容、数据驻留、隐私声明、审计日志、无障碍声明,逐条标注来源与责任人。
- 分类可检与判断:许可证扫描、SBOM、必需声明属机器可检;隐私措辞等属人工判断,各配验证方式。
- 门禁自动化:许可扫描对照白名单、SBOM 生成、必需头与声明在场、审计日志启用,违反即构建失败并点名义务。
- 判断项路由到具名评审:法务、隐私官等按角色签署并记录在发布清单。
- 发布时打包证据:清单状态、门禁输出、签署集合进不可变的发布记录供审计调阅。
排错提示
义务越攒越多且来源不明说明盘点只做了一次,按季度对照合同与监管变化复核清单;机械项被塞进人工评审是偷懒,能跑脚本的都进 CI,把人的判断留给真正需要判断的措辞;证据包找不到是归档步骤没挂进发布流水线,把它作为发布完成的最后一步强制执行。
适用边界
门禁只能覆盖可机械化的义务,措辞与裁量类合规始终依赖具名人工判断;监管变化可能让既有门禁标准失效,清单要随法规版本演进而不是一次成型。
代码示例
release checklist v1.8.0 (compliance view)
GATE license-scan PASS 0 unknown, 3 copyleft (allowed)
GATE sbom-generated PASS CycloneDX, 1,204 packages
GATE privacy-notice PASS version 2026-10 present
GATE audit-log-enabled PASS config verified in staging
REVIEW data-residency SIGNED privacy-officer@ 14:02Z
REVIEW accessibility SIGNED a11y-lead@ 15:11Z
------------------------------
all obligations met -> release unlocked
bundle: release-v1.8.0-evidence.tar (immutable)