Skip to content

rpcguard checks if connect-RPC endpoint method is implemented properly

Notifications You must be signed in to change notification settings

cloverrose/rpcguard

Repository files navigation

rpcguard

rpcguard is collection of connect-RPC usage linters which check if connect-RPC method is implemented properly.

  • rpc_callvalidate: check if RPC method uses Validate method properly
  • rpc_wraperr: check if RPC method returns wrapped error

Config

You can overwrite via commandline option or golangci setting.

Install

$ go install github.com/cloverrose/rpcguard/cmd/callvalidate@latest
$ go install github.com/cloverrose/rpcguard/cmd/wraperr@latest

Or Build from source

$ make build

Or Install via aqua

https://aquaproj.github.io/

Usage

$ go vet -vettool=`which rpc_callvalidate` ./...
$ go vet -vettool=`which rpc_wraperr` -rpc_wraperr.IncludePackages="$(go list -m)/.*" ./...

Note: rpc_wraperr.IncludePackages is required option.

When you specify config

go vet -vettool=`which rpc_callvalidate` \
  -rpc_callvalidate.log.level=ERROR \
   ./...
go vet -vettool=`which rpc_wraperr` \
  -rpc_wraperr.IncludePackages="$(go list -m)/.*" \
  -rpc_wraperr.log.level=ERROR \
  -rpc_wraperr.ReportMode=RETURN \
   ./...

Or golangci-lint custom plugin

https://golangci-lint.run/plugins/module-plugins/

Here are reference settings

.custom-gcl.yml

version: v2.3.1
plugins:
  - module: 'github.com/cloverrose/rpcguard'
    import: 'github.com/cloverrose/rpcguard'
    version: v0.6.3

.golangci.yml

linters-settings:
  custom:
    rpc_callvalidate:
      type: "module"
      description: check if RPC method uses Validate method properly.
      settings:
        log:
          level: "ERROR"
          file: "./log.txt"
    rpc_wraperr:
      type: "module"
      description:  check if RPC method returns wrapped error.
      settings:
        log:
          level: "ERROR"
          file: "./log.txt"
        ReportMode: "RETURN"
        IncludePackages: "github.com/cloverrose/linterplayground/.*"

About

rpcguard checks if connect-RPC endpoint method is implemented properly

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published