terraform-azurerm-set-diff-analyzer — скилл для GitHub Copilot
Разбирает JSON-план Terraform для AzureRM и отделяет перестановку элементов Set от реальных изменений ресурсов. Нужен при ревью шумных diff.
npx skills add github/awesome-copilot --skill terraform-azurerm-set-diff-analyzerЧто делает terraform-azurerm-set-diff-analyzer
Скилл анализирует JSON из terraform plan для AzureRM Provider. Он отличает ложные изменения, вызванные порядком элементов в Set-атрибутах, от правок ресурса. Это упрощает ревью Application Gateway, Load Balancer, Firewall, Front Door и NSG, когда после добавления или удаления одного элемента изменённым выглядит весь набор.
Сначала создайте plan.tfplan, выгрузите его в plan.json, затем запустите python scripts/analyze_plan.py plan.json. Скрипту нужен Python 3.8+; внешние библиотеки не требуются. Скилл стоит ставить командам, которые проверяют AzureRM-планы в CI/CD, а при редких Set-атрибутах отдельный анализатор лишний.
Какие задачи решает
- отделить перестановку Set-элементов от изменения ресурса
- проверить шумный diff Application Gateway
- разобрать изменения Load Balancer и NSG
- отфильтровать ложные diff в CI/CD
Примеры запросов агенту
- Проанализируй `plan.json` и покажи ложные diff из-за порядка элементов Set.
- Помоги понять, какие изменения AzureRM в этом плане реальные.
- Сгенерируй JSON-план через `terraform show -json plan.tfplan > plan.json` и проверь его.
Как установить terraform-azurerm-set-diff-analyzer
1Через Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill terraform-azurerm-set-diff-analyzer2GitHub CLI
gh skill install github/awesome-copilot terraform-azurerm-set-diff-analyzer3Вручную: положить файлы
.github/skills/terraform-azurerm-set-diff-analyzer/SKILL.md1Через Skills CLI (Vercel)
npx skills add github/awesome-copilot --skill terraform-azurerm-set-diff-analyzer -a claude-code2Вручную: положить файлы
~/.claude/skills/terraform-azurerm-set-diff-analyzer/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/terraform-azurerm-set-diff-analyzer/
Вручную: положить файлы
.agents/skills/terraform-azurerm-set-diff-analyzer/SKILL.mdДля всех проектов — ~/.agents/skills/
Вручную: положить файлы
.cursor/skills/terraform-azurerm-set-diff-analyzer/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
Командой платформы
gemini skills install https://github.com/github/awesome-copilot --path skills/terraform-azurerm-set-diff-analyzerВручную: положить файлы
.devin/skills/terraform-azurerm-set-diff-analyzer/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Claude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора554
Весь набор →Похожие
Вопросы о terraform-azurerm-set-diff-analyzer
Как установить terraform-azurerm-set-diff-analyzer в GitHub Copilot?
Выполните npx skills add github/awesome-copilot --skill terraform-azurerm-set-diff-analyzer. Также доступна команда gh skill install github/awesome-copilot terraform-azurerm-set-diff-analyzer.
Что делает terraform-azurerm-set-diff-analyzer?
Скилл читает JSON-план Terraform для AzureRM и показывает, какие diff связаны с изменением порядка в Set-атрибутах, а какие меняют ресурс.
Что нужно для анализа плана?
Нужен JSON-файл плана и Python 3.8+. Скрипт запускается как python scripts/analyze_plan.py plan.json и использует стандартную библиотеку Python.
Исходный текст
SKILL.md · MIT
--- name: terraform-azurerm-set-diff-analyzer description: Analyze Terraform plan JSON output for AzureRM Provider to distinguish between false-positive diffs (order-only changes in Set-type attributes) and actual resource changes. Use when reviewing terraform plan output for Azure resources like Application Gateway, Load Balancer, Firewall, Front Door, NSG, and other resources with Set-type attributes that cause spurious diffs due to internal ordering changes. license: MIT --- # Terraform AzureRM Set Diff Analyzer A skill to identify "false-positive diffs" in Terraform plans caused by AzureRM Provider's Set-type attributes and distinguish them from actual changes. ## When to Use - `terraform plan` shows many changes, but you only added/removed a single element - Application Gateway, Load Balancer, NSG, etc. show "all elements changed" - You want to automatically filter false-positive diffs in CI/CD ## Background Terraform's Set type compares by position rather than by key, so when adding or removing elements, all elements appear as "changed". This is a general Terraform issue, but it's particularly noticeable with AzureRM resources that heavily use Set-type attributes like Application Gateway, Load Balancer, and NSG. These "false-positive diffs" don't actually affect the resources, but they make reviewing terraform plan output difficult. ## Prerequisites - Python 3.8+ If Python is unavailable, install via your package manager (e.g., `apt install python3`, `brew install python3`) or from [python.org](https://www.python.org/downloads/). ## Basic Usage ```bash # 1. Generate plan JSON output terraform plan -out=plan.tfplan terraform show -json plan.tfplan > plan.json # 2. Analyze python scripts/analyze_plan.py plan.json ``` ## Troubleshooting - **`python: command not found`**: Use `python3` instead, or install Python - **`ModuleNotFoundError`**: Script uses only standard library; ensure Python 3.8+ ## Detailed Documentation - [scripts/README.md](scripts/README.md) - All options, output formats, exit codes, CI/CD examples - [references/azurerm_set_attributes.md](references/azurerm_set_attributes.md) - Supported resources and attributes
© github · MIT · github/awesome-copilot