Skip to content

Commit 2cfba03

Browse files
chore: migrate to protoc
1 parent 4dbd479 commit 2cfba03

61 files changed

Lines changed: 5406 additions & 7433 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

Makefile

Lines changed: 90 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,35 +1,107 @@
11
.PHONY: generate
2+
generate: fetch-protos format-proto go-gen internal-go-gen
23

3-
generate: patch-swagger-doc format
4-
go mod tidy
5-
go mod vendor
4+
.PHONY: clean-proto
5+
clean-proto:
6+
@find ./proto -type f -name '*.go' -exec rm {} +
67

7-
patch-swagger-doc: buf-gen internal-buf-gen
8-
#./scripts/update_swagger.sh docs/openapiv2/apidocs.swagger.json
8+
.PHONY: clean-proto-internal
9+
clean-proto-internal:
10+
@find ./internal/proto -type f -name '*.go' -exec rm {} +
911

10-
init-git-hooks:
11-
git config --local core.hooksPath .githooks/
12+
.PHONY: fetch-protos
13+
fetch-protos:
14+
@protofetch -o vendor-proto fetch
1215

13-
buf-gen: init-git-hooks
14-
buf dep update
15-
./buf.gen.yaml
16-
find . -name \*.go -not -path '.git/*' -exec goimports -local github.com/openkcm/plugin-sdk -w {} \;
16+
.PHONY: go-gen
17+
go-gen: clean-proto
18+
@find ./proto -type f -iname '*.proto' -exec \
19+
protoc -I./proto -I./vendor-proto \
20+
--go_out=./proto \
21+
--go_opt=paths=import \
22+
--go_opt=module=github.com/openkcm/plugin-sdk/proto \
23+
--go-grpc_out=./proto \
24+
--go-grpc_opt=paths=import \
25+
--go-grpc_opt=module=github.com/openkcm/plugin-sdk/proto \
26+
--go-extension_out=./proto \
27+
--go-extension_opt=module=github.com/openkcm/plugin-sdk/proto \
28+
--go-extension_opt=submodule=github.com/openkcm/plugin-sdk/proto/service/common \
29+
--go-extension_opt=kind=service \
30+
--grpc-gateway_out=./proto \
31+
--grpc-gateway_opt=paths=import \
32+
--grpc-gateway_opt=module=github.com/openkcm/plugin-sdk/proto \
33+
--grpc-gateway_opt=logtostderr=true \
34+
{} +
1735

18-
internal-buf-gen:
19-
buf dep update
20-
./internal-buf.gen.yaml
36+
@find ./proto -type f -iname '*.proto' -exec \
37+
protoc -I./proto -I./vendor-proto \
38+
--go-extension_out=./proto \
39+
--go-extension_opt=module=github.com/openkcm/plugin-sdk/proto \
40+
--go-extension_opt=submodule=github.com/openkcm/plugin-sdk/proto/plugin \
41+
--go-extension_opt=kind=plugin \
42+
{} +
2143

22-
format: buf-gen
23-
buf format -w
44+
.PHONY: internal-go-gen
45+
internal-go-gen: clean-proto-internal
46+
@find ./internal/proto -type f -iname '*.proto' -exec \
47+
protoc -I./internal/proto -I./proto -I./vendor-proto \
48+
--go_out=./internal/proto \
49+
--go_opt=paths=import \
50+
--go_opt=module=github.com/openkcm/plugin-sdk/internal/proto \
51+
--go-grpc_out=./internal/proto \
52+
--go-grpc_opt=paths=import \
53+
--go-grpc_opt=module=github.com/openkcm/plugin-sdk/internal/proto \
54+
--go-extension_out=./internal/proto \
55+
--go-extension_opt=module=github.com/openkcm/plugin-sdk/internal/proto \
56+
--go-extension_opt=submodule=github.com/openkcm/plugin-sdk/internal/proto/service \
57+
--go-extension_opt=kind=service \
58+
--grpc-gateway_out=./internal/proto \
59+
--grpc-gateway_opt=paths=import \
60+
--grpc-gateway_opt=module=github.com/openkcm/plugin-sdk/internal/proto \
61+
--grpc-gateway_opt=logtostderr=true \
62+
{} +
2463

