{"id":26136266,"url":"https://github.com/oasdiff/oasdiff","last_synced_at":"2025-05-15T01:07:00.351Z","repository":{"id":37014639,"uuid":"337689065","full_name":"oasdiff/oasdiff","owner":"oasdiff","description":"OpenAPI Diff and Breaking Changes","archived":false,"fork":false,"pushed_at":"2025-05-12T08:35:06.000Z","size":2735,"stargazers_count":868,"open_issues_count":22,"forks_count":74,"subscribers_count":11,"default_branch":"main","last_synced_at":"2025-05-14T00:49:04.255Z","etag":null,"topics":["breaking-changes","changelog","diff","go","golang","openapi","openapi-spec","openapi-specification","openapi3","rest-api","swagger"],"latest_commit_sha":null,"homepage":"https://www.oasdiff.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oasdiff.png","metadata":{"files":{"readme":"docs/README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-10T10:28:36.000Z","updated_at":"2025-05-09T18:10:20.000Z","dependencies_parsed_at":"2023-09-28T20:46:12.129Z","dependency_job_id":"76cabe23-cf3a-408f-b9a6-7e3e7aee22a1","html_url":"https://github.com/oasdiff/oasdiff","commit_stats":{"total_commits":1156,"total_committers":25,"mean_commits":46.24,"dds":"0.28460207612456745","last_synced_commit":"75b8e87b6f2b09b6b4fd8cebf69059b1ad56e673"},"previous_names":["oasdiff/oasdiff","tufin/oasdiff"],"tags_count":249,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oasdiff%2Foasdiff","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oasdiff%2Foasdiff/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oasdiff%2Foasdiff/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oasdiff%2Foasdiff/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oasdiff","download_url":"https://codeload.github.com/oasdiff/oasdiff/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254254041,"owners_count":22039792,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["breaking-changes","changelog","diff","go","golang","openapi","openapi-spec","openapi-specification","openapi3","rest-api","swagger"],"created_at":"2025-03-11T00:57:04.213Z","updated_at":"2025-05-15T01:07:00.327Z","avatar_url":"https://github.com/oasdiff.png","language":"Go","readme":"\n[![CI](https://github.com/oasdiff/oasdiff/workflows/go/badge.svg)](https://github.com/oasdiff/oasdiff/actions)\n[![codecov](https://codecov.io/gh/oasdiff/oasdiff/branch/main/graph/badge.svg?token=Y8BM6X77JY)](https://codecov.io/gh/oasdiff/oasdiff)\n[![Go Report Card](https://goreportcard.com/badge/github.com/oasdiff/oasdiff)](https://goreportcard.com/report/github.com/oasdiff/oasdiff)\n[![GoDoc](https://godoc.org/github.com/oasdiff/oasdiff?status.svg)](https://godoc.org/github.com/oasdiff/oasdiff)\n[![Docker Image Version](https://img.shields.io/docker/v/tufin/oasdiff?sort=semver)](https://hub.docker.com/r/tufin/oasdiff/tags)\n[![Slack](https://img.shields.io/badge/slack-\u0026#64;oasdiff-green.svg?logo=slack)](https://join.slack.com/t/oasdiff/shared_invite/zt-1wvo7wois-ttncNBmyjyRXqBzyg~P6oA)\n\n![oasdiff banner](https://github.com/yonatanmgr/oasdiff/assets/31913495/ac9b154e-72d1-4969-bc3b-f527bbe7751d)\n\n\nCommand-line and Go package to compare and detect breaking changes in OpenAPI specs.\n\n## Installation\n\n### Install with Go\n```bash\ngo install github.com/oasdiff/oasdiff@latest\n```\n\n### Install on macOS with Brew\n```bash\nbrew tap oasdiff/homebrew-oasdiff\nbrew install oasdiff\n```\n\n### Install on macOS and Linux using curl\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/oasdiff/oasdiff/main/install.sh | sh\n```\n\n### Install with asdf\n\nhttps://github.com/oasdiff/asdf-oasdiff\n\n### Manually install on macOS, Windows and Linux\nCopy binaries from [latest release](https://github.com/oasdiff/oasdiff/releases/)\n\n\n## Try it\n\n### Locally\n```\noasdiff changelog https://raw.githubusercontent.com/oasdiff/oasdiff/main/data/openapi-test1.yaml https://raw.githubusercontent.com/oasdiff/oasdiff/main/data/openapi-test5.yaml\n```\n\n### With Docker\n```\ndocker 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\n```\n\n## Features \n- Detect [breaking changes](BREAKING-CHANGES.md)\n- Display a user-friendly [changelog](BREAKING-CHANGES.md) of all important API changes\n- Generate comprehensive [diff](DIFF.md) reports including all aspects of [OpenAPI Specification](https://swagger.io/specification/): paths, operations, parameters, request bodies, responses, schemas, enums, callbacks, security etc.\n- Output reports in YAML, JSON, Text, Markdown, HTML, JUnit XML or the [github actions annotation format](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#setting-a-warning-message)\n- Compare local files or remote files over http/s\n- Compare specs in YAML or JSON format\n- [Compare two collections of specs](COMPOSED.md)\n- [Deprecating APIs and Parameters](DEPRECATION.md)\n- [API stability levels](STABILITY.md)\n- [Multiple versions of the same endpoint](MATCHING-ENDPOINTS.md#duplicate-endpoints)\n- [Merge allOf schemas](ALLOF.md)\n- [Merge common (path-level) parameters](COMMON-PARAMS.md)\n- [Case-insensitive header comparison](HEADER-DIFF.md)\n- [Path prefix modification](PATH-PREFIX.md)\n- [Path parameter renaming](PATH-PARAM-RENAME.md)\n- [Excluding certain kinds of changes](DIFF.md#excluding-specific-kinds-of-changes)\n- [Tracking changes to OpenAPI Extensions](DIFF.md#openapi-extensions)\n- [Filtering endpoints](FILTERING-ENDPOINTS.md)\n- [Extending breaking changes with custom checks](CUSTOMIZING-CHECKS.md)\n- Localization: view breaking changes and changelog messages in local languages: en, ru, pt-br\n- [Customize with configuration files](CONFIG-FILES.md)\n- [Run from Docker](DOCKER.md)\n- [Integrate in GitHub](https://github.com/oasdiff/github-demo/tree/main)\n- [GitHub Action](https://github.com/oasdiff/oasdiff-action)\n- [Cloud Service](OASDIFF-SERVICE.md)\n- [OpenAPI Sync: Get notified when an API provider breaks the API](https://github.com/oasdiff/sync/)\n- [Embed in your go program](GO.md)\n\n## Demo\n\u003cimg src=\"./demo.svg\"\u003e\n\n## The main commands\n- [diff](DIFF.md): the diff between OpenAPI specs, fully detailed\n- [breaking](BREAKING-CHANGES.md): breaking changes between OpenAPI specs  \n- [changelog](BREAKING-CHANGES.md): important changes between OpenAPI specs including breaking and non-breaking changes\n- [flatten](ALLOF.md): replace all instances of allOf by a merged equivalent\n- checks: displays the different checks that oasdiff runs to detect changes\n\n## Roadmap\nI am currently working on the ability to correlate breaking changes and changelog messages with the underlying changes in the original YAML spec.  \nThis will allow users to see changes in their original context, investigate, and determine how to handle them.  \nSpecifically, github users will be able to click annotations and see the diff at the relevant line as discussed [here](https://github.com/oasdiff/oasdiff/issues/574).  \n[Please help us prioritize the roadmap](https://github.com/oasdiff/oasdiff/discussions/631).\n\n## Credits\nThis project relies on the excellent implementation of OpenAPI 3.0 for Go: [kin-openapi](https://github.com/getkin/kin-openapi).\n\n## Feedback\nWe welcome your feedback.  \nIf you have ideas for improvement or additional needs around APIs, please [let us know](https://github.com/oasdiff/oasdiff/discussions/new?category=ideas).\n","funding_links":[],"categories":["Go"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foasdiff%2Foasdiff","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foasdiff%2Foasdiff","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foasdiff%2Foasdiff/lists"}