用途:外部贡献者从自己的 fork 向 brave/brave-core 提交 PR,出于安全原因 Brave 的大部分 CI 不会在 fork PR 上运行。sync-and-rebase-pr-from-fork.yml 工作流会创建组织内镜像分支(contributor-<owner>-<headRefName>)和草稿 PR,从而在 rebase 后的提交上重新触发完整 CI。本技能负责为贡献者的每个开放 PR(或显式列表中的 PR)触发该工作流,但仅当该 PR 当前 HEAD 提交尚未触发过时。
主要能力:按 GitHub 用户名解析其针对 brave/brave-core 的全部开放 PR;或接受 PR 列表(完整 URL、#36402、36402、brave/brave-core#36402 等混合形式);两者同时给出时取并集。默认仓库为 brave/brave-core,除非用户明确指定其他仓库,所有 gh 调用都传 --repo brave/brave-core。
使用方式:先用 gh pr list 或 gh pr view 解析 PR,过滤掉 isCrossRepository 为 false 及非 OPEN 状态的 PR;再用 gh run list 拉取近期运行窗口,通过读取运行日志中的 COMMIT_HASH: <40-hex> 行判断是否已触发(GitHub 不通过 runs API 暴露 workflow_dispatch 输入);对未触发的 PR 执行 gh workflow run sync-and-rebase-pr-from-fork.yml --repo brave/brave-core -f PR_NUMBER=<N> -f COMMIT_HASH=<headRefOid>,不要传 --ref。最后输出每个 PR 的状态表与汇总。批量触发前应展示待触发列表并请用户确认,除非用户明确表示无需确认。
限制:不对非跨仓库 PR 触发(工作流会退出 1);不对已关闭或已合并 PR 触发;不得用运行记录的 display_title 或 head_sha 推断 COMMIT_HASH 输入;不要预先抓取所有运行日志,应在目标 SHA 全部解析后提前停止;不要评论或修改贡献者的 PR。工作流是幂等的(强制推送 + 草稿 PR 已存在则跳过),重复触发只会浪费 CI 资源。若 100 条运行窗口不够,可扩大 --limit 或接受可能重复触发。