64+
.PHONY: format-proto
65+
format-proto:
66+
@buf format -w
67+
68+
.PHONY: format
69+
format: format-proto
70+
71+
.PHONY: validate-proto
72+
validate-proto: format-proto lint-proto breaking
73+
74+
.PHONY: lint-proto
75+
lint-proto:
76+
@buf lint
77+
78+
.PHONY: breaking
79+
breaking:
80+
@buf breaking --against https://github.com/openkcm/plugin-sdk.git#branch=main
81+
82+
.PHONY: install-proto-tools
83+
install-proto-tools:
84+
brew install protobuf
85+
go install \
86+
google.golang.org/protobuf/cmd/protoc-gen-go@latest \
87+
google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest \
88+
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway@latest \
89+
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2@latest \
90+
./cmd/protoc-gen-go-extension
91+
brew install bufbuild/buf/buf
92+
npm install -g @coralogix/protofetch
93+
94+
.PHONY: lint-install
2595
lint-install:
2696
go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@latest
2797

28-
lint:
98+
.PHONY: lint
99+
lint: lint-proto
29100
golangci-lint run -v --fix
30101

102+
.PHONY: goimports
31103
goimports:
32-
find . -name \*.go -not -path '.git/*' -exec goimports -local github.com/openkcm/plugin-sdk -w {} \;
104+
find ./ -name \*.go -not -path '.git/*' -exec goimports -local github.com/openkcm/plugin-sdk -w {} +
33105

34106
.PHONY: test
35107
test:

README.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,67 @@ External plugins are separate processes and use
1313

1414
KMS communicates with plugins over gRPC. As such, the various interfaces are defined via gRPC service definitions.
1515

