CI/CD智能服务平台

Sentinel CI是一个生产级的模型上下文协议(MCP)服务器,为AI代理提供跨多个CI/CD平台的安全只读访问。

  • by kiranreddi
  • HTML
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 kiranreddi/sentinel-ci

使用说明

🛡️ Sentinel CI-用于AI代理的通用CI/CD智能

一个统一的界面。四个CI/CD平台。无限的可能性。

特性 • 快速开始 • 文档 • 贡献


🌟 什么是Sentinel CI?

Sentinel CI是一个 生产级模型上下文协议(MCP)服务器 这为AI代理(如Claude)提供了跨多个平台对CI/CD数据的安全、只读访问:

  • 🔧 詹金斯 -传统企业CI/CD
  • 🚀 GitHub 操作 -现代云原生工作流
  • 🦊 GitLab 的 -一体式DevOps平台

全部通过a 单一、统一的界面 内置缓存、指标和安全性。


✨ 特性

🔒 安全第一

  • 默认情况下为只读 -无构建触发器或配置更改
  • 自动秘密编辑 -10+凭证、令牌、密钥模式
  • 审计日志 -跟踪所有操作
  • 基于令牌的身份验证 -安全的API访问

⚡ 演出

  • 智能缓存 -命中率超过70%,自适应TTL
  • 普罗米修斯指标 -P50/P95/P99延迟跟踪
  • 连接池 -高效的HTTP重用
  • 异步操作 -非阻塞I/O

🔌 多平台

  • 统一API -相同的工具适用于所有平台
  • 平台特定功能 -访问独特功能
  • 易于迁移 -无需更改代码即可切换平台
  • 可扩展的 -轻松添加新平台

📊 丰富的数据访问

  • 带有状态的作业/管道列表
  • 构建摘要和历史记录
  • 失败的阶段和错误分析
  • 测试结果和失败
  • 带有上下文的智能日志摘录
  • 健康监测

🚀 快速开始

安装

git clone https://github.com/kiranreddi/sentinel-ci.git
cd sentinel-ci
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
pip install -r requirements.txt
# Or editable install with dev tools: pip install -e ".[dev]"

配置并运行

cp .env.example .env
# Edit .env for your platform (see docs/getting-started/configuration.md)

export CI_PLATFORM=jenkins
export JENKINS_URL="https://jenkins.example.com"
export JENKINS_TOKEN="username:token"

python -m sentinel_ci
# Or: sentinel-ci-server

尝试演示(不需要CI!)

python examples/demo.py

🎯 使用示例

使用克劳德桌面

增添 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "sentinel-ci": {
      "command": "python",
      "args": ["-m", "sentinel_ci"],
      "env": {
        "CI_PLATFORM": "jenkins",
        "JENKINS_URL": "https://jenkins.example.com",
        "JENKINS_TOKEN": "your-token"
      }
    }
  }
}

程序化使用

from sentinel_ci import SentinelCI

# Initialize
sentinel = SentinelCI(platform="jenkins", url="...", token="...")

# List jobs
jobs = await sentinel.list_jobs()

# Get build details
build = await sentinel.get_build_summary("my-job", 42)

# Get failed tests
tests = await sentinel.get_failed_tests("my-job", 42)

🛠️ 支持的平台

詹金斯

export CI_PLATFORM="jenkins"
export JENKINS_URL="https://jenkins.example.com"
export JENKINS_TOKEN="username:api_token"

特征:

  • ✅ 经典和流水线作业
  • ✅ 蓝海支持
  • ✅ 插件兼容性
  • ✅ 多分支管道

GitHub 操作

export CI_PLATFORM="github-actions"   # aliases: github, github_actions
export GITHUB_TOKEN="ghp_xxxxxxxxxxxxx"
export GITHUB_OWNER="owner"
export GITHUB_REPO="repo"             # or GITHUB_REPO="owner/repo"

特征:

  • ✅ 工作流运行
  • ✅ 作业详细信息
  • ✅ 工件访问
  • ✅ 检查运行情况

GitLab 的

export CI_PLATFORM="gitlab-ci"        # aliases: gitlab, gitlab_ci
export GITLAB_URL="https://gitlab.com"
export GITLAB_TOKEN="glpat-xxxxxxxxxxxxx"
export GITLAB_PROJECT_ID="12345678"   # or group/project

