实现示例type Advisory = { id: string; pkg: string; version: string; severity: 'block' | 'warn'; reason: string; until: number }

class Bus {

subs: Map<string, (a: Advisory) => void> = new Map()

sub(name: string, fn: (a: Advisory) => void) { this.subs.set(name, fn) }

pub(a: Advisory) { for (const fn of this.subs.values()) fn(a) }

}

function valid(a: Advisory): boolean { return !!a.id && !!a.pkg && !!a.version && !!a.reason && a.until > Date.now() }

function decide(a: Advisory): 'block' | 'warn' | 'pass' { if (!valid(a)) return 'block'; if (a.until <= Date.now()) return 'pass'; return a.severity }

function rollback(targets: string[], frozen: Set<string>): string[] { return targets.filter(t => !frozen.has(t)) }

审计与运行治理审计包含公告、范围、到期与决策;产线默认阻断 `block` 项。广播后触发冻结与回滚,并输出受影响清单与处理结果。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部