mirror of
https://github.com/etcd-io/etcd.git
synced 2024-09-27 06:25:44 +00:00
Merge pull request #16626 from fuweid/fix-staticcheck-lint
*: fix staticcheck lint
This commit is contained in:
commit
9079ab3c98
13
Makefile
13
Makefile
@ -85,14 +85,9 @@ fix-bom:
|
||||
verify-dep:
|
||||
PASSES="dep" ./scripts/test.sh
|
||||
|
||||
# TODO: https://github.com/etcd-io/etcd/issues/16610
|
||||
#
|
||||
# The golangci-lint doesn't verify sub modules. Before #16610 fixed, verify-lint
|
||||
# still depends on legacy {ineffassign,nakedret,unparam,...}_pass. These X_pass
|
||||
# will be removed when the golangci-lint covers all the sub modules.
|
||||
.PHONY: verify-lint
|
||||
verify-lint: verify-ineffassign
|
||||
golangci-lint run --config tools/.golangci.yaml
|
||||
verify-lint:
|
||||
PASSES="lint" ./scripts/test.sh
|
||||
|
||||
.PHONY: fix-lint
|
||||
fix-lint:
|
||||
@ -150,10 +145,6 @@ verify-yamllint:
|
||||
verify-govet-shadow:
|
||||
PASSES="govet_shadow" ./scripts/test.sh
|
||||
|
||||
.PHONY: verify-ineffassign
|
||||
verify-ineffassign:
|
||||
PASSES="ineffassign" ./scripts/test.sh
|
||||
|
||||
YAMLFMT_VERSION = $(shell cd tools/mod && go list -m -f '{{.Version}}' github.com/google/yamlfmt)
|
||||
|
||||
.PHONY: fix-yamllint
|
||||
|
@ -18,3 +18,6 @@ var (
|
||||
TokenFieldNameGRPC = "token"
|
||||
TokenFieldNameSwagger = "authorization"
|
||||
)
|
||||
|
||||
// TokenFieldNameGRPCKey is used as a key of context to store token.
|
||||
type TokenFieldNameGRPCKey struct{}
|
||||
|
@ -71,6 +71,7 @@ func (b *DoubleBarrier) Enter() error {
|
||||
// delete itself now, otherwise other processes may need to wait
|
||||
// until these keys are automatically deleted when the related
|
||||
// lease expires.
|
||||
//nolint:staticcheck // SA9003 disable empty branch checker to keep the comment for why we ignore error
|
||||
if err = b.myKey.Delete(); err != nil {
|
||||
// Nothing to do here. We have to wait for the key to be
|
||||
// deleted when the lease expires.
|
||||
|
@ -198,12 +198,12 @@ func NewLeaseFromLeaseClient(remote pb.LeaseClient, c *Client, keepAliveTimeout
|
||||
keepAlives: make(map[LeaseID]*keepAlive),
|
||||
remote: remote,
|
||||
firstKeepAliveTimeout: keepAliveTimeout,
|
||||
lg: c.lg,
|
||||
}
|
||||
if l.firstKeepAliveTimeout == time.Second {
|
||||
l.firstKeepAliveTimeout = defaultTTL
|
||||
}
|
||||
if c != nil {
|
||||
l.lg = c.lg
|
||||
l.callOpts = c.callOpts
|
||||
}
|
||||
reqLeaderCtx := WithRequireLeader(context.Background())
|
||||
|
@ -133,7 +133,6 @@ func NewMaintenance(c *Client) Maintenance {
|
||||
|
||||
func NewMaintenanceFromMaintenanceClient(remote pb.MaintenanceClient, c *Client) Maintenance {
|
||||
api := &maintenance{
|
||||
lg: c.lg,
|
||||
dial: func(string) (pb.MaintenanceClient, func(), error) {
|
||||
return remote, func() {}, nil
|
||||
},
|
||||
@ -141,6 +140,7 @@ func NewMaintenanceFromMaintenanceClient(remote pb.MaintenanceClient, c *Client)
|
||||
}
|
||||
if c != nil {
|
||||
api.callOpts = c.callOpts
|
||||
api.lg = c.lg
|
||||
}
|
||||
return api
|
||||
}
|
||||
|
@ -25,10 +25,11 @@ import (
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
const (
|
||||
TraceKey = "trace"
|
||||
StartTimeKey = "startTime"
|
||||
)
|
||||
// TraceKey is used as a key of context for Trace.
|
||||
type TraceKey struct{}
|
||||
|
||||
// StartTimeKey is used as a key of context for start time of operation.
|
||||
type StartTimeKey struct{}
|
||||
|
||||
// Field is a kv pair to record additional details of the trace.
|
||||
type Field struct {
|
||||
@ -81,7 +82,7 @@ func TODO() *Trace {
|
||||
}
|
||||
|
||||
func Get(ctx context.Context) *Trace {
|
||||
if trace, ok := ctx.Value(TraceKey).(*Trace); ok && trace != nil {
|
||||
if trace, ok := ctx.Value(TraceKey{}).(*Trace); ok && trace != nil {
|
||||
return trace
|
||||
}
|
||||
return TODO()
|
||||
|
@ -40,7 +40,7 @@ func TestGet(t *testing.T) {
|
||||
},
|
||||
{
|
||||
name: "When the context has trace",
|
||||
inputCtx: context.WithValue(context.Background(), TraceKey, traceForTest),
|
||||
inputCtx: context.WithValue(context.Background(), TraceKey{}, traceForTest),
|
||||
outputTrace: traceForTest,
|
||||
},
|
||||
}
|
||||
@ -51,7 +51,7 @@ func TestGet(t *testing.T) {
|
||||
if trace == nil {
|
||||
t.Errorf("Expected %v; Got nil", tt.outputTrace)
|
||||
}
|
||||
if trace.operation != tt.outputTrace.operation {
|
||||
if tt.outputTrace == nil || trace.operation != tt.outputTrace.operation {
|
||||
t.Errorf("Expected %v; Got %v", tt.outputTrace, trace)
|
||||
}
|
||||
})
|
||||
|
@ -425,11 +425,8 @@ function unparam_pass {
|
||||
run_for_modules generic_checker run_go_tool "mvdan.cc/unparam"
|
||||
}
|
||||
|
||||
function staticcheck_pass {
|
||||
# TODO: we should upgrade pb or ignore the pb package
|
||||
#
|
||||
# versionpb/version.pb.go:69:15: proto.RegisterFile is deprecated: Use protoregistry.GlobalFiles.RegisterFile instead. (SA1019)
|
||||
run_for_modules generic_checker run_go_tool "honnef.co/go/tools/cmd/staticcheck"
|
||||
function lint_pass {
|
||||
run_for_modules generic_checker run golangci-lint run --config "${ETCD_ROOT_DIR}/tools/.golangci.yaml"
|
||||
}
|
||||
|
||||
function revive_pass {
|
||||
@ -442,10 +439,6 @@ function unconvert_pass {
|
||||
run_for_modules generic_checker run_go_tool "github.com/mdempsky/unconvert" unconvert -v
|
||||
}
|
||||
|
||||
function ineffassign_pass {
|
||||
run_for_modules generic_checker run_go_tool "github.com/gordonklaus/ineffassign"
|
||||
}
|
||||
|
||||
function nakedret_pass {
|
||||
run_for_modules generic_checker run_go_tool "github.com/alexkohler/nakedret/cmd/nakedret"
|
||||
}
|
||||
|
@ -1173,10 +1173,10 @@ func testAuthInfoFromCtxWithRoot(t *testing.T, opts string) {
|
||||
|
||||
ai, aerr := as.AuthInfoFromCtx(ctx)
|
||||
if aerr != nil {
|
||||
t.Error(err)
|
||||
t.Fatal(err)
|
||||
}
|
||||
if ai == nil {
|
||||
t.Error("expected non-nil *AuthInfo")
|
||||
t.Fatal("expected non-nil *AuthInfo")
|
||||
}
|
||||
if ai.Username != "root" {
|
||||
t.Errorf("expected user name 'root', got %+v", ai)
|
||||
|
@ -40,7 +40,7 @@ func Put(ctx context.Context, lg *zap.Logger, lessor lease.Lessor, kv mvcc.KV, p
|
||||
traceutil.Field{Key: "key", Value: string(p.Key)},
|
||||
traceutil.Field{Key: "req_size", Value: p.Size()},
|
||||
)
|
||||
ctx = context.WithValue(ctx, traceutil.TraceKey, trace)
|
||||
ctx = context.WithValue(ctx, traceutil.TraceKey{}, trace)
|
||||
}
|
||||
leaseID := lease.LeaseID(p.Lease)
|
||||
if leaseID != lease.NoLease {
|
||||
@ -102,7 +102,7 @@ func DeleteRange(ctx context.Context, lg *zap.Logger, kv mvcc.KV, dr *pb.DeleteR
|
||||
traceutil.Field{Key: "key", Value: string(dr.Key)},
|
||||
traceutil.Field{Key: "range_end", Value: string(dr.RangeEnd)},
|
||||
)
|
||||
ctx = context.WithValue(ctx, traceutil.TraceKey, trace)
|
||||
ctx = context.WithValue(ctx, traceutil.TraceKey{}, trace)
|
||||
}
|
||||
txnWrite := kv.Write(trace)
|
||||
defer txnWrite.End()
|
||||
@ -136,7 +136,7 @@ func Range(ctx context.Context, lg *zap.Logger, kv mvcc.KV, r *pb.RangeRequest)
|
||||
trace = traceutil.Get(ctx)
|
||||
if trace.IsEmpty() {
|
||||
trace = traceutil.New("range", lg)
|
||||
ctx = context.WithValue(ctx, traceutil.TraceKey, trace)
|
||||
ctx = context.WithValue(ctx, traceutil.TraceKey{}, trace)
|
||||
}
|
||||
txnRead := kv.Read(mvcc.ConcurrentReadTxMode, trace)
|
||||
defer txnRead.End()
|
||||
@ -248,7 +248,7 @@ func Txn(ctx context.Context, lg *zap.Logger, rt *pb.TxnRequest, txnModeWriteWit
|
||||
trace := traceutil.Get(ctx)
|
||||
if trace.IsEmpty() {
|
||||
trace = traceutil.New("transaction", lg)
|
||||
ctx = context.WithValue(ctx, traceutil.TraceKey, trace)
|
||||
ctx = context.WithValue(ctx, traceutil.TraceKey{}, trace)
|
||||
}
|
||||
isWrite := !IsTxnReadonly(rt)
|
||||
// When the transaction contains write operations, we use ReadTx instead of
|
||||
|
@ -105,7 +105,7 @@ func (s *EtcdServer) Range(ctx context.Context, r *pb.RangeRequest) (*pb.RangeRe
|
||||
traceutil.Field{Key: "range_begin", Value: string(r.Key)},
|
||||
traceutil.Field{Key: "range_end", Value: string(r.RangeEnd)},
|
||||
)
|
||||
ctx = context.WithValue(ctx, traceutil.TraceKey, trace)
|
||||
ctx = context.WithValue(ctx, traceutil.TraceKey{}, trace)
|
||||
|
||||
var resp *pb.RangeResponse
|
||||
var err error
|
||||
@ -140,7 +140,7 @@ func (s *EtcdServer) Range(ctx context.Context, r *pb.RangeRequest) (*pb.RangeRe
|
||||
}
|
||||
|
||||
func (s *EtcdServer) Put(ctx context.Context, r *pb.PutRequest) (*pb.PutResponse, error) {
|
||||
ctx = context.WithValue(ctx, traceutil.StartTimeKey, time.Now())
|
||||
ctx = context.WithValue(ctx, traceutil.StartTimeKey{}, time.Now())
|
||||
resp, err := s.raftRequest(ctx, pb.InternalRaftRequest{Put: r})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -162,7 +162,7 @@ func (s *EtcdServer) Txn(ctx context.Context, r *pb.TxnRequest) (*pb.TxnResponse
|
||||
s.Logger(),
|
||||
traceutil.Field{Key: "read_only", Value: true},
|
||||
)
|
||||
ctx = context.WithValue(ctx, traceutil.TraceKey, trace)
|
||||
ctx = context.WithValue(ctx, traceutil.TraceKey{}, trace)
|
||||
if !txn.IsTxnSerializable(r) {
|
||||
err := s.linearizableReadNotify(ctx)
|
||||
trace.Step("agreement among raft nodes before linearized reading")
|
||||
@ -190,7 +190,7 @@ func (s *EtcdServer) Txn(ctx context.Context, r *pb.TxnRequest) (*pb.TxnResponse
|
||||
return resp, err
|
||||
}
|
||||
|
||||
ctx = context.WithValue(ctx, traceutil.StartTimeKey, time.Now())
|
||||
ctx = context.WithValue(ctx, traceutil.StartTimeKey{}, time.Now())
|
||||
resp, err := s.raftRequest(ctx, pb.InternalRaftRequest{Txn: r})
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -671,7 +671,7 @@ func (s *EtcdServer) raftRequestOnce(ctx context.Context, r pb.InternalRaftReque
|
||||
if result.Err != nil {
|
||||
return nil, result.Err
|
||||
}
|
||||
if startTime, ok := ctx.Value(traceutil.StartTimeKey).(time.Time); ok && result.Trace != nil {
|
||||
if startTime, ok := ctx.Value(traceutil.StartTimeKey{}).(time.Time); ok && result.Trace != nil {
|
||||
applyStart := result.Trace.GetStartTime()
|
||||
// The trace object is created in toApply. Here reset the start time to trace
|
||||
// the raft request time by the difference between the request start time
|
||||
|
@ -37,7 +37,7 @@ func getAuthTokenFromClient(ctx context.Context) string {
|
||||
func withClientAuthToken(ctx, ctxWithToken context.Context) context.Context {
|
||||
token := getAuthTokenFromClient(ctxWithToken)
|
||||
if token != "" {
|
||||
ctx = context.WithValue(ctx, rpctypes.TokenFieldNameGRPC, token)
|
||||
ctx = context.WithValue(ctx, rpctypes.TokenFieldNameGRPCKey{}, token)
|
||||
}
|
||||
return ctx
|
||||
}
|
||||
@ -66,7 +66,7 @@ func AuthUnaryClientInterceptor(ctx context.Context, method string, req, reply a
|
||||
}
|
||||
|
||||
func AuthStreamClientInterceptor(ctx context.Context, desc *grpc.StreamDesc, cc *grpc.ClientConn, method string, streamer grpc.Streamer, opts ...grpc.CallOption) (grpc.ClientStream, error) {
|
||||
tokenif := ctx.Value(rpctypes.TokenFieldNameGRPC)
|
||||
tokenif := ctx.Value(rpctypes.TokenFieldNameGRPCKey{})
|
||||
if tokenif != nil {
|
||||
tokenCred := &proxyTokenCredential{tokenif.(string)}
|
||||
opts = append(opts, grpc.PerRPCCredentials(tokenCred))
|
||||
|
@ -189,10 +189,12 @@ func (ep *EtcdServerProcess) Restart(ctx context.Context) error {
|
||||
}
|
||||
|
||||
func (ep *EtcdServerProcess) Stop() (err error) {
|
||||
ep.cfg.lg.Info("stopping server...", zap.String("name", ep.cfg.Name))
|
||||
if ep == nil || ep.proc == nil {
|
||||
return nil
|
||||
}
|
||||
|
||||
ep.cfg.lg.Info("stopping server...", zap.String("name", ep.cfg.Name))
|
||||
|
||||
defer func() {
|
||||
ep.proc = nil
|
||||
}()
|
||||
|
@ -693,7 +693,7 @@ func TestLeasingTxnOwnerGet(t *testing.T) {
|
||||
k := fmt.Sprintf("k-%d", i)
|
||||
rr := tresp.Responses[i].GetResponseRange()
|
||||
if rr == nil {
|
||||
t.Errorf("expected get response, got %+v", tresp.Responses[i])
|
||||
t.Fatalf("expected get response, got %+v", tresp.Responses[i])
|
||||
}
|
||||
if string(rr.Kvs[0].Key) != k || string(rr.Kvs[0].Value) != k+k {
|
||||
t.Errorf(`expected key for %q, got %+v`, k, rr.Kvs)
|
||||
|
@ -89,7 +89,10 @@ func (lc *lazyCluster) mustLazyInit() {
|
||||
}
|
||||
|
||||
func (lc *lazyCluster) Terminate() {
|
||||
lc.tb.Logf("Terminating...")
|
||||
if lc != nil && lc.tb != nil {
|
||||
lc.tb.Logf("Terminating...")
|
||||
}
|
||||
|
||||
if lc != nil && lc.cluster != nil {
|
||||
lc.cluster.Terminate(nil)
|
||||
lc.cluster = nil
|
||||
|
@ -169,7 +169,6 @@ func loadKeyValueOperations(path string) (operations []porcupine.Operation, err
|
||||
func persistWatchOperations(t *testing.T, lg *zap.Logger, path string, responses []model.WatchOperation) {
|
||||
lg.Info("Saving watch operations", zap.String("path", path))
|
||||
file, err := os.OpenFile(path, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0755)
|
||||
defer file.Close()
|
||||
if err != nil {
|
||||
t.Errorf("Failed to save watch operations: %v", err)
|
||||
return
|
||||
|
@ -17,13 +17,13 @@ linters:
|
||||
# - deadcode
|
||||
# - structcheck
|
||||
# - varcheck
|
||||
- goimports
|
||||
# - goimports # TODO: enable by #16610
|
||||
- ineffassign
|
||||
- revive
|
||||
# - revive # TODO: enable by #16610
|
||||
- staticcheck
|
||||
- stylecheck
|
||||
- unused
|
||||
- unconvert # Remove unnecessary type conversions
|
||||
# - stylecheck # TODO: enable by #16610
|
||||
# - unused # TODO: enable by #16610
|
||||
# - unconvert # Remove unnecessary type conversions TODO: enable by #16610
|
||||
linters-settings: # please keep this alphabetized
|
||||
goimports:
|
||||
local-prefixes: go.etcd.io # Put imports beginning with prefix after 3rd-party packages.
|
||||
|
@ -11,7 +11,6 @@ require (
|
||||
github.com/gogo/protobuf v1.3.2
|
||||
github.com/google/addlicense v1.1.1
|
||||
github.com/google/yamlfmt v0.10.0
|
||||
github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0
|
||||
github.com/mdempsky/unconvert v0.0.0-20200228143138-95ecdbfc0b5f
|
||||
github.com/mgechev/revive v1.3.3
|
||||
|
@ -84,8 +84,6 @@ github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaU
|
||||
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ=
|
||||
github.com/google/yamlfmt v0.10.0 h1:0eR+Z3ZhkJ4uYIpEU/BcxpnqtkNDq8eCxon/Sj0YeRc=
|
||||
github.com/google/yamlfmt v0.10.0/go.mod h1:jW0ice5/S1EBCHhIV9rkGVfUjyCXD1cTlddkKwI8TKo=
|
||||
github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8 h1:PVRE9d4AQKmbelZ7emNig1+NT27DUmKZn5qXxfio54U=
|
||||
github.com/gordonklaus/ineffassign v0.0.0-20210914165742-4cc7213b9bc8/go.mod h1:Qcp2HIAYhR7mNUVSIxZww3Guk4it82ghYcEXIAk+QT0=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0 h1:RtRsiaGvWxcwd8y3BiRZxsylPT8hLWZ5SPcfI+3IDNk=
|
||||
github.com/grpc-ecosystem/grpc-gateway/v2 v2.18.0/go.mod h1:TzP6duP4Py2pHLVPPQp42aoYI92+PCrVotyR5e8Vqlk=
|
||||
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
|
||||
@ -184,7 +182,6 @@ github.com/weppos/publicsuffix-go v0.15.1-0.20220329081811-9a40b608a236 h1:vMJBP
|
||||
github.com/weppos/publicsuffix-go v0.15.1-0.20220329081811-9a40b608a236/go.mod h1:HYux0V0Zi04bHNwOHy4cXJVz/TQjYonnF6aoYhj+3QE=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
|
||||
github.com/zmap/rc2 v0.0.0-20131011165748-24b9757f5521/go.mod h1:3YZ9o3WnatTIZhuOtot4IcUfzoKVjUHqu6WALIyI0nE=
|
||||
github.com/zmap/zcertificate v0.0.0-20180516150559-0e3d58b1bac4/go.mod h1:5iU54tB79AMBcySS0R2XIyZBAVmeHranShAFELYx7is=
|
||||
@ -211,7 +208,6 @@ golang.org/x/exp/typeparams v0.0.0-20221208152030-732eee02a75a/go.mod h1:AbB0pIl
|
||||
golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg=
|
||||
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/mod v0.12.0 h1:rmsUpXtvNzj340zd98LZ4KntptpfRHwpFOHG188oHXc=
|
||||
golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
|
||||
@ -222,7 +218,6 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL
|
||||
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
|
||||
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
|
||||
golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM=
|
||||
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
|
||||
golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8=
|
||||
golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk=
|
||||
@ -242,9 +237,7 @@ golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7w
|
||||
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
|
||||
golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
|
||||
@ -272,7 +265,6 @@ golang.org/x/tools v0.0.0-20200225230052-807dcd883420/go.mod h1:TB2adYChydJhpapK
|
||||
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
|
||||
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
|
||||
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
|
||||
golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.11/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4=
|
||||
golang.org/x/tools v0.12.0 h1:YW6HUoUmYBpwSgyaGaZq1fHjrBjX1rlpZ54T6mu2kss=
|
||||
golang.org/x/tools v0.12.0/go.mod h1:Sc0INKfu04TlqNoRA1hgpFZbhYXHPr4V5DzpSBTPqQM=
|
||||
|
@ -29,7 +29,6 @@ import (
|
||||
_ "github.com/coreos/license-bill-of-materials"
|
||||
_ "github.com/google/addlicense"
|
||||
_ "github.com/google/yamlfmt/cmd/yamlfmt"
|
||||
_ "github.com/gordonklaus/ineffassign"
|
||||
_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway"
|
||||
_ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2"
|
||||
_ "github.com/mdempsky/unconvert"
|
||||
|
Loading…
x
Reference in New Issue
Block a user