{"id":13800270,"url":"https://github.com/zalando/zally","last_synced_at":"2026-01-12T00:03:43.870Z","repository":{"id":39105050,"uuid":"76853145","full_name":"zalando/zally","owner":"zalando","description":"A minimalistic, simple-to-use API linter","archived":false,"fork":false,"pushed_at":"2025-07-04T14:48:39.000Z","size":12122,"stargazers_count":938,"open_issues_count":79,"forks_count":152,"subscribers_count":22,"default_branch":"main","last_synced_at":"2025-10-23T18:18:53.299Z","etag":null,"topics":["api","api-linter","api-management","developer-infrastructure","golang","hacktoberfest","kotlin","linter","openapi","spring-boot","swagger"],"latest_commit_sha":null,"homepage":"https://zalando.github.io/zally","language":"Kotlin","has_issues":true,"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/zalando.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2016-12-19T10:38:18.000Z","updated_at":"2025-10-17T08:03:10.000Z","dependencies_parsed_at":"2024-06-18T19:49:19.132Z","dependency_job_id":"ba53cc31-6013-4767-86e3-e367e61e2dc8","html_url":"https://github.com/zalando/zally","commit_stats":{"total_commits":1847,"total_committers":83,"mean_commits":"22.253012048192772","dds":0.8148348673524635,"last_synced_commit":"8c7407db2be39041f61b6baa3ee74012ebdb26ad"},"previous_names":["zalando-incubator/zally"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/zalando/zally","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zalando%2Fzally","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zalando%2Fzally/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zalando%2Fzally/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zalando%2Fzally/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zalando","download_url":"https://codeload.github.com/zalando/zally/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zalando%2Fzally/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28328735,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T22:11:01.104Z","status":"ssl_error","status_checked_at":"2026-01-11T22:10:58.990Z","response_time":60,"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":["api","api-linter","api-management","developer-infrastructure","golang","hacktoberfest","kotlin","linter","openapi","spring-boot","swagger"],"created_at":"2024-08-04T00:01:10.934Z","updated_at":"2026-01-12T00:03:43.853Z","avatar_url":"https://github.com/zalando.png","language":"Kotlin","funding_links":[],"categories":["Kotlin","Recently Updated","Projects"],"sub_categories":["[Mar 19, 2025](/content/2025/03/19/README.md)","API Design"],"readme":"# Zally: A minimalistic, simple-to-use OpenAPI 2 and 3 linter\n\n![Build Status](https://github.com/zalando/riptide/workflows/build/badge.svg)\n[![Join the chat at https://gitter.im/zalando/zally](https://badges.gitter.im/zalando/zally.svg)](https://gitter.im/zalando/zally?utm_source=badge\u0026utm_medium=badge\u0026utm_campaign=pr-badge\u0026utm_content=badge)\n\n\u003cimg src=\"logo.png\" width=\"200\" height=\"200\" /\u003e\n\nZally is a quality assurance tool. It's a linter for OpenAPI specifications,\nit performs the following tasks : \n\n- Increases the quality of APIs\n- Checks compliance\n- Delivers early feedback for API designers\n- Ensures the same look-and-feel of APIs\n- Supports [API-First approach](https://opensource.zalando.com/restful-api-guidelines/#100)\n- Provides best practices and advices\n\nIts standard configuration will check your APIs against the rules defined in\n[Zalando's RESTful Guidelines](http://zalando.github.io/restful-api-guidelines/),\nbut anyone can use it **out-of-the-box**.\n\nZally has an easy-to-use [CLI](cli/README.md) which uses the server in the background so that\nyou can check your API *on the spot*. It also features an intuitive\n[Web UI](web-ui/README.md) that shows implemented rules and lints external files\nand (with its online editor) API definitions.\n\n## Features\n\n- Support for OpenAPI 3 and (Swagger) OpenAPI 2 specifications\n- RESTful API, CLI and Web interface\n- Rich Check configuration\n- Ignore functionality (`x-zally-ignore` extension)\n- Java/Kotlin API for new Checks + helper functions\n\n## Quick start guide\n\nTrying out Zally is easy. You can build and run the whole Zally stack (web-ui, server\nand database) by executing:\n\n```bash\ndocker compose up -d\n```\n\nWeb UI is accessible on `http://localhost:8080`; Zally server on `http://localhost:8000`\n\n## Documentation and Manuals\n\nPlease consult the following documents for further information:\n\n- [Zally Concepts](documentation/concepts.md)\n- [How to operate](documentation/operation.md) Zally tools\n- [How to use Zally](documentation/usage.md)\n- [How to develop new Rules](documentation/rule-development.md)\n- [Building Under Windows Subsystem for Linux](documentation/build-under-wsl.md)\n\n## Integrations\n\n- [Zally Maven Plugin](https://github.com/ethlo/zally-maven-plugin) (unofficial)\n\n## Contributing to Zally\n\nZally welcomes contributions from the open source community. To get started, take a\nlook at our [contributing guidelines](CONTRIBUTING). Then check our\n[Project Board](https://github.com/zalando/zally/projects/1) and\n[Issues Tracker](https://github.com/zalando/zally/issues) for ideas.\n\n## Contact\n\nFeel free to join our [Gitter room](https://gitter.im/zalando/zally) or contact one\nof the [maintainers](MAINTAINERS) directly.\n\n## Alternatives \n\nZally is not the only linter for OpenAPI v2 and v3. There is [an article](https://nordicapis.com/8-openapi-linters/) comparing different OpenAPI linters.\n\nSo why should you choose Zally?\n- It supports [Zalando's RESTful Guidelines](http://zalando.github.io/restful-api-guidelines/)\n- It can be used in multiple ways: RESTful API, CLI and Web interface\n- Highly customizable (with Kotlin)  \n\n## License\n\nMIT license with an exception. See [license file](LICENSE).\n\n## Publish\n\n### Prerequisites\n\n* [Signing plugin](https://docs.gradle.org/current/userguide/signing_plugin.htm) configured\n* `OSSRH_JIRA_USERNAME` and `OSSRH_JIRA_PASSWORD` environment variables to access [Maven Central Repo](https://oss.sonatype.org/) are \nconfigured\n\n### Steps\n\n1. Create a separate branch with a name `release-\u003crelease-version\u003e`.\n2. Update current version in `server/gradle.properties` from `-SNAPSHOT` to a final version.\n3. Update mime types configuration:\n   ```shell\n      ./gradlew -q generate-media-types-config --info\n   ```\n4. Commit the updated file to the repository.\n5. Release Zally server and API using the command\n   ```\n   cd server\n   ./gradlew clean build publishAllPublicationsToMavenRepository\n   ```\n6. Commit `server/gradle.properties` with the release version\n7. Create a tag\n    ```shell script\n    git tag v\u003crelease-version\u003e -m \"Version \u003crelease-version\u003e\"\n    ```\n8. Bump version in `server/gradle.properties` to the next `-SNAPSHOT`\n\n9. Push `release` branch and tag\n   ```shell script\n    git push origin\n    git push origin \u003ctag-name\u003e\n   ```\n10. Create a Pull Request with the version update\n11. Create and publish a release with a new version in GitHub\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzalando%2Fzally","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzalando%2Fzally","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzalando%2Fzally/lists"}