关于 ActionsPulse
ActionsPulse 是面向 GitHub 组织的 DevOps 可观测性 MCP 服务,可从 IDE 中分析 GitHub Actions 数据并生成交互式 HTML 仪表板。它覆盖 DORA 指标、流水线健康、成本、合规与团队效能。
主要功能
- 01分析 DORA 指标及其趋势
- 02查看工作流运行、耗时与失败情况
- 03按仓库和工作流拆分 Actions 成本
- 04生成安全与合规报告
- 05评估 DevOps 成熟度并提供改进建议
适用场景
- 01追踪组织的部署频率和恢复时间
- 02定位运行成本较高的工作流
- 03检查流水线失败与运行器利用率
- 04生成 SOC2 等合规报告
MCP 相关
此 MCP 服务向 MCP 客户端提供 GitHub Actions 可观测性工具,并可生成交互式 HTML 报告。它使用 GitHub token 和组织设置来读取相关 GitHub 数据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e GITHUB_TOKEN -e GITHUB_ORG -e GITHUB_ENTERPRISE_SLUG -e DEFAULT_REPO_FILTER ghcr.io/tsviz/actions-pulse:v2.3.0GITHUB_TOKEN密钥GitHub Personal Access Token (fine-grained recommended) with read access to Actions, Administration, Deployments, Issues, Pull RequestsGITHUB_ORGTarget GitHub organization to monitorGITHUB_ENTERPRISE_SLUGEnterprise slug for enhanced cross-org features (optional)DEFAULT_REPO_FILTERComma-separated list of repository names to monitor (e.g., 'my-app,my-api,frontend'). If not set, all org repos are queried.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/tsviz/actions-pulse:v2.3.0stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
ActionsPulse 🚀
通过 VS Code 和 GitHub Copilot 实时观测 GitHub Actions
DORA 指标 • 成本分析 • CI/CD 健康状况 • 安全合规
☝️ 这是 ActionsPulse 生成的真实交互式 HTML 仪表板——查看下方完整介绍
✨ ActionsPulse 是什么?
ActionsPulse 是一款智能体式 MCP 服务,可将 DevOps 可观测性直接带入 IDE。向 GitHub Copilot 提问,例如:
💬 “显示过去 30 天的 DORA 指标”
💬 “哪些工作流的成本最高?”
💬 “生成一份 SOC2 合规报告”
💬 “我们本月的部署频率是多少?”
即可获得包含可执行见解的交互式可视化仪表板。
🎯 功能
| 功能 | 组织版 | 企业版 |
|---|---|---|
| 📊 DORA 指标 | ✅ | ✅ 增强版 |
| ⚡ 性能分析 | ✅ | ✅ |
| 💰 成本优化 | ✅ | ✅ 跨组织 |
| 🏃 运行器利用率 | ✅ 自托管 | ✅ 所有运行器 |
| 👥 团队效率 | ✅ | ✅ |
| 🔒 合规报告 | ✅ (GHAS) | ✅ |
| 💾 缓存分析 | ✅ | ✅ |
| 🎓 成熟度评估 | ✅ | ✅ |
🖼️ 仪表板介绍
ActionsPulse 会生成可在任意浏览器中打开的交互式 HTML 仪表板。只需向 Copilot 提问:
💬 “为我的组织生成 DevOps 报告”
也可以直接使用 generate_devops_reports 工具。以下是完整介绍:
📊 仪表板概览 — 一目了然地查看所有关键指标的执行摘要
主仪表板提供:
- 🎯 带可视化仪表的 DevOps 成熟度评分
- 📈 DORA 指标摘要(部署频率、前置时间、变更失败率、MTTR)
- ⚡ CI/CD 流水线健康状况概览
- 💰 成本分析要点
- 🔒 安全与合规状态
- 快速导航至详细报告
📈 DORA 指标 — 行业标准的 DevOps 性能指标
跟踪四项关键 DORA 指标:
- 部署频率 — 发布到生产环境的频率
- 变更前置时间 — 从提交到部署至生产环境所需的时间
- 变更失败率 — 导致故障的部署所占百分比
- 平均恢复时间 — 从故障中恢复所需的时间 每项指标都包含趋势分析,并与行业标准(精英、高水平、中等、低水平表现者)进行基准比较。
⚡ CI/CD 流水线健康状况 — 工作流性能与可靠性
深入了解 CI/CD 流水线:
- 🔄 工作流成功率和趋势
- ⏱️ 平均运行时间及 P95/P99 延迟
- 🚨 失败分析和常见错误模式
- 📊 按仓库和工作流细分的数据
- 🏃 排队时间和运行器利用率
💰 成本优化 — 运行器成本与节省机会
了解并优化 GitHub Actions 支出:
- 💵 按运行器类型统计的总成本(GitHub 托管与自托管)
- 📊 按仓库、工作流和操作系统细分的成本
- 🎯 可执行的节省成本建议
- 📈 支出趋势和预测
- ⚡ 效率指标(每个工作流的成本、每分钟的成本)
🔒 安全与合规 — 可供审计的合规报告
确保合规与安全:
- ✅ 合规框架覆盖情况(SOC2、ISO27001、HIPAA、PCI-DSS)
- 🔍 密钥扫描状态和警报
- 🛡️ 代码扫描结果
- 📋 分支保护规则合规情况
- 🔐 GHAS(GitHub Advanced Security)功能采用情况
🎓 DevOps 成熟度 — 组织能力评估
评估 DevOps 成熟度:
- 📊 综合成熟度评分及可视化仪表
- 🎯 各类别评分(CI/CD、测试、安全、监控等)
- 📈 按影响优先级排列的改进建议
- 🏆 与行业标准进行基准比较
- 📋 可执行的进阶路线图
💡 如何生成这些仪表板:
# 用自然语言向 Copilot 提问: "生成过去 30 天的 DevOps 报告" # 或直接调用工具: #generate_devops_reports --timeframe 30d报告将以独立 HTML 文件的形式保存到带时间戳的文件夹中,可与团队分享或嵌入内部 Wiki!
🚀 快速开始
从 MCP Registry 安装
ActionsPulse 已发布到官方 MCP Registry,名称为 io.github.tsviz/actions-pulse。
🌐 Web UI(推荐) — 使用 MCP Registry UI,一键安装到 VS Code 或 Cursor:
- 前往 vemonet.github.io/mcp-registry
- 搜索“actions-pulse”
- 点击 Install → 选择客户端(VS Code、Cursor)
- 按提示配置环境变量
手动 Docker 设置 — 或按照以下步骤手动配置。
前提条件
- ✅ 已安装 Docker
- ✅ GitHub Personal Access Token(建议使用细粒度令牌)
- ✅ VS Code 和 GitHub Copilot
1. 创建细粒度个人访问令牌
-
前往 GitHub Settings → Developer Settings → Personal Access Tokens → Fine-grained tokens
-
点击 Generate new token
-
配置基本设置:
- Token name:
actions-pulse-mcp - Expiration:90 天(或遵循你的安全策略)
- Resource owner:选择你的组织
- Repository access:All repositories
- Token name:
-
设置 Repository permissions:
权限 访问权限 必需 用途 Actions Read ✅ 是 工作流运行、缓存使用情况 Administration Read ✅ 是 账单数据、仓库设置 Contents Read ✅ 是 从 devops-config 仓库读取配置文件 Custom properties Read ✅ 是 读取仓库上的自定义属性值 Deployments Read ✅ 是 部署频率、环境(DORA) Discussions Read 🔶 可选 社区参与度指标 Environments Read ✅ 是 环境保护规则 Issues Read ✅ 是 Issue 指标、解决时间(DORA) Merge queues Read 🔶 可选 合并队列采用情况和等待时间 Metadata Read ✅ 是 基本仓库信息(自动授予) Pull requests Read ✅ 是 PR 指标、前置时间、审查时间(DORA) -
设置 Organization permissions:
权限 访问权限 必需 用途 Custom properties Read ✅ 是 在组织级别读取属性定义/架构 Custom properties for organizations Read ✅ 是 读取分配给仓库的属性值 -
设置 Organization permissions(续):
权限 访问权限 必需 用途 Members Read 🔶 可选 用于生产力指标的团队成员信息 Self-hosted runners Read 🔶 可选 Runner 使用率指标 Administration Read ✅ 是 组织账单和设置 -
可选权限(用于合规功能,需要 GitHub Advanced Security):
权限 访问权限 必需 用途 Secret scanning alerts Read ❌ 可选 合规审计报告 Code scanning alerts Read ❌ 可选 合规审计报告 -
点击 Generate token 并安全保存令牌
2. 配置 MCP 服务
选项 A:使用 env-file(推荐)
添加到你的 ~/.mcp.env:
GITHUB_TOKEN=ghp_your_fine_grained_token_here
📄 使用 env-file 的 mcp.json
添加到 VS Code 的 MCP 设置(~/.vscode/mcp.json 或工作区 .vscode/mcp.json):
{
"servers": {
"actions-pulse": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--env-file", "/path/to/.mcp.env",
"-e", "GITHUB_ORG=your-org-name",
"ghcr.io/tsviz/actions-pulse:latest"
],
"type": "stdio"
}
}
}
选项 B:直接使用环境变量
📄 使用内联环境变量的 mcp.json
{
"servers": {
"actions-pulse": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "GITHUB_TOKEN=ghp_your_token",
"-e", "GITHUB_ORG=your-org-name",
"ghcr.io/tsviz/actions-pulse:latest"
],
"type": "stdio"
}
}
}
3. 环境变量参考
| 变量 | 必需 | 描述 |
|---|---|---|
GITHUB_TOKEN | ✅ 是 | 个人访问令牌(推荐使用细粒度令牌) |
GITHUB_ORG | ✅ 是 | 要监控的目标 GitHub 组织(例如,my-company)。所有 API 调用均使用此组织。 |
DEFAULT_REPO_FILTER | ❌ 否 | 要监控的仓库列表,以逗号分隔(例如,my-app,my-api)。请参阅下文的优先级规则。 |
GITHUB_API_URL | ❌ 否 | 自定义 API URL(默认值:https://api.github.com) |
GITHUB_ENTERPRISE_SLUG | ❌ 否 | 用于增强功能的 Enterprise slug |
GITHUB_ENTERPRISE_URL | ❌ 否 | GitHub Enterprise Server API URL |
DEVOPS_CONFIG_REPO | ❌ 否 | 配置仓库名称(默认值:devops-config) |
DEVOPS_CONFIG_PATH | ❌ 否 | 配置文件的本地路径(用于挂载的配置) |
Repo 筛选优先级
确定要查询哪些仓库时,ActionsPulse 按以下优先级(从高到低)进行处理:
| 优先级 | 来源 | 适用范围 | 示例 |
|---|---|---|---|
| 1️⃣ | 工具调用中的 repo_filter 参数 | 单个工具 | get_dora_metrics(repo_filter: "app1,app2") |
| 2️⃣ | inventory.yaml 中的仓库 | generate_devops_reports | 在配置文件中定义的仓库 |
| 3️⃣ | DEFAULT_REPO_FILTER 环境变量 | 所有工具(回退选项) | DEFAULT_REPO_FILTER=my-app,my-api |
| 4️⃣ | 通过 GitHub API 获取的组织中所有仓库 | 所有工具 | (未设置任何内容时的默认选项) |
提示: 无需配置仓库即可快速设置,只需在 MCP Registry 安装程序中设置 DEFAULT_REPO_FILTER。如需更丰富的元数据(团队、层级、合规标签),请使用 inventory.yaml。
4. 配置文件(可选)
默认情况下,ActionsPulse 会通过 GitHub API 查询组织中的所有仓库——无需配置文件。你可以使用 repo_filter 等工具参数动态筛选仓库。
可选配置文件让你能够定义持久化元数据(团队、层级、合规标签),用于筛选和报告。有两种方式:
选项 A:远程配置仓库(推荐团队使用)
在组织中创建一个 devops-config 仓库,并采用以下结构:
devops-config/
├── devops-config.yaml # Main configuration
├── repositories/
│ └── inventory.yaml # List of repos to monitor
├── policies/
│ ├── workflow-policies.yaml # CI/CD standards
│ └── security-policies.yaml # Security requirements
└── dashboards/ # Dashboard configs
MCP 服务会自动发现并从 {org}/devops-config 仓库加载配置。
选项 B:本地配置文件(用于开发/测试)
将本地配置目录挂载到 Docker 容器中:
📄 带配置卷的 mcp.json
{
"servers": {
"actions-pulse": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--env-file", "/path/to/.mcp.env",
"-e", "GITHUB_ORG=your-org-name",
"-e", "DEVOPS_CONFIG_PATH=/app/config",
"-v", "/path/to/your/config:/app/config:ro",
"ghcr.io/tsviz/actions-pulse:latest"
],
"type": "stdio"
}
}
}
仓库清单示例
📄 inventory.yaml
创建 repositories/inventory.yaml,以定义要监控的仓库:
apiVersion: actions-pulse/v1
kind: RepositoryInventory
metadata:
name: my-inventory
version: "1.0.0"
description: "Repositories to monitor"
spec:
discovery:
enabled: false # Only monitor explicit repos
repositories:
- name: my-app
team: platform
tier: tier-1
compliance: [SOC2]
tags: [java, production]
- name: my-api
team: backend
tier: tier-2
tags: [nodejs, staging]
仓库层级速查
| 层级 | 优先级 | 正常运行时间 | 响应时间 | 使用场景 |
|---|---|---|---|---|
| tier-1 | 🔴 关键 | 99.9% | < 15 min | 生产环境、面向客户 |
| tier-2 | 🟡 标准 | 99% | < 1 hour | 内部工具、预发布环境 |
| tier-3 | 🟢 低 | 尽力而为 | < 24 hours | 演示、原型 |
完整的层级定义、合规要求和告警行为,请参阅 docs/ARCHITECTURE.md。
5. 重启 VS Code
更新 mcp.json 后,重启 VS Code 以加载新的 MCP 服务。你可以打开 GitHub Copilot Chat 并询问 DevOps 指标,以确认服务正在运行。
🛠️ 可用工具
📊 用量与性能指标
get_actions_usage_metrics
分析 GitHub Actions 用量和账单数据(基础版)。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- timeframe: '24h' | '7d' | '30d'
- breakdown: 'repository' | 'workflow' | 'runner_type'
get_detailed_usage_metrics ⭐
GitHub Insights 风格的详细用量指标,按工作流、作业、仓库、OS 和运行器细分。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- timeframe: '7d' | '30d' | '90d'
- repo_filter: Comma-separated list of repositories (optional)
get_detailed_performance_metrics ⭐
GitHub Insights 风格的性能指标,包含按工作流/作业/仓库/OS/运行器统计的平均运行时间、排队时间和失败率。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- timeframe: '7d' | '30d' | '90d'
- repo_filter: Comma-separated list of repositories (optional)
get_actions_performance_metrics
获取包含 P95/P99 延迟的工作流性能分析(基础版)。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- repo_name: Specific repository (optional)
- workflow_id: Specific workflow (optional)
- timeframe: '1h' | '6h' | '24h' | '7d'
🏃 运行器与成本优化
增强型成本检测:报告现在采用三级系统,以准确计算运行器成本:
- 🎯 API 检测——使用托管运行器 API 获取精确的机器规格
- 🏷️ 标签检测——与运行器目录进行模式匹配
- 📊 默认定价——基于 OS 的回退方案
详情请参阅 配置指南。
analyze_runner_utilization
分析运行器利用率和效率。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- runner_type: 'self-hosted' | 'github-hosted' | 'all'
- include_costs: Include cost analysis (default: true)
get_actions_cache_analytics
分析 Actions 缓存用量和效率。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- repo_name: Specific repository (optional)
- timeframe: '24h' | '7d' | '30d'
🔍 工作流洞察与团队效率
get_workflow_insights
获取工作流洞察并检测瓶颈。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- repo_name: Repository name (required)
- workflow_name: Workflow name or filename (required)
- analyze_dependencies: Analyze job dependencies (default: true)
get_team_productivity_metrics
根据 Actions 和提交数据分析团队效率。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- team_slug: Team slug (optional)
- include_individuals: Include individual metrics (default: false)
- timeframe: '7d' | '30d' | '90d'
get_compliance_audit_report
生成合规性和安全审计报告。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- compliance_framework: 'SOC2' | 'ISO27001' | 'HIPAA' | 'PCI-DSS' | 'CUSTOM'
- include_secrets_scan: Include secret scanning (default: true, requires GHAS)
📊 DORA 指标与开发者体验
📈 DORA 指标
get_dora_metrics
获取 DORA 指标(部署频率、前置时间、变更失败率、恢复时间)。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- timeframe: '7d' | '30d' | '90d'
- repo_filter: Comma-separated list of repositories (optional)
get_enhanced_dora_metrics
使用实际的 GitHub Deployments API 获取 DORA 指标,以实现最高准确性。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- timeframe: '7d' | '30d' | '90d'
- repo_filter: Comma-separated list of repositories (optional)
get_pull_request_metrics
获取拉取请求指标,包括前置时间、合并率和规模分布。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- timeframe: '7d' | '30d' | '90d'
- repo_name: Specific repository (optional)
- include_stale: Include stale PR analysis (optional)
get_issue_metrics
获取问题指标,包括关闭时间、标签分布和待处理工作健康状况。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- timeframe: '7d' | '30d' | '90d'
- repo_name: Specific repository (optional)
- label_filter: Filter by label (optional)
get_deployment_metrics
获取来自 GitHub Deployments API 的部署指标。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- timeframe: '7d' | '30d' | '90d'
- environment: Filter by environment (optional)
- repo_filter: Comma-separated list of repositories (optional)
get_environment_metrics
分析 GitHub 环境配置,包括保护规则。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- repo_filter: Comma-separated list of repositories (optional)
get_discussion_metrics
获取 GitHub Discussions 指标,包括回答率和互动情况。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- repo_name: Specific repository (optional)
- timeframe: '7d' | '30d' | '90d'
get_merge_queue_metrics
获取各个代码库中的合并队列使用情况和采用情况。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- repo_name: Specific repository (optional)
🏷️ 自定义属性
📋 自定义属性工具
get_org_custom_properties
列出组织的所有自定义属性定义。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
get_custom_properties_analytics
分析各个代码库中的自定义属性使用情况和覆盖率。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
get_repos_by_property
按自定义属性值查找代码库。
Parameters:
- org_name: Organization name (optional if GITHUB_ORG is set)
- property_name: Custom property name (e.g., team, tier, compliance)
- property_value: Property value to filter by (optional)
🏢 企业功能(可选)
⚙️ 企业配置
如果你使用 GitHub Enterprise,可以通过添加以下内容启用增强功能:
GITHUB_ENTERPRISE_SLUG=your-enterprise-slug
这将启用:
- 跨组织账单汇总
- 企业范围的 Runner 池
- 汇总审计日志
🔧 开发
🛠️ 构建和运行命令
本地构建
npm install
npm run build
docker build -t actions-pulse:local .
本地运行(不使用 Docker)
export GITHUB_TOKEN=ghp_your_token
export GITHUB_ORG=your-org
npm start
🤖 使用 GitHub Actions 自动生成 DevOps 报告
你可以在 GitHub Actions 工作流中使用 GitHub Copilot CLI 和 ActionsPulse MCP 服务,自动生成 DevOps 报告。这样便可按计划生成每周报告、按需分析,并根据洞察自动创建问题。
工作原理
- 在工作流运行器中安装 Copilot CLI
- 使用你的 GitHub 令牌配置 ActionsPulse MCP
- 运行 Copilot,使用提示词调用 MCP 工具生成报告
- 创建问题,包含生成的报告
工作流示例
完整的可用示例请参阅 .github/workflows/weekly-devops-report.yml。
📄 关键工作流步骤
- name: Setup MCP config
env:
GITHUB_TOKEN: ${{ secrets.GH_PAT_DEVOPS }}
run: |
mkdir -p ~/.copilot
printf '%s\n' '{
"mcpServers": {
"actions-pulse": {
"command": "docker",
"args": ["run", "-i", "--rm", "-e", "GITHUB_TOKEN='"$GITHUB_TOKEN"'", "-e", "GITHUB_ORG=your-org", "ghcr.io/tsviz/actions-pulse:latest"],
"tools": ["*"]
}
}
}' > ~/.copilot/mcp-config.json
- name: Generate DevOps Report
env:
GITHUB_TOKEN: ${{ secrets.GH_PAT_DEVOPS }}
GH_TOKEN: ${{ secrets.GH_PAT_DEVOPS }}
run: |
copilot --yolo \
--disable-builtin-mcps \
--additional-mcp-config @$HOME/.copilot/mcp-config.json \
--prompt "Use the actions-pulse MCP tools to generate a DevOps report..."
Copilot CLI 关键标志
| 标志 | 说明 |
|---|---|
--yolo | 自动批准所有工具调用(无需确认提示) |
--disable-builtin-mcps | 禁用内置 MCP 服务(仅使用自定义服务) |
--additional-mcp-config @<file> | 从文件加载 MCP 服务配置(使用 $HOME,而不是 ~) |
--prompt "<text>" | Copilot 要执行的提示词 |
提示
- 在配置路径中使用
$HOME,而不是~— 在@file参数中不会展开波浪号 - 将令牌嵌入 args 中 — MCP 配置中的
env块不会向 Docker 传递变量 - 在 MCP 配置中包含
"tools": ["*"]— 此字段为必填项
📚 文档
| 文档 | 描述 |
|---|---|
| 快速入门 | 5 分钟内即可开始使用 |
| 配置指南 | 完整的配置参考 |
| 架构 | 系统设计和层级定义 |
配置示例
可直接使用的配置示例位于 examples/ 目录中:
| 文件 | 描述 |
|---|---|
| mcp-docker.json | 使用 Docker 的 VS Code MCP 配置 |
| mcp-local.json | 用于本地开发的 VS Code MCP 配置 |
| mcp-envfile.json | 使用环境文件的 VS Code MCP 配置 |
| .env.example | 环境变量模板 |
| inventory.yaml | 仓库清单示例 |
| devops-config.yaml | DevOps 观察器配置 |
| docker-compose.yml | Docker Compose 部署 |
�📄 许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。