{"id":18758777,"url":"https://github.com/tsimbalar/openapi-diff-action","last_synced_at":"2026-01-25T11:31:18.928Z","repository":{"id":141641096,"uuid":"269271438","full_name":"tsimbalar/openapi-diff-action","owner":"tsimbalar","description":"Find breaking and non-breaking changes in OpenAPI specs","archived":false,"fork":false,"pushed_at":"2020-06-04T05:47:16.000Z","size":14823,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-05-20T16:13:22.372Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tsimbalar.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2020-06-04T05:46:33.000Z","updated_at":"2020-06-25T15:44:02.000Z","dependencies_parsed_at":null,"dependency_job_id":"85f7afb7-18d6-4834-822c-689adac65d0c","html_url":"https://github.com/tsimbalar/openapi-diff-action","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/tsimbalar/openapi-diff-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsimbalar%2Fopenapi-diff-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsimbalar%2Fopenapi-diff-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsimbalar%2Fopenapi-diff-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsimbalar%2Fopenapi-diff-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tsimbalar","download_url":"https://codeload.github.com/tsimbalar/openapi-diff-action/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tsimbalar%2Fopenapi-diff-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28752668,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T10:25:12.305Z","status":"ssl_error","status_checked_at":"2026-01-25T10:25:11.933Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2024-11-07T17:47:55.552Z","updated_at":"2026-01-25T11:31:18.882Z","avatar_url":"https://github.com/tsimbalar.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenAPI Diff Action\n\nThis GitHub Action compares two OpenAPI (3.x) specs to determine if the newer (HEAD) spec introduces breaking or non-breaking changes.\n\nWhen running on `pull_request` events, a comment will be added to the PR with a backward compatibility report and human-readable diff, giving PR authors and reviewers greater insight into the implications if merged.\n\nWhen running on `pull_request` events, a label will also be added to the PR with the _classification_ (`major`, `minor`, or `patch`) of the diff.\n\n## Usage\n\nThis action needs two OpenAPI spec files to compare in order to run. Your workflow may need to check out multiple branches of a repo or run additional steps to ensure that these files exist.\n\n### Inputs:\n\n- `head-spec` _(required)_: Local path or http URL to the new (HEAD) OpenAPI spec file. An error will be thrown if the file can't be found.\n- `base-spec` _(required)_: Local path or http URL to the old (BASE) OpenAPI spec file. An error will be thrown if the file can't be found.\n- `github-token` _(required)_: Must be in form `${{ github.token }}` or `${{ secrets.GITHUB_TOKEN }}`; This token is used to add labels and comments to pull requests. It is built into Github Actions and does not need to be manually specified in your secrets store. [More Info](https://help.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#github-context)\n\n### Outputs:\n\n- `classification`: A string representing the type of change detected between the two OpenAPI specs. Possible values: \n  - `major`: Indicates that the HEAD spec introduces at least one _incompatible_ or \"breaking\" changes\n  - `minor`: Indicates that the HEAD spec introduces only _compatible_ or \"non-breaking\" changes\n  - `patch`: Indicates that the HEAD spec does not introduce any changes at all\n\n### Example:\n\nThis following example assumes that your repository contains a valid OpenAPI spec file called `openapi.yaml` in the repository root. \n\n```yaml\non: [pull_request]\n\nname: openapi-diff\n\njobs:\n\n  check:\n    runs-on: ubuntu-latest\n    steps:\n\n    - name: Check out HEAD revision\n      uses: actions/checkout@v2\n      with:\n        ref: ${{ github.head_ref }}\n        path: head\n    - name: Check out BASE revision\n      uses: actions/checkout@v2\n      with:\n        ref: ${{ github.base_ref }}\n        path: base\n    - name: Run OpenAPI Diff (from HEAD revision)\n      uses: evereepay/openapi-diff-action@v1.0.0-beta.1\n      with:\n        head-spec: head/openapi.yaml\n        base-spec: base/openapi.yaml\n        github-token: ${{ github.token }}\n```\n\n## Demos\n\n- [Example PR with Breaking Changes (Major)](https://github.com/evereepay/openapi-diff-action/pull/2)\n\n- [Example PR with Only Non-breaking Changes (Minor)](https://github.com/evereepay/openapi-diff-action/pull/3)\n\n- [Example PR with No API Changes at All (Patch)](https://github.com/evereepay/openapi-diff-action/pull/4)\n\n## Troubleshooting:\n\n### Breaking change report comments or classification labels aren't added to my pull request\n\nEnsure your workflow that invokes the OpenAPI Diff Action on pull requests, e.g.:\n\n```yaml\non: [pull_request]\n```\n\n## Credits:\n\n- This action uses [quen2404/openapi-diff](https://github.com/quen2404/openapi-diff) under the hood to generate the underlying diff.\n- [License](LICENSE.md)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsimbalar%2Fopenapi-diff-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftsimbalar%2Fopenapi-diff-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftsimbalar%2Fopenapi-diff-action/lists"}