This GitHub action is used in your CI pipeline to detect breaking changes in an Open API Specification. It will compare the file in the current branch against the file in the main branch.
This is intended to be used as an action triggered on a pull request
uses: allenheltondev/detect-breaking-changes-action@v1
with:
specFileName: spec/openapi.yaml
accessToken: <PAT from GitHub>
format: yaml
breakingChangeTypes: |
removed-paths
schema-properties-removed
parameters-removed
Or minimally
uses: allenheltondev/detect-breaking-changes-action@v1
with:
specFileName: oas.json
accessToken: <PAT from GitHub>
NOTE - It is recommended to keep your Personal Access Token as a secret in your repository
specFilename
- Required - Relative path to the Open API Spec from the rootaccessToken
- Required - GitHub Personal Access Token used to load the spec from the main branchformat
- Specifies the format of the Open API Spec. Accepts yaml or json. Defaults to json if no value is providedbreakingChangeTypes
- List of breaking change types to detect. If none are provided, the entire set will be used.
Below is a list of all the breaking changes the action will detect.
type | name |
---|---|
removed-paths | An entire endpoint and all associated http methods was removed. |
removed-http-methods | An individual http method was removed from a path. |
required-request-body | A request now requires a body to be provided. |
new-schema-definition | A new schema was created for an existing property or object. |
schema-type-changed | A data type was changed for a top-level schema. Example: "object" to "array". |
schema-new-required-properties | An existing schema has new required properties. |
schema-property-type-changed | The data type of a property in a schema changed. Example: "string" to "number". |
schema-properties-removed | All properties have been removed from a schema. |
multiple-of-type-changed | A schema defined with a multiple-of property (allOf, anyOf, oneOf) changed. Example: "allOf" to "anyOf". |
fewer-multiple-of-options | A schema defined with a multiple-of property (allOf, anyOf, oneOf) has fewer options than before. |
response-removed | A path no longer returns a response code it did previously. |
new-required-parameters | A path requires additional parameters to be provided. |
parameters-removed | A path no longer supports one or more parameters |
parameter-type-changed | The data type of one or more parameters changed. Example: "string" to "number". |