Prhub

#25926 [CI] Fix bot-cherry-pick auth: GITHUB_TOKEN for push, dedicated PAT for PR

原始 PR 作者 Kangyan-Zhou 合并时间 2026-05-21 10:28 文件变更 2 提交数 2 评论 1 代码增减 +5 / -3

执行摘要

修复 cherry-pick 工作流 git push 权限问题

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 被拒。

PR 修复清晰且必要,建议尽快合并。同时建议仓库管理员按照 PR 描述中的指引创建 GH_PAT_FOR_CHERRY_PICK 密钥。

讨论亮点

无 review 评论或讨论。PR 描述中已详细说明了修复方案和原理。

实现拆解

  1. 修改 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 分支。
  2. 引入新的 PAT 用于创建 PR:将 gh pr create 步骤的环境变量 GH_TOKEN${{ secrets.GH_PAT_FOR_PULL_REQUEST }} 改为 ${{ secrets.GH_PAT_FOR_CHERRY_PICK }}。新 PAT 只需 Pull requests: WriteContents: Read 权限,用于打开 PR 以触发下游 CI。
  3. 修复 warn! 宏格式:在 sgl-model-gateway/src/service_discovery.rs 中将过长的 warn!() 字符串拆分为多行,以满足 rustfmt 格式要求。这是 #25294 引入的格式漂移,导致 lint 检查失败。
文件 模块 状态 重要度
.github/workflows/bot-cherry-pick.yml CI 工作流 modified 4.39
sgl-model-gateway/src/service_discovery.rs 服务发现 modified 4.31

关键源码片段

sgl-model-gateway/src/service_discovery.rs infrastructure

顺手修复的格式化问题,影响 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;
                }
            }
            // ... 后续逻辑不变
        }
    }
}

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

本次改动仅涉及 CI 工作流配置和一行格式调整,风险较低。主要风险在于:如果 GH_PAT_FOR_CHERRY_PICK 未正确配置(权限不足或未创建),gh pr create 步骤可能失败,但不会影响其他流程。同时,GITHUB_TOKEN 的使用符合 GitHub Actions 最佳实践,不会引入安全性问题。

直接影响 bot-cherry-pick.yml 工作流,修复了长期存在的 git push 403 错误,确保 cherry-pick 自动化流程恢复正常。不影响其他工作流或产品代码。对开发者无直接影响,但有助于维护流程的自动化。

需要管理员创建密钥

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论