GitHub - oasdiff/oasdiff: OpenAPI Diff and Breaking Changes

CI codecov Go Report Card GoDoc Docker Image Version Slack

oasdiff banner

Command-line and Go package to compare and detect breaking changes in OpenAPI specs.

Installation

Install with Go

go install github.com/oasdiff/oasdiff@latest

Install on macOS with Brew

Install on macOS and Linux using curl

curl -fsSL https://raw.githubusercontent.com/oasdiff/oasdiff/main/install.sh | sh

Install with asdf

https://github.com/oasdiff/asdf-oasdiff

Manually install on macOS, Windows and Linux

Copy binaries from latest release.

Use install.sh

You can use the install.sh script to install oasdiff.
The script will download the latest version, or a specific version of oasdiff and install it in /usr/local/bin.

Try it

Locally

oasdiff changelog https://raw.githubusercontent.com/oasdiff/oasdiff/main/data/openapi-test1.yaml https://raw.githubusercontent.com/oasdiff/oasdiff/main/data/openapi-test5.yaml

With Docker

docker run --rm -t tufin/oasdiff changelog https://raw.githubusercontent.com/oasdiff/oasdiff/main/data/openapi-test1.yaml https://raw.githubusercontent.com/oasdiff/oasdiff/main/data/openapi-test5.yaml

Features

Demo

The main commands

  • diff: the diff between OpenAPI specs, fully detailed
  • breaking: breaking changes between OpenAPI specs
  • changelog: important changes between OpenAPI specs including breaking and non-breaking changes
  • flatten: replace all instances of allOf by a merged equivalent
  • checks: displays the different checks that oasdiff runs to detect changes

Roadmap

Credits

This project relies on the excellent implementation of OpenAPI 3.0 for Go: kin-openapi.

Feedback

We welcome your feedback.
If you have ideas for improvement or additional needs around APIs, please let us know.