一个强大的 GitHub Actions CI/CD 架构分析工具,使用 LLM 进行智能分类和理解。
- 全面的数据提取:提取所有 CI/CD 组件,包括工作流、Job、Step、复合 Action 和脚本
- LLM 驱动分析:使用 LLM 进行智能分类和理解,无硬编码规则
- 可复用工作流支持:完整支持 GitHub Actions 可复用工作流(
workflow_call) - Matrix Job 展开:完整展开 matrix 配置的所有 Job 变体
- 脚本分析:分析 Python、Shell、PowerShell 和 Batch 脚本,提取函数信息
- 关系映射:构建工作流调用图、Job 依赖图和 Action 使用图
- Pre-commit 集成:提取并记录 pre-commit hook 配置
- 多 CI 系统支持:支持 CircleCI、GitLab CI、Azure Pipelines 等其他 CI 系统
最小化代码自动化,最大化 LLM 智能:
- 代码只负责数据提取:Python 脚本从工作流、Job、Step、Action 和脚本中提取原始数据
- LLM 负责所有理解工作:分类、组织、关系分析和摘要都由 LLM 处理
- 无硬编码分类:LLM 根据项目实际内容动态定义阶段和分类
- 按逻辑顺序组织:LLM 按照 CI/CD 执行流程组织文档
- Python 3.8+
- PyYAML
pip install pyyamlpython ci_data_extractor.py /path/to/repo ci_data.json这将输出 ci_data.json,包含:
- 所有工作流及其 Job 和 Step 详情
- Matrix 配置和 with_params 参数
- 复合 Action 及其输入/输出
- CI 脚本及其函数列表
- 工作流调用关系图
- Action 使用统计
- Pre-commit 配置
中小型项目(≤30 个工作流):
python ci_diagram_generator.py prompt ci_data.json prompt.txt大型项目(>30 个工作流):
python ci_diagram_generator.py split ci_data.json ./prompts/ 10这将生成多个 prompt 文件用于并行处理。
读取 prompt 文件并发送给 LLM 进行分析。将响应保存为 llm_response.md。
python ci_diagram_generator.py diagram ci_data.json llm_response.md CI_ARCHITECTURE.mdci_architecture/
├── ci_data_extractor.py # 核心数据提取模块
├── ci_diagram_generator.py # Prompt 生成和结果处理
├── SKILL.md # LLM Agent 使用说明文档
├── README.md # 本文件
└── LICENSE # Apache 2.0 许可证
┌─────────────────────────────────────────────────────────────────────────┐
│ 数据提取 (Python) │
│ ci_data_extractor.py │
│ • 扫描 .github/workflows、.github/actions、脚本目录 │
│ • 提取所有工作流、Job、Step、配置参数 │
│ • 提取脚本函数和调用关系 │
│ • 输出完整的 JSON 数据 │
└─────────────────────────────────────────────────────────────────────────┘
│
│ ci_data.json
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ 生成 LLM Prompt (Python) │
│ ci_diagram_generator.py │
│ • 将原始数据格式化为详细的 prompt │
│ • 包含所有工作流、Job、配置、关系信息 │
│ • 指导 LLM 按照执行逻辑组织内容 │
└─────────────────────────────────────────────────────────────────────────┘
│
│ Prompt
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ LLM 分析 │
│ │
│ LLM 负责: │
│ • 分析 CI/CD 流程阶段 │
│ • 确定执行顺序 │
│ • 展示调用关系和依赖 │
│ • 组织为易读的架构文档 │
│ • 提供关键发现和建议 │
└─────────────────────────────────────────────────────────────────────────┘
│
│ Markdown 文档
▼
┌─────────────────────────────────────────────────────────────────────────┐
│ 保存结果 (Python) │
│ ci_diagram_generator.py │
│ • 清理格式 │
│ • 保存为 CI_ARCHITECTURE.md │
└─────────────────────────────────────────────────────────────────────────┘
生成的架构文档包含:
- 项目概述 - 项目类型和 CI/CD 整体架构
- CI/CD 流程图 - 展示整体架构的 ASCII 图
- 按阶段组织的内容 - 按执行阶段组织的工作流
- 工作流详情 - 完整的 Job 列表、依赖关系、关键配置
- Matrix Job 展开 - 所有 matrix 变体完整列出
- 脚本和 Action 索引 - 按目录/用途组织
- Pre-commit 配置 - 外部和本地 hooks
- 关键发现和建议
- 附录 - 工作流调用关系树
- GitHub Actions(主要支持)
- Workflows (.github/workflows/*.yml)
- Composite Actions (.github/actions/*/action.yml)
- Reusable Workflows (workflow_call 触发器)
- CircleCI (.circleci/config.yml)
- GitLab CI (.gitlab-ci.yml)
- Azure Pipelines (azure-pipelines.yml)
- Jenkins (Jenkinsfile)
- Travis CI (.travis.yml)
- Drone CI (.drone.yml)
- Buildkite (buildkite.yml)
- Pre-commit (.pre-commit-config.yaml)
支持分析以下脚本类型:
- Python (.py) - 函数定义、导入、subprocess 调用
- Shell (.sh) - 函数、source 命令、脚本执行
- PowerShell (.ps1) - Dot-sourcing、脚本调用
- Batch (.bat) - Call 命令、脚本引用
主要提取类,负责:
- 查找 CI 相关目录
- 提取完整的工作流数据
- 解析复合 Action
- 分析脚本并跟踪嵌套调用
- 构建关系图
WorkflowData- 完整的工作流信息JobData- Job 详情及 matrix 展开StepData- Step 执行详情ActionData- 复合 Action 信息ScriptData- 脚本分析结果PreCommitConfigData- Pre-commit 配置WorkflowCallInput/WorkflowCallOutput- 可复用工作流输入/输出
- Python 3.8+
- PyYAML
pip install pyyaml基于 Apache License, Version 2.0 许可。详见 LICENSE。
Copyright (c) 2026 IceT5. All rights reserved.
欢迎贡献!请随时提交 Pull Request。
IceT5
本工具专为 LLM Agent 设计,以实现最大的灵活性和智能化 CI/CD 架构分析。