实现示例type Attestation = { level: 1 | 2 | 3 | 4; builderId: string; materials: string[]; provenance?: string }

function validBuilder(id: string): boolean { return /^https:\/\/[A-Za-z0-9_.\-]+\/[A-Za-z0-9_.\-]+$/.test(id) }

function meets(a: Attestation, required: 1 | 2 | 3 | 4): boolean {

if (!validBuilder(a.builderId)) return false

if (a.level < required) return false

if (required >= 3 && (!a.provenance || a.materials.length === 0)) return false

return true

}

function gate(a: Attestation, required: 1 | 2 | 3 | 4): { ok: boolean; errors: string[] } {

const errors: string[] = []

if (!meets(a, required)) errors.push('slsa-level')

return { ok: errors.length === 0, errors }

}

审计与发布治理审计构建等级与来源;未达标阻断并提供达标清单与步骤建议。等级策略变更需审批与归档。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部