执行摘要
- 一句话:修复 cherry-pick 工作流 git push 权限问题
- 推荐动作:PR 修复清晰且必要,建议尽快合并。同时建议仓库管理员按照 PR 描述中的指引创建
GH_PAT_FOR_CHERRY_PICK 密钥。
功能与动机
bot-cherry-pick.yml 自 2026 年 2 月以来每次运行时 git push 均返回 403 错误。原因是 checkout 使用了 GH_PAT_FOR_PULL_REQUEST(由 sglang-bot 持有),而该 PAT 只具有 Pull requests: Write 权限,缺少 Contents: Write,导致后续 git push 被拒。
实现拆解
- 修改 checkout token:在
.github/workflows/bot-cherry-pick.yml 中将 actions/checkout 步骤的 token 从 ${{ secrets.GH_PAT_FOR_PULL_REQUEST }} 改为 ${{ secrets.GITHUB_TOKEN }}。GITHUB_TOKEN 由工作流自动生成,且工作流已声明 permissions: contents: write,因此能够正常 push 分支。
- 引入新的 PAT 用于创建 PR:将
gh pr create 步骤的环境变量 GH_TOKEN 从 ${{ secrets.GH_PAT_FOR_PULL_REQUEST }} 改为 ${{ secrets.GH_PAT_FOR_CHERRY_PICK }}。新 PAT 只需 Pull requests: Write 和 Contents: Read 权限,用于打开 PR 以触发下游 CI。
- 修复
warn! 宏格式:在 sgl-model-gateway/src/service_discovery.rs 中将过长的 warn!() 字符串拆分为多行,以满足 rustfmt 格式要求。这是 #25294 引入的格式漂移,导致 lint 检查失败。
关键文件:
.github/workflows/bot-cherry-pick.yml(模块 CI 工作流;类别 infra;类型 infrastructure): 核心变更文件,修复了 CI 工作流的认证配置,包含 token 切换和新 PAT 引入。
sgl-model-gateway/src/service_discovery.rs(模块 服务发现;类别 source;类型 infrastructure): 顺手修复的格式化问题,影响 lint 检查,与本 PR 主要目的无关但被包含在同一提交中。
关键符号:未识别
关键源码片段
sgl-model-gateway/src/service_discovery.rs
顺手修复的格式化问题,影响 lint 检查,与本 PR 主要目的无关但被包含在同一提交中。
// sgl-model-gateway/src/service_discovery.rs
// 改动:将过长的 warn! 调用拆分为多行,满足 rustfmt 格式要求
// 功能不变,仅格式整理
impl PodInfo {
pub fn should_include(pod: &Pod, config: &ServiceDiscoveryConfig) -> bool {
if config.pd_mode {
if config.prefill_selector.is_empty() && config.decode_selector.is_empty() {
if !(config.igw_mode && !config.selector.is_empty()) {
warn!(
"PD mode enabled but both prefill_selector and decode_selector are empty"
);
// 之前是单行:warn!("PD mode enabled but both prefill_selector and decode_selector are empty");
return false;
}
}
// ... 后续逻辑不变
}
}
}
评论区精华
无 review 评论或讨论。PR 描述中已详细说明了修复方案和原理。
风险与影响
- 风险:本次改动仅涉及 CI 工作流配置和一行格式调整,风险较低。主要风险在于:如果
GH_PAT_FOR_CHERRY_PICK 未正确配置(权限不足或未创建),gh pr create 步骤可能失败,但不会影响其他流程。同时,GITHUB_TOKEN 的使用符合 GitHub Actions 最佳实践,不会引入安全性问题。
- 影响:直接影响
bot-cherry-pick.yml 工作流,修复了长期存在的 git push 403 错误,确保 cherry-pick 自动化流程恢复正常。不影响其他工作流或产品代码。对开发者无直接影响,但有助于维护流程的自动化。
- 风险标记:需要管理员创建密钥
关联脉络
- PR #25294 [SMG] Support regular worker discovery alongside PD workers in IGW mode: 本 PR 中的 rustfmt 修复是针对 #25294 引入的格式漂移。
参与讨论