Git_TerraCLI
Source: Dev.to
这是一次 GitHub Copilot CLI 挑战的提交。我构建了一个 Copilot CLI Agent,能够自动重构 Terraform 弃用项并使用模型上下文协议(MCP)创建拉取请求。再也不需要手动升级、错过警告或导致流水线中断。
该方案集成了:
- GitHub Copilot CLI Agent(自定义名称 copilot)
- Terraform MCP 服务器
- Azure DevOps Pipelines
- 在 Azure Repos 中自动创建 PR
- 持续维护
azurerm提供程序
结果: 基础设施维护实现了自动化。
🧩 问题
Terraform 项目——尤其是使用 Azure 提供程序的项目——会快速累积技术债务。每一次 HashiCorp azurerm 提供程序的新版本都会引入:
- 已弃用的资源
- 重命名的参数
- 行为变化
- 破坏性更新
- 随时间产生的计划失败
在数十个 .tf 文件中手动修复这些问题会导致:
- ❌ 耗时
- ❌ 易出错
- ❌ 常被延后
- ❌ 在生产环境中风险高
💡 解决方案
我设计了一个全自动的修复代理,能够:
- 检测过时的提供程序版本
- 将
azurerm升级到最新兼容版本 - 运行
terraform plan - 使用 MCP 获取已弃用字段的精确替代方案
- 安全地重构代码
- 验证更改
- 自动创建拉取请求
所有这些都在 Azure Pipeline 中运行,无需人工干预。使用 agent mode 的 GitHub Copilot CLI 将其从代码生成工具转变为自主开发者。
亮点
- 上下文感知: 代理了解仓库结构、Terraform 语义、流水线环境以及所需的工作流步骤。
- 开发速度: 通常需要数小时的任务被压缩到几分钟(编写复杂的流水线逻辑、处理提供程序升级、创建 PR 自动化、集成 MCP)。
🧠 从助手 → 代理
本项目展示了 AI 从助手转向团队成员、能够端到端执行任务的转变。该代理实现了:
- 🛡️ 持续符合提供程序更新的合规性
- ⚡ 更快的升级周期
- 🧹 降低技术债务
- 🤖 自动化 DevOps 操作
- 🏢 企业级可扩展性
🔮 未来改进
计划中的增强功能包括:
- 在创建 PR 时通过 Slack / Teams 发送通知
- 多提供程序支持(AWS、GCP)
- 漂移检测集成
- 安全策略检查
- 通过绿色验证自动合并
- 使用 ChatOps 命令触发更新
🧪 使用的关键技术
- GitHub Copilot CLI(Agent Mode)
- Terraform
- Model Context Protocol(MCP)
- Azure DevOps Pipelines
- Docker
- Azure CLI
- PowerShell
- 在流水线中进行的拉取请求自动化