buf-lint
ActionsTags
(2)Verified
Note
This action has been deprecated in favor of the buf-action which combines the
functionality of buf-lint-action with the ability to run Buf commands in the same step. Please
see the migration guide for more information.
This Action enables you to lint Protobuf files with Buf in your GitHub Actions pipelines. If
it detects violations of your configured lint rules, it automatically creates inline
comments under the rule-breaking lines in your .proto files.
Here's an example usage of buf-lint-action:
on: pull_request # Apply to all pull requests
jobs:
lint-protos:
# Run `git checkout`
- uses: actions/checkout@v2
# Install the `buf` CLI
- uses: bufbuild/buf-setup-action@v1
# Lint your Protobuf sources
- uses: bufbuild/buf-lint-action@v1With this configuration, the buf CLI runs the lint checks specified in your buf.yaml
configuration file. If any violations are detected, buf-lint-action creates inline comments under
the rule-breaking lines in your .proto files in the pull request.
For buf-lint-action to work, you need to install the buf CLI in the GitHub Actions Runner first.
We recommend using buf-setup-action to install it (as in the example
above).
| Parameter | Description | Required | Default |
|---|---|---|---|
input |
The path of the Buf input you want to lint check | . |
|
buf_token |
The Buf authentication token used for any private input | ✅ |
These parameters are derived from
action.yml
Some repositories are structured in such a way that their buf.yaml is defined in a
sub-directory alongside their Protobuf sources, such as a proto directory. Here's an example:
$ tree
.
└── proto
├── acme
│ └── weather
│ └── v1
│ └── weather.proto
└── buf.yamlIn that case, you can target the proto sub-directory by setting input to proto:
steps:
- uses: actions/checkout@v2
- uses: bufbuild/buf-setup-action@v1
# Run lint only in the `proto` sub-directory
- uses: bufbuild/buf-lint-action@v1
with:
input: protobuf-lint is not certified by GitHub. It is provided by a third-party and is governed by separate terms of service, privacy policy, and support documentation.