部署关联Skill deployment-correlation

这个技能用于关联生产事件与最近的部署和代码变更,帮助调查部署是否导致问题、识别变更内容或错误引入的提交。关键词:部署关联、事件调查、代码变更、DevOps、CI/CD、部署监控、故障排除。

DevOps 0 次安装 0 次浏览 更新于 3/16/2026

名称: 部署关联 描述: 关联事件与最近部署和代码变化。用于调查部署是否导致问题、查找变更或识别引入错误的提交。 允许的工具: Bash(python *)

部署关联

认证

重要: 凭证由代理层自动注入。不要检查环境变量中的 GITHUB_TOKEN——您将看不到它。直接运行脚本即可;认证是透明处理的。


核心问题:“什么变了?”

在任何事件调查中,第一个问题应该是:“最近部署了什么?”

可用脚本

所有脚本都在 .claude/skills/deployment-correlation/scripts/

list_commits.py - 查找最近部署

python .claude/skills/deployment-correlation/scripts/list_commits.py --repo OWNER/REPO [--branch BRANCH] [--since TIMESTAMP] [--limit N]

# 示例:
python .claude/skills/deployment-correlation/scripts/list_commits.py --repo incidentfox/api --branch main --limit 20
python .claude/skills/deployment-correlation/scripts/list_commits.py --repo incidentfox/api --since "2026-01-27T00:00:00Z"

compare_commits.py - 版本间差异

python .claude/skills/deployment-correlation/scripts/compare_commits.py --repo OWNER/REPO --base BASE --head HEAD

# 示例:
python .claude/skills/deployment-correlation/scripts/compare_commits.py --repo incidentfox/api --base v1.2.3 --head main
python .claude/skills/deployment-correlation/scripts/compare_commits.py --repo incidentfox/api --base abc123 --head def456

get_commit.py - 详细提交信息

python .claude/skills/deployment-correlation/scripts/get_commit.py --repo OWNER/REPO --sha COMMIT_SHA

# 示例:
python .claude/skills/deployment-correlation/scripts/get_commit.py --repo incidentfox/api --sha abc1234

3步关联过程

第1步:获取最近部署

查找事件时间附近的部署:

# 列出生产分支的最近提交
python list_commits.py --repo org/repo --branch main --limit 20

关键问题:

  • 事件前1-2小时内部署了什么?
  • 部署成功还是失败?
  • 谁触发了部署?

第2步:识别可疑提交

比较事件时间附近的代码变更:

# 比较当前状态与先前已知良好状态
python compare_commits.py --repo org/repo --base v1.2.3 --head main

# 获取特定提交详情
python get_commit.py --repo org/repo --sha abc123

寻找:

  • 对失败组件/服务的更改
  • 配置更改(环境变量、功能标志)
  • 依赖项更新
  • 数据库迁移

第3步:关联症状

匹配代码变更与观察到的症状。

关联检查清单:

  • [ ] 时间线匹配:症状是否在部署完成后开始?
  • [ ] 组件匹配:部署是否触及失败的服务?
  • [ ] 模式匹配:错误消息是否与更改的代码相关?

关联模式

模式1:部署后延迟飙升

时间线:
14:00 - 部署完成
14:05 - 延迟增加
14:10 - 警报触发

调查:
1. list_commits.py --repo org/repo --branch main → 查找14:00部署
2. get_commit.py --repo org/repo --sha <sha> → 查看更改的文件
3. 寻找:连接池更改、超时配置、新外部调用

模式2:特定服务错误

症状: “服务X抛出NullPointerException”

调查:
1. compare_commits.py --base last-good-deploy --head current → 什么变了?
2. 过滤对服务X文件的更改
3. get_commit.py 可疑提交

模式3:逐渐退化

症状: 内存使用在几天内逐渐上升

调查:
1. list_commits.py --since "7天前" → 所有最近变更
2. 寻找:新缓存、数据结构更改、内存分配

快速命令参考

目标 命令
最近提交 list_commits.py --repo X --branch main
比较版本 compare_commits.py --repo X --base v1 --head v2
提交详情 get_commit.py --repo X --sha abc123
时间过滤 list_commits.py --repo X --since "2026-01-27T00:00:00Z"

输出格式

## 部署关联摘要

### 时间线
- **事件开始**: [时间戳]
- **最后成功部署**: [时间戳, 提交sha]
- **先前部署**: [时间戳, 提交sha]

### 自上次已知良好以来的变更
- **提交**: N提交
- **文件更改**: M文件
- **作者**: [列表]

### 可疑变更
1. **[提交 sha]** - [摘要]
   - 文件: [更改文件列表]
   - 可疑原因: [为什么这可能相关]

### 关联置信度
- **高**: 部署明显匹配时间线并触及失败组件
- **中**: 时间线匹配但变更间接
- **低**: 无明显关联,考虑其他原因

### 推荐操作
1. [如果高置信度] 考虑回滚到 [提交 sha]
2. [如果中] 调查特定变更
3. [如果低] 查看基础设施、依赖项或外部因素

应避免的反模式

  1. 假设最新部署总是原因 - 仔细检查时间线
  2. 忽略间接变更 - 配置文件、依赖项可能导致问题
  3. 错过多仓库部署 - 检查所有已部署的服务
  4. 忘记功能标志 - 部署可能启用休眠代码
  5. 跳过CI失败 - “成功”部署可能跳过测试