# PR #41362 完整报告

- 仓库：`vllm-project/vllm`
- 标题：Stop mergify labelling from skipping pre-commit
- 合并时间：2026-04-30 20:48
- 原文链接：http://prhub.com.cn/vllm-project/vllm/pull/41362

---

# 执行摘要

- 一句话：修复 mergify 标注导致 pre-commit 被跳过
- 推荐动作：此 PR 值得快速合并，修复了 CI 流程中的回归问题，逻辑清晰，改动小。

# 功能与动机

PR #39523 的标签名过滤导致 mergify 自动标注后 pre-commit 被跳过。作者在 PR body 中详细描述了 bug 的根因：mergify 自动应用标签的 labeled 事件会取消 in-progress 的运行，但新运行因标签名不在白名单中而立即跳过。

# 实现拆解

此 PR 回退了 #39523 中的标签名过滤逻辑，仅保留 labeled 事件触发。具体变更如下：

1. **移除 `pre-run-check` 作业的标签名过滤**：在 `.github/workflows/pre-commit.yml` 中，将 `pre-run-check` 作业的 `if` 条件从复杂的标签名过滤简化为 `github.event_name == 'pull_request'`。这使得无论什么标签被添加，`pre-run-check` 都会执行。

2. **移除 `pre-commit` 作业的标签名过滤**：同样将该作业的 `if` 条件中的标签名过滤移除，恢复为仅依赖 `pre-run-check` 的结果（`success` 或 `skipped`）。

3. **保持 labeled 事件触发**：保留 PR #39523 添加的 `types: [opened, synchronize, reopened, labeled]` 触发条件，确保标签添加时仍能触发工作流。

关键逻辑：标签添加会触发工作流，`pre-run-check` 内部脚本（基于 PR 标签和作者合并数）决定是否实际执行 `pre-commit`，而非在 workflow 层面通过 `if` 过滤。

关键文件：
- `.github/workflows/pre-commit.yml`（模块 CI/CD；类别 infra；类型 infrastructure）: 核心变更文件，移除了导致 pre-commit 被跳过的标签名过滤条件。

关键符号：未识别

## 关键源码片段

### `.github/workflows/pre-commit.yml`

核心变更文件，移除了导致 pre-commit 被跳过的标签名过滤条件。

```yaml
# pre-run-check 作业：移除了标签名过滤，只检查 pull_request 事件
pre-run-check:
  if: github.event_name == 'pull_request'
  # 内部脚本仍会检查 PR 标签和作者，决定是否需要运行 pre-commit

# pre-commit 作业：移除标签名过滤，仅依赖 pre-run-check 结果
pre-commit:
  needs: pre-run-check
  if: always() && (needs.pre-run-check.result == 'success' || needs.pre-run-check.result == 'skipped')

```

# 评论区精华

PR 无审核评论。维护者 DarkLight1337 批准并合并。

- 暂无高价值评论线程

# 风险与影响

- 风险：低风险。此 PR 本质上是回退有问题的过滤逻辑，恢复为更简单的触发方式。潜在风险包括：
 - 如果 `pre-run-check` 内部逻辑有缺陷，可能导致 pre-commit 在不该运行时运行，但该逻辑已存在且稳定。
 - 移除标签名过滤后，任何标签添加都会触发工作流，但仅会多执行一次 `pre-run-check`，对 CI 资源影响极小。
 - 影响：影响范围限于 CI 基础设施，开发者无感知。核心效果是确保 pre-commit 在 PR 被 mergify 标注后仍能正确触发，避免 CI 遗漏检查。
 - 风险标记：CI 流程变更

# 关联脉络

- PR #39523 Fix pre-commit labeled trigger system: 此 PR 引入了导致 bug 的标签名过滤，本 PR 回退了该过滤逻辑。