用途:用于 baserCMS 仓库安全公告(GHSA、含 triage 状态)的端到端处理,从公告列表获取、指摘验证、按公告逐项修复,到创建私有 fork、分支、PR,再到本地验证。预设 gh CLI 已认证,目标上游由 BCSA_UPSTREAM 指定(默认 baserproject/basercms);base 分支为执行时当前分支,需事先 checkout 目标发布分支。
主要能力:scripts/list-advisories.sh [--state triage] 按状态统计并列出公告;scripts/fetch-advisory.sh <GHSA-ID> 获取单条详情并保存到 /tmp/bc-advisories;scripts/create-fork-branch.sh <GHSA-ID> 创建 fork、添加 remote、以当前分支为起点建分支;scripts/push-with-retry.sh <remote> <branch> [max] 带重试推送;scripts/open-pr.sh <GHSA-ID> [--title T] [--body-file F] 以当前分支为 base 建 PR;scripts/build-integration.sh [集成分支名] 合并全部安全分支;scripts/run-tests.sh [--filter X] 本地全量测试。验证阶段需将指摘与当前分支实际代码比对,判定「准确/不准确/不适用」,不适用者要求提供具体 PoC;修复需按 hunk 粒度应用、避免整文件覆盖,同一 sink 重复公告需整理为同一修复或关闭重复项。
适用场景:安全公告分诊与修复、逐公告的私有修复分支与 PR 制作、合并后本地回归验证。限制:公告私有 fork 中无法使用 Copilot 审阅与 GitHub Actions,需以本地代码审阅和本地 Docker 测试(basercms-unittest)为准;新建 fork 后推送可能因未反映而失败,需按退出码重试;报告者回复、GHSA 元信息(受理、严重度、影响、修正版、credits、重复关闭)、CVE 申请、JPCERT/JVN 往来、厂商声明、官网公告原稿与记录归档均不在本技能范围。相关测试见 basercms-unittest,迁移类冲突参考 cakephp-migration、php-migration、basercms-plugin-migration。更多安装与使用细节暂未提供。