Skip to content

feat: implement burnless diff command#52

Merged
Dinushi94 merged 1 commit into
mainfrom
feat/burnless-diff
Jun 27, 2026
Merged

feat: implement burnless diff command#52
Dinushi94 merged 1 commit into
mainfrom
feat/burnless-diff

Conversation

@Dinushi94

Copy link
Copy Markdown
Contributor

Closes #3

Summary

Two modes in one command:

Mode 1 — no args (preview what apply would create)

burnless diff
Loaded: sre.yaml
Service: payments-api

Would create:
  + SLO: availability (target: 99.9%, window: 30d)
  + 2 Prometheus alerting rule(s)
  + 2 runbook(s) (1 auto, 1 semi-auto)
  + 1 Grafana dashboard (4 panel(s)) via grafana
  + 1 on-call policy via pagerduty (escalation: 10 min)

Run 'burnless apply' to deploy these changes.

Mode 2 — two files (compare configs)

burnless diff old.yaml new.yaml
Comparing old.yaml → new.yaml
    service: payments-api (unchanged)
  ~ SLO: availability target: 99.90% → 99.95%
  + SLO: latency_p99 added (target: 99.5%)
Changes detected. Review before running burnless apply.

Tests

  • TestDiffPreview_ValidFile
  • TestDiffTwoFiles_DetectsChanges
  • TestDiffTwoFiles_NoChanges

- no args: preview what burnless apply would create from sre.yaml
- two args: compare two sre.yaml files and show what changed
- shows SLOs, alerting rules, runbooks, dashboards, on-call
- detects added/removed/changed SLOs between two files
- add tests for preview mode, two-file diff, and no-change case
@Dinushi94 Dinushi94 merged commit 1245c1e into main Jun 27, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: implement burnless diff command

1 participant