-
Notifications
You must be signed in to change notification settings - Fork 0
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
Comparing changes
Choose two branches to see what’s changed or to start a new pull request.
If you need to, you can also or
learn more about diff comparisons.
Open a pull request
Create a new pull request by comparing changes across two branches. If you need to, you can also .
Learn more about diff comparisons here.
base repository: Galvnyz/Az-Dev-Cleanup
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.5.0
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: Galvnyz/Az-Dev-Cleanup
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.6.0
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 1 commit
- 22 files changed
- 2 contributors
Commits on Apr 3, 2026
-
feat: v0.6.0 — Operational Readiness (#49)
* chore: Add .gitignore and preserve output directory structure Generated report outputs (discovery reports, metric CSVs, Excel workbooks, cleanup logs) are now ignored. Scripts, queries, and documentation remain tracked. .gitkeep files preserve the reports/ and discovery/reports/ directories for clones. Closes #41 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: Add dry-run orchestrator with consolidated WhatIf report Invoke-CleanupDryRun.ps1 runs all 8 cleanup scripts in -WhatIf mode and produces a normalized CSV report for stakeholder review. Uses a declarative script registry pattern for result mapping, per-script error isolation, and dependency-aware execution ordering. Closes #42 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: Add cost savings projection from cleanup candidates Get-CostSavingsProjection.ps1 cross-references dry-run output with Azure Cost Management data to estimate monthly savings per category. Uses a two-tier approach: real cost data where available, rate-card fallbacks for resources without billing records. Closes #43 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: Add before/after tenant state comparison Save-TenantBaseline.ps1 captures lightweight tenant snapshots as versioned JSON (resource counts, RG counts, per-type breakdown, optional cost). Compare-TenantState.ps1 diffs two baselines or compares a baseline against the live tenant state, producing summary tables and per-type change detail. Closes #45 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: Add cleanup execution orchestrator with safety gates Invoke-CleanupExecution.ps1 orchestrates all cleanup scripts with a 5-step safety pipeline: dry-run preview, confirmation gate, before baseline, execution with per-script error isolation, and after baseline with automatic comparison. Requires -Force for unattended execution. Closes #46 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * test: Add Pester tests for remaining cleanup scripts Adds test coverage for Remove-StoppedVMs, Remove-OldSnapshots, Remove-UnusedPublicIPs, and Remove-UnusedNSGs. All 27 tests pass. Each test file covers: exclude-tag/threshold filtering, resource-lock skip, and WhatIf safety (no destructive calls in dry-run). Closes #44 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat: Enhance scheduled-cleanup workflow with orchestrators and notifications Replaces individual script steps with Invoke-CleanupDryRun and Invoke-CleanupExecution orchestrators for full 8-script coverage. Adds cost savings projection, GITHUB_STEP_SUMMARY Markdown tables, webhook notifications (conditional on secret), and before/after comparison artifacts on execute runs. Closes #47 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: Add operational runbook, update README and cleanup strategy Adds docs/operational-runbook.md with step-by-step guide for the full cleanup lifecycle. Updates README with new script inventory and quick start referencing orchestrators. Updates cleanup-strategy.md to reflect the consolidated dry-run/execution workflow. Closes #48 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: Cap orphan detection lookback to 90 days (Activity Log API limit) The Azure Activity Log API rejects lookback periods over 90 days. Get-OrphanedResources.ps1 defaulted to 365 days, causing a BadRequest error during dry-run orchestration. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: Harden discovery script against API limits and fragile assumptions - Cap LookbackDays validation to 90 (Activity Log API hard limit) - Resolve Cost Management column indices from metadata instead of assuming fixed [cost, rg, currency] order - Fix KQL directory path to use $PSScriptRoot directly (script is already in discovery/) - Log warning when adaptive chunking hits the 5000-record limit on a single-day window (previously silently truncated) - Replace hardcoded TotalCostLast30Days key with dynamic TotalCost + CostLookbackDays fields in summary JSON Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * docs: Add HTML report design spec and implementation plan Design spec for a self-contained dark-themed HTML discovery report with KPI cards, inline SVG charts, searchable inventory table, and auto-generated recommendations. Implementation plan breaks the build into 12 incremental tasks. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(html-report): Add script skeleton with CSS, nav, and KPI cards Create Export-HtmlReport.ps1 that generates a self-contained dark-themed HTML report from Azure tenant discovery data. Includes full CSS theme with dark palette and responsive breakpoints, sticky sidebar navigation with scroll-spy, hamburger menu for mobile, and 4 KPI cards showing total resources, monthly cost, cleanup candidates, and untagged resource counts. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(html-report): Add data sections with SVG charts Implement Tasks 5-8: Tenant Overview (subscription table, resource type distribution bar chart, age histogram), Cost Analysis (stat boxes, top-20 RG bar chart, cost table), Cleanup Candidates (donut chart with legend, collapsible detail tables with priority badges), and Governance Gaps (tag coverage progress bar, untagged-by-type breakdown). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * feat(html-report): Add inventory, activity, and recommendations sections Implements Tasks 9-11: searchable/sortable resource inventory table (500-row initial display with show-all), activity analysis with dormant RG detection, data-driven recommendation cards, and enhanced footer with resource/cost stats. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: Add .superpowers/ to gitignore Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Configuration menu - View commit details
-
Copy full SHA for b0af3d3 - Browse repository at this point
Copy the full SHA b0af3d3View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v0.5.0...v0.6.0