Skip to content

ci: gate breaking spec changes with oasdiff; fix sdk_generation trigger - #128

Merged
LukasParke merged 1 commit into
fix/spec-lint-errorsfrom
ci/pr-validation
Aug 13, 2026
Merged

LukasParke merged 1 commit into
fix/spec-lint-errorsfrom
ci/pr-validation

Conversation

@LukasParke

@LukasParke LukasParke commented Aug 12, 2026 •

Copy link
Copy Markdown
Owner

Rebuilt after #117 landed. The original version of this PR added Redocly lint gating, a warning baseline, and prettier decisions — all now superseded by validate.yml (Redocly + Speakeasy + vacuum + prettier + Arazzo lint). What upstream still lacks is exactly what remains here. Stacked on #127; auto-retargets to main when it merges.

What changed

New workflow: breaking-changes.yml

oasdiff compares the PR's spec against the base branch and fails on changes that would break existing API clients — and therefore the eight generated SDKs. validate.yml covers static correctness but says nothing about client compatibility; this closes that gap.

  • fail-on: WARN (strict: definite and potentially-breaking changes both fail)
  • Intentional breaks are acknowledged by labeling the PR breaking-change: the report is still produced and posted, but the job passes
  • Follows repo conventions: SHA-pinned actions, persist-credentials: false, concurrency group, paths filter
  • Requires the mediaQuery de-duplication in fix: remove duplicate parameters, fix invalid patterns and examples #127: with duplicate query keys present, oasdiff's parameter matching is nondeterministic and reports phantom breaking changes on identical specs (verified: 3× self-diff clean after the fix)

Fix: sdk_generation.yaml paths filter

./plex-api-spec.yaml never matched anything (GitHub Actions path globs are repo-root-relative without ./), so spec pushes did not actually trigger SDK generation — masked by the hourly cron.

@coderabbitai

coderabbitai Bot commented Aug 12, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 126708e7-f778-49f0-a71a-85608643d11d

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

github-actions Bot commented Aug 12, 2026 •

Copy link
Copy Markdown

✅ No breaking changes in the latest revision.

- Add breaking-changes.yml: oasdiff compares the PR spec against the
  base branch and fails on breaking changes (fail-on WARN). PRs labeled
  'breaking-change' still get the report but pass, acknowledging an
  intentional break. Complements validate.yml, which covers static
  lint but not client compatibility.
- Fix sdk_generation.yaml paths filter: './plex-api-spec.yaml' never
  matched (GitHub path globs are repo-root-relative without './'), so
  spec pushes did not trigger SDK generation; masked by the hourly cron.
@LukasParke LukasParke changed the title ci: validate spec and gate breaking changes on every PR ci: gate breaking spec changes with oasdiff; fix sdk_generation trigger Aug 13, 2026
@LukasParke
LukasParke merged commit 0e72868 into fix/spec-lint-errors Aug 13, 2026
2 checks 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.

1 participant