Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/googleapis/api-linter
A linter for APIs defined in protocol buffers.
https://github.com/googleapis/api-linter
Last synced: 2 days ago
JSON representation
A linter for APIs defined in protocol buffers.
- Host: GitHub
- URL: https://github.com/googleapis/api-linter
- Owner: googleapis
- License: apache-2.0
- Created: 2019-03-27T19:49:48.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2024-10-21T18:15:00.000Z (18 days ago)
- Last Synced: 2024-10-22T09:32:48.066Z (17 days ago)
- Language: Go
- Homepage: https://linter.aip.dev/
- Size: 2.64 MB
- Stars: 588
- Watchers: 62
- Forks: 145
- Open Issues: 80
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: .github/CODEOWNERS
- Security: SECURITY.md
- Support: docs/support/search.html
Awesome Lists containing this project
- awesome-grpc - api-linter - A linter for APIs defined in protocol buffers. (Protocol Buffers / Tools)
README
# Google API Linter
[![ci](https://github.com/googleapis/api-linter/actions/workflows/ci.yaml/badge.svg)](https://github.com/googleapis/api-linter/actions/workflows/ci.yaml)
![latest release](https://img.shields.io/github/v/release/googleapis/api-linter)
![go version](https://img.shields.io/github/go-mod/go-version/googleapis/api-linter)The API linter provides real-time checks for compliance with many of Google's
API standards, documented using [API Improvement Proposals][]. It operates on
API surfaces defined in [protocol buffers][].It identifies common mistakes and inconsistencies in API surfaces:
```proto
// Incorrect.
message GetBookRequest {
// This is wrong; it should be spelled `name`.
string book = 1;
}
```When able, it also offers a suggestion for the correct fix.
[_Read more ≫_](https://linter.aip.dev/)
## Versioning
The Google API linter does **not** follow semantic versioning. Semantic
versioning is challenging for a tool like a linter because the addition or
correction of virtually any rule is "breaking" (in the sense that a file that
previously reported no problems may now do so).Therefore, the version numbers refer to the linter's core interface. In
general:- Releases with only documentation, chores, dependency upgrades, and/or
bugfixes are patch releases.
- Releases with new rules (or potentially removed rules) are minor releases.
- Releases with core interface alterations are major releases. This could
include changes to the internal Go interface or the CLI user interface.**Note:** Releases that increment the Go version will be considered minor.
This is an attempt to follow the spirit of semantic versioning while still
being useful.## Contributing
If you are interested in contributing to the API linter, please review the [contributing guide](https://linter.aip.dev/contributing) to learn more.
## License
This software is made available under the [Apache 2.0][] license.
[apache 2.0]: https://www.apache.org/licenses/LICENSE-2.0
[api improvement proposals]: https://aip.dev/
[protocol buffers]: https://developers.google.com/protocol-buffers
[rule documentation]: ./rules/index.md