GitHub Action
Catch breaking API changes on every pull request. Zero config.
Add to your workflow
Create .github/workflows/delimit.yml in your repo:
name: API Governance
on:
pull_request:
paths:
- '**/*.yaml'
- '**/*.json'
jobs:
delimit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: delimit-ai/delimit-action@v1
with:
spec: api/openapi.yamlThat's it. The action auto-detects the base branch spec and compares against the PR version.
What it detects
27 change types across endpoints, schemas, parameters, and security definitions.
Breaking (17 types)
- Endpoint removed
- Required parameter added
- Response field removed
- Type changed (string to int)
- Authentication added/changed
- + 12 more
Non-breaking (10 types)
- Endpoint added
- Optional parameter added
- Response field added
- Description changed
- Deprecated flag set
- + 5 more
PR comment output
The action posts a structured comment on your PR:
API Governance Report
Semver: MAJOR
BREAKING: removed endpoint DELETE /users/{id}
WARNING: response field `created_at` type changed (string to integer)
OK: added endpoint POST /v2/webhooks
Policy: default | 2 breaking, 1 non-breaking
Advisory vs. Enforce mode
Posts a comment with findings. PR can still merge. Use this to build awareness before enforcing.
Fails the check if breaking changes violate policy. Blocks merge until resolved or exempted.
To enable enforce mode, add a policy file:
- uses: delimit-ai/delimit-action@v1
with:
spec: api/openapi.yaml
policy: .delimit/policies.yml
mode: enforceAction inputs
| Input | Required | Description |
|---|---|---|
| spec | Yes | Path to your OpenAPI spec |
| policy | No | Path to policies.yml (uses default if omitted) |
| mode | No | advisory (default) or enforce |
| base | No | Base ref override (auto-detected from PR) |