16+
## Pre-requisites
17+
18+
Several tools are required to generate the code:
19+
20+
1. **`protoc compiler`**: see the instruction on the official [web site](https://protobuf.dev/installation) or install using homebrew `brew install protobuf`.
21+
2. **`protoc-gen-go`**: install via `go install google.golang.org/protobuf/cmd/protoc-gen-go@latest`.
22+
3. **`protoc-gen-go-grpc`**: install via `go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest`.
23+
4. **`protoc-gen-grpc-gateway`**: install via `go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway`.
24+
5. **`protoc-gen-openapiv2`**: install via `go install github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2`.
25+
6. **`protofetch`**: download from the [releases page](https://github.com/coralogix/protofetch/releases/latest) of [the GitHub repository](https://github.com/coralogix/protofetch) or install via `cargo install protofetch` or `npm install -g @coralogix/protofetch`, or using any similar tool compatible with the npm registry.
26+
27+
## Optional tools
28+
29+
Optionally, the [`buf` CLI](https://github.com/bufbuild/buf) tool can be used to validate, detect breaking changes, and format `.proto` files:
30+
31+
- **`buf breaking --against https://github.com/openkcm/api-sdk.git#branch=main`**: detect breaking changes against the main branch of the remote repository.
32+
- **`buf format -w`**: format `.proto` files.
33+
- **`buf lint`**: lint `.proto` files.
34+
35+
## Makefile
36+
37+
There are several `make` targets defined in the `Makefile`:
38+
39+
- **`fetch-protos`**: download `.proto` dependencies using `protofetch`.
40+
- **`generate`**: fetches `.proto` dependencies, formats `.proto` files, and generates Go code.
41+
- **`install-proto-tools`**: installs the tools (including optional) from the following sources: Homebrew, Go registry (via `go install`), NPM registry (via `npm install -g`). See the target definition for the details.
42+
- **`validate-proto`**: formats and lints `.proto` files, detects breaking changes.
43+
44+
For the rest `make` targets see `Makefile`.
45+
46+
## Dependencies
47+
48+
`.proto` dependencies are managed with the [`protofetch`](https://github.com/coralogix/protofetch) tool. This tool downloads `.proto` files from a specified location of a git repository and places them into the `vendor-proto` directory. The dependencies are specified in the `protofetch.toml` file.
49+
50+
For instance, a dependency on the [`protovalidate`](https://github.com/bufbuild/protovalidate) proto definitions can be specified as follow:
51+
52+
``` toml
53+
name = "github.com/openkcm/plugin-sdk"
54+
description = "Plugins SDK of the OpenKCM project"
55+
56+
[protovalidate]
57+
url = "github.com/bufbuild/protovalidate"
58+
revision = "v1.1.1"
59+
content_roots = ["/proto/protovalidate"]
60+
allow_policies = ["buf/validate/*"]
61+
```
62+
63+
In order to fetch dependencies, execute:
64+
65+
``` sh
66+
$ protofetch -o vendor-proto fetch
67+
```
68+
69+
## Generate Go code from the .proto definitions
70+
71+
The code can be generated with executing the following Make target
72+
73+
```sh
74+
$ make generate
75+
```
76+
1677
## Support, Feedback, Contributing
1778

1879
This project is open to feature requests/suggestions, bug reports etc. via [GitHub issues](https://github.com/openkcm/plugin-sdk/issues). Contribution and feedback are encouraged and always welcome. For more information about how to contribute, the project structure, as well as additional contribution information, see our [Contribution Guidelines](CONTRIBUTING.md).

Taskfile.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,5 +5,5 @@ includes:
55
taskfile: hack/common/Taskfile_library.yaml
66
flatten: true
77
vars:
8-
CODE_DIRS: '{{.ROOT_DIR}}/pkg/... {{.ROOT_DIR}}/proto/... {{.ROOT_DIR}}/internal/bootstrap/... {{.ROOT_DIR}}/internal/consts/... {{.ROOT_DIR}}/internal/slog2hclog/... {{.ROOT_DIR}}/api/...'
8+
CODE_DIRS: '{{.ROOT_DIR}}/pkg/... {{.ROOT_DIR}}/internal/bootstrap/... {{.ROOT_DIR}}/internal/consts/... {{.ROOT_DIR}}/internal/slog2hclog/... {{.ROOT_DIR}}/api/...'
99
GENERATE_DOCS_INDEX: "false"

buf.gen.yaml

Lines changed: 0 additions & 43 deletions
This file was deleted.

buf.lock

Lines changed: 0 additions & 6 deletions
This file was deleted.

buf.yaml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
version: v2
2-
deps:
3-
- buf.build/bufbuild/protovalidate
42
modules:
53
- path: proto
64
- path: internal/proto
5+
- path: vendor-proto
76
lint:
87
use:
98
- STANDARD
109
except:
1110
- SERVICE_SUFFIX
11+
ignore:
12+
- vendor-proto
1213
breaking:
1314
use:
1415
- FILE

go.mod

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,14 @@ module github.com/openkcm/plugin-sdk
22

33
go 1.25.4
44

5+
tool (
6+
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-grpc-gateway
7+
github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2
8+
github.com/openkcm/plugin-sdk/cmd/protoc-gen-go-extension
9+
google.golang.org/grpc/cmd/protoc-gen-go-grpc
10+
google.golang.org/protobuf/cmd/protoc-gen-go
11+
)
12+
513
require (
614
buf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go v1.36.11-20260209202127-80ab13bee0bf.1
715
buf.build/go/protovalidate v1.1.3
@@ -10,7 +18,7 @@ require (
1018
github.com/stretchr/testify v1.11.1
1119
github.com/zeebo/errs/v2 v2.0.5
1220
golang.org/x/sys v0.42.0
13-
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217
21+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57
1422
google.golang.org/grpc v1.79.3
1523
google.golang.org/protobuf v1.36.11
1624
)
@@ -22,14 +30,18 @@ require (
2230
github.com/fatih/color v1.18.0 // indirect
2331
github.com/golang/protobuf v1.5.4 // indirect
2432
github.com/google/cel-go v0.27.0 // indirect
33+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 // indirect
2534
github.com/hashicorp/yamux v0.1.2 // indirect
2635
github.com/mattn/go-colorable v0.1.14 // indirect
2736
github.com/mattn/go-isatty v0.0.20 // indirect
2837
github.com/oklog/run v1.1.0 // indirect
2938
github.com/pmezard/go-difflib v1.0.0 // indirect
39+
github.com/rogpeppe/go-internal v1.14.1 // indirect
40+
go.yaml.in/yaml/v3 v3.0.4 // indirect
3041
golang.org/x/exp v0.0.0-20250813145105-42675adae3e6 // indirect
3142
golang.org/x/net v0.48.0 // indirect
32-
golang.org/x/text v0.32.0 // indirect
33-
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 // indirect
43+
golang.org/x/text v0.34.0 // indirect
44+
google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 // indirect
45+
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.1 // indirect
3446
gopkg.in/yaml.v3 v3.0.1 // indirect
3547
)

go.sum

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
3030
github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
3131
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
3232
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
33+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0 h1:HWRh5R2+9EifMyIHV7ZV+MIZqgz+PMpZ14Jynv3O2Zs=
34+
github.com/grpc-ecosystem/grpc-gateway/v2 v2.28.0/go.mod h1:JfhWUomR1baixubs02l85lZYYOm7LV6om4ceouMv45c=
3335
github.com/hashicorp/go-hclog v1.6.3 h1:Qr2kF+eVWjTiYmU7Y31tYlP1h0q/X3Nl3tPGdaB11/k=
3436
github.com/hashicorp/go-hclog v1.6.3/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M=
3537
github.com/hashicorp/go-plugin v1.7.0 h1:YghfQH/0QmPNc/AZMTFE3ac8fipZyZECHdDPshfk+mA=
@@ -38,8 +40,8 @@ github.com/hashicorp/yamux v0.1.2 h1:XtB8kyFOyHXYVFnwT5C3+Bdo8gArse7j2AQ0DA0Uey8
3840
github.com/hashicorp/yamux v0.1.2/go.mod h1:C+zze2n6e/7wshOZep2A70/aQU6QBRWJO/G6FT1wIns=
3941
github.com/jhump/protoreflect v1.17.0 h1:qOEr613fac2lOuTgWN4tPAtLL7fUSbuJL5X5XumQh94=
4042
github.com/jhump/protoreflect v1.17.0/go.mod h1:h9+vUUL38jiBzck8ck+6G/aeMX8Z4QUY/NiJPwPNi+8=
41-
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
42-
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
43+
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
44+
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
4345
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
4446
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
4547
github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
@@ -56,6 +58,8 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
5658
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
5759
github.com/rodaine/protogofakeit v0.1.1 h1:ZKouljuRM3A+TArppfBqnH8tGZHOwM/pjvtXe9DaXH8=
5860
github.com/rodaine/protogofakeit v0.1.1/go.mod h1:pXn/AstBYMaSfc1/RqH3N82pBuxtWgejz1AlYpY1mI0=
61+
github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
62+
github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
5963
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
6064
github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
6165
github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
@@ -90,20 +94,22 @@ golang.org/x/sys v0.0.0-20220503163025-988cb79eb6c6/go.mod h1:oPkhp1MJrh7nUepCBc
9094
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
9195
golang.org/x/sys v0.42.0 h1:omrd2nAlyT5ESRdCLYdm3+fMfNFE/+Rf4bDIQImRJeo=
9296
golang.org/x/sys v0.42.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
93-
golang.org/x/text v0.32.0 h1:ZD01bjUt1FQ9WJ0ClOL5vxgxOI/sVCNgX1YtKwcY0mU=
94-
golang.org/x/text v0.32.0/go.mod h1:o/rUWzghvpD5TXrTIBuJU77MTaN0ljMWE47kxGJQ7jY=
97+
golang.org/x/text v0.34.0 h1:oL/Qq0Kdaqxa1KbNeMKwQq0reLCCaFtqu2eNuSeNHbk=
98+
golang.org/x/text v0.34.0/go.mod h1:homfLqTYRFyVYemLBFl5GgL/DWEiH5wcsQ5gSh1yziA=
9599
gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
96100
gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
97-
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217 h1:fCvbg86sFXwdrl5LgVcTEvNC+2txB5mgROGmRL5mrls=
98-
google.golang.org/genproto/googleapis/api v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:+rXWjjaukWZun3mLfjmVnQi18E1AsFbDN9QdJ5YXLto=
99-
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217 h1:gRkg/vSppuSQoDjxyiGfN4Upv/h/DQmIR10ZU8dh4Ww=
100-
google.golang.org/genproto/googleapis/rpc v0.0.0-20251202230838-ff82c1b0f217/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
101+
google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57 h1:JLQynH/LBHfCTSbDWl+py8C+Rg/k1OVH3xfcaiANuF0=
102+
google.golang.org/genproto/googleapis/api v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:kSJwQxqmFXeo79zOmbrALdflXQeAYcUbgS7PbpMknCY=
103+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57 h1:mWPCjDEyshlQYzBpMNHaEof6UX1PmHcaUODUywQ0uac=
104+
google.golang.org/genproto/googleapis/rpc v0.0.0-20260209200024-4cfbd4190f57/go.mod h1:j9x/tPzZkyxcgEFkiKEEGxfvyumM01BEtsW8xzOahRQ=
101105
google.golang.org/grpc v1.79.3 h1:sybAEdRIEtvcD68Gx7dmnwjZKlyfuc61Dyo9pGXXkKE=
102106
google.golang.org/grpc v1.79.3/go.mod h1:KmT0Kjez+0dde/v2j9vzwoAScgEPx/Bw1CYChhHLrHQ=
107+
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.1 h1:/WILD1UcXj/ujCxgoL/DvRgt2CP3txG8+FwkUbb9110=
108+
google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.6.1/go.mod h1:YNKnb2OAApgYn2oYY47Rn7alMr1zWjb2U8Q0aoGWiNc=
103109
google.golang.org/protobuf v1.36.11 h1:fV6ZwhNocDyBLK0dj+fg8ektcVegBBuEolpbTQyBNVE=
104110
google.golang.org/protobuf v1.36.11/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
105111
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
106-
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15 h1:YR8cESwS4TdDjEe65xsg0ogRM/Nc3DYOhEAlW+xobZo=
107-
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
112+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
113+
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
108114
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
109115
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

0 commit comments

Comments
 (0)