zally

A customized fork from Zalando's awesome Zally. It enforces some automatically checkable rules from SBB's API Principles.

View the Project on GitHub SchweizerischeBundesbahnen/zally

Zally: A minimalistic, simple-to-use OpenAPI 2 and 3 linter

Latest Release Test Status Build Status

GitHub contributors GitHub License

Zally is a quality assurance tool. It’s a linter for OpenAPI specifications, which:

Its standard configuration will check your APIs against the rules defined in Zalando’s RESTful Guidelines, but anyone can use it out-of-the-box.

Zally’s easy-to-use CLI uses the server in the background so that you can check your API on the spot. It also features an intuitive Web UI that shows implemented rules and lints external files and (with its online editor) API definitions.

Features

Quick start guide

Trying out Zally is easy. You can build and run the whole Zally stack (web-ui, server and database) by executing:

./build-and-run.sh

Web UI is accessible on http://localhost:8080; Zally server on http://localhost:8000

Documentation and Manuals

Please consult the following documents for more information:

Contributing

Zally welcomes contributions from the open source community. To get started, take a look at our contributing guidelines. Then check our Project Board and Issues Tracker for ideas.

Roadmap

For Zally version 1.5, we’re focusing on:

If you have ideas for these items, please let us know.

Contact

Feel free to join our Gitter room or contact one of the maintainers directly.

Alternatives

Zally is not the only linter for OpenAPI v2 and v3. There is an article comparing different OpenAPI linters.

So why should you choose Zally?

License

MIT license with an exception. See license file.

Publish

Prerequisites

Steps

  1. Create a separate branch with a name release-<release-version>.
  2. Update current version in server/gradle.properties from -SNAPSHOT to a final version.
  3. Release Zally server and API using the command
    cd server
    ./gradlew clean build publishAllPublicationsToMavenRepository
    
  4. Commit server/gradle.properties with the release version
  5. Create a tag shell script git tag v<release-version> -m "Version <release-version>"
  6. Bump version in server/gradle.properties to the next -SNAPSHOT

  7. Push release branch and tag shell script git push origin git push origin <tag-name>
  8. Create a Pull Request with the version update
  9. Create and publish a release with a new version in GitHub