Skip to content

oasdiff/oasdiff

Folders and files

NameName
Last commit message
Last commit date
Jun 9, 2023
Mar 10, 2025
Aug 4, 2022
Mar 10, 2025
Feb 25, 2025
Mar 10, 2025
Mar 10, 2025
Mar 10, 2025
Mar 10, 2025
Mar 10, 2025
Mar 10, 2025
Mar 10, 2025
May 31, 2023
Mar 10, 2025
May 17, 2024
Mar 10, 2025
Aug 10, 2022
Mar 10, 2025
Mar 10, 2025
Feb 14, 2021
Mar 10, 2025
Mar 10, 2025
Mar 10, 2025
Mar 10, 2025
Mar 10, 2025

Repository files navigation

CI codecov Go Report Card GoDoc Docker Image Version Slack

NOTE: oasdiff recently moved from the Tufin org to the oasdiff org. Please submit an issue if you encounter any issues.

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

brew tap oasdiff/homebrew-oasdiff
brew install oasdiff

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

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

I am currently working on the ability to correlate breaking changes and changelog messages with the underlying changes in the original YAML spec.
This will allow users to see changes in their original context, investigate, and determine how to handle them.
Specifically, github users will be able to click annotations and see the diff at the relevant line as discussed here.
Please help us prioritize the 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.