特征:

  • ✅ 管道作业
  • ✅ 舞台细节
  • ✅ 测试报告
  • ✅ 合并请求管道

📚 文档


🎬 演示

请参阅Sentinel CI的实际应用:

# Run interactive demo
python examples/demo.py

# Watch the video
# https://youtu.be/your-demo-video

演示包括:

  • 多平台职位列表
  • 构建故障分析
  • 测试报告生成
  • 带有秘密编辑的日志分析
  • 性能指标

🏗️ 建筑学

┌─────────────────────────────────────────────┐
│          AI Agent (Claude, GPT, etc.)       │
└─────────────────┬───────────────────────────┘
                  │ MCP Protocol
┌─────────────────▼───────────────────────────┐
│            Sentinel CI Server               │
│  ┌─────────────────────────────────────┐    │
│  │   Unified MCP Interface             │    │
│  └─────────────────────────────────────┘    │
│  ┌──────┬──────┬──────┬──────────────┐      │
│  │Cache │Metrics│Redact│Auth         │      │
│  └──────┴──────┴──────┴──────────────┘      │
│  ┌──────┬──────┬──────┬──────────────┐      │
│  │Jenkins│GitHub│GitLab│Generic      │      │
│  │Client │Client│Client│Client       │      │
│  └──────┴──────┴──────┴──────────────┘      │
└─────────────────┬───────────────────────────┘
                  │ REST APIs
┌─────────────────▼───────────────────────────┐
│     Jenkins, GitHub, GitLab, Custom CI      │
└─────────────────────────────────────────────┘

📊 演出

  • P95延迟: 所有操作均小于2秒
  • 缓存命中率: 70-85%典型
  • 吞吐量: 1000+个请求/分钟
  • 正常运行时间: 99.9%SLA

使用Prometheus指标进行监控:

  • 请求计数和错误率
  • 持续时间直方图(P50、P95、P99)
  • 高速缓存性能
  • 平台健康

🔐 安全考虑

✅ 公共存储安全

此代码库是为公开发布而设计的:

  • ✅ 没有硬编码凭据
  • ✅ 内置秘密编辑功能
  • ✅ 环境变量配置
  • ✅ 只读操作
  • ✅ 审计日志

⚠️ 部署前

  1. 永不承诺:

    • API令牌或凭据
    • 私钥或证书
    • 内部URL或主机名
    • 客户数据或日志
  2. 使用环境变量:

    export JENKINS_TOKEN="..."
    export GITHUB_TOKEN="..."
    
  3. 启用审核日志记录:

    export SENTINEL_AUDIT_LOG="/var/log/sentinel-ci/audit.log"
    
  4. 共享前查看日志:

    grep -i "password\|token\|secret" logs/
    

看 docs/security.md 完整的指南。


🤝 贡献

我们热爱贡献!无论是:

  • 🐛 错误报告
  • 💡 功能请求
  • 📝 文档改进
  • 🔧 代码贡献
  • 🎨 UI/UX增强功能

请参阅 贡献.md 作为指导方针。

添加新的CI平台

  1. 创建 mcps/<platform>/client.py 实施 AbstractCIClient
  2. 在中添加测试 tests/test_<platform>.py
  3. 更新文档
  4. 提交PR!

🗺️ 路线图

v1.0✅ (已完成-2026年1月)

  • ✅ Jenkins支持
  • ✅ GitHub操作支持
  • ✅ GitLab CI支持
  • ✅ 缓存和指标
  • ✅ 秘密编辑
  • ✅ GitHub页面文档
  • ✅ MkDocs材质主题,暗模式
  • ✅ 通过GitHub操作自动部署

v1.1(2026年第二季度)

  • 🔜 构建触发(经批准)
  • 🔜 实时监控(WebSocket)
  • 🔜 高级分析
  • 🔜 自定义仪表板

v2.0(2026年第三季度)

  • 🔜 通用CI(HTTP适配器)
  • 🔜 CircleCI支持
  • 🔜 Travis CI支持
  • 🔜 Azure DevOps支持
  • 🔜 多租户技术
  • 🔜 基于角色的访问控制

📜 许可证

MIT许可证-请参阅 许可证 了解详情。


🙏 致谢


💬 社区


⬆ 返回顶部

制作于❤️ 哨兵CI团队