This repository aims to host Github Actions and settings that can easily be reused by other repositories.
Please note that at this moment this is in "pre-alpha" development status, so if you want to be an early adopter or have an active involvement with its development, contact Ansible DevTools team.
Reusable workflows follow <category>-<action>-<target>.yml (e.g.,
oasdiff-detect-breaking-changes.yml).
Detects breaking API changes in PRs by comparing OpenAPI specs against the target branch baseline using oasdiff. Breaking changes are classified per the API Lifecycle Standards taxonomy.
Consumer setup — two workflow files in your repo:
# .github/workflows/breaking-change-check.yml
name: Breaking Change Detection
on:
pull_request:
types: [opened, synchronize, reopened, labeled, unlabeled]
paths:
- "openapi/**" # adjust to your spec file paths
- "schema.json"
jobs:
detect:
uses: ansible/actions/.github/workflows/oasdiff-detect-breaking-changes.yml@<sha>
with:
spec-path: "schema.json" # path to your OpenAPI spec# .github/workflows/breaking-change-comment.yml
name: Breaking Change PR Comment
on:
workflow_run:
workflows: ["Breaking Change Detection"]
types: [completed]
permissions:
actions: read
pull-requests: write
jobs:
comment:
uses: ansible/actions/.github/workflows/oasdiff-post-breaking-change-comment.yml@<sha>Inputs (oasdiff-detect-breaking-changes.yml):
| Input | Required | Default | Description |
|---|---|---|---|
spec-path |
Yes | — | Path to the OpenAPI spec file |
override-label |
No | breaking-change-approved |
Override label |
fail-on-breaking |
No | true |
Set false for dry-run mode |
Taxonomy reference: config/oasdiff-taxonomy-map.json is the reference
copy of the oasdiff-to-category mapping, validated by CI tests against the
inline copy in the workflow.
Override mechanism: When a PR has the breaking-change-approved label
(applied by ansible-staff-eng-leads
team members after completing the
API Change Approval Process),
breaking changes pass with a warning instead of blocking.