Skip to content

Commit fb03918

Browse files
committed
feat: first commit
0 parents  commit fb03918

13 files changed

+524
-0
lines changed

.github/workflows/build.yml

+42
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: Build
2+
on:
3+
push:
4+
branches:
5+
- main
6+
pull_request:
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
strategy:
11+
matrix:
12+
goarch: [ amd64, arm64 ]
13+
fail-fast: true
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
with:
18+
fetch-depth: 0
19+
- name: Setup Go
20+
uses: actions/setup-go@v5
21+
with:
22+
cache: true
23+
go-version: 'stable'
24+
- name: Install dependencies
25+
run: go mod tidy
26+
- name: Build ${{ matrix.goarch }}
27+
env:
28+
CGO_ENABLED: 0
29+
GOOS: linux
30+
GOARCH: ${{ matrix.goarch }}
31+
run: |
32+
LDFLAGS="-s -w --extldflags '-static'"
33+
go build -ldflags "${LDFLAGS}" -o gateway-${{ matrix.goarch }}
34+
- name: Compress ${{ matrix.goarch }}
35+
run: |
36+
upx --best --lzma gateway-${{ matrix.goarch }}
37+
- name: Upload artifact
38+
uses: actions/upload-artifact@v4
39+
with:
40+
name: ${{ matrix.goarch }}
41+
path: |
42+
gateway-${{ matrix.goarch }}

.github/workflows/goreleaser.yml

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
name: Release
2+
on:
3+
push:
4+
tags:
5+
- 'v*'
6+
permissions:
7+
contents: write
8+
jobs:
9+
goreleaser:
10+
runs-on: ubuntu-latest
11+
steps:
12+
- name: Checkout
13+
uses: actions/checkout@v4
14+
with:
15+
fetch-depth: 0
16+
- name: Setup Go
17+
uses: actions/setup-go@v5
18+
with:
19+
cache: true
20+
go-version: 'stable'
21+
- name: Run GoReleaser
22+
uses: goreleaser/goreleaser-action@v6
23+
with:
24+
version: latest
25+
args: release --clean
26+
env:
27+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/lint.yml

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
name: Lint
2+
on:
3+
push:
4+
branches:
5+
- main
6+
pull_request:
7+
permissions:
8+
contents: read
9+
jobs:
10+
golangci:
11+
name: golanci-lint
12+
runs-on: ubuntu-latest
13+
steps:
14+
- name: Checkout
15+
uses: actions/checkout@v4
16+
- name: Setup Go
17+
uses: actions/setup-go@v5
18+
with:
19+
cache: true
20+
go-version: 'stable'
21+
- name: Run golangci-lint
22+
uses: golangci/golangci-lint-action@v6
23+
with:
24+
skip-cache: true
25+
version: latest
26+
args: --timeout=30m ./...
27+
govulncheck:
28+
runs-on: ubuntu-latest
29+
steps:
30+
- name: Checkout
31+
uses: actions/checkout@v4
32+
- name: Setup Go
33+
uses: actions/setup-go@v5
34+
with:
35+
cache: true
36+
go-version: 'stable'
37+
- name: Install Govulncheck
38+
run: go install golang.org/x/vuln/cmd/govulncheck@latest
39+
- name: Run Govulncheck
40+
run: govulncheck ./...

.gitignore

+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# `go test -c` 生成的二进制文件
2+
*.test
3+
4+
# go coverage 工具
5+
*.out
6+
*.prof
7+
*.cgo1.go
8+
*.cgo2.c
9+
_cgo_defun.c
10+
_cgo_gotypes.go
11+
_cgo_export.*
12+
13+
# 编译文件
14+
*.com
15+
*.class
16+
*.dll
17+
*.exe
18+
*.o
19+
*.so
20+
# 在此添加你的项目名(如果需要)
21+
22+
# 压缩包
23+
# Git 自带压缩,如果这些压缩包里有代码,建议解压后 commit
24+
*.7z
25+
*.dmg
26+
*.gz
27+
*.iso
28+
*.jar
29+
*.rar
30+
*.tar
31+
*.zip
32+
33+
# 日志文件和数据库及配置
34+
*.log
35+
*.sqlite
36+
*.db
37+
config/config.yml
38+
39+
# 临时文件
40+
tmp/
41+
.tmp/
42+
43+
# 系统生成文件
44+
.DS_Store
45+
.DS_Store?
46+
.AppleDouble
47+
.LSOverride
48+
._*
49+
.Spotlight-V100
50+
.Trashes
51+
ehthumbs.db
52+
Thumbs.db
53+
.TemporaryItems
54+
.fseventsd
55+
.VolumeIcon.icns
56+
.com.apple.timemachine.donotpresent
57+
58+
# IDE 和编辑器
59+
.idea/
60+
/go_build_*
61+
out/
62+
.vscode/
63+
.vscode/settings.json
64+
*.sublime*
65+
__debug_bin
66+
.project

.goreleaser.yaml

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
version: 2
2+
project_name: wechatpay-notify-gateway
3+
4+
builds:
5+
- id: gateway
6+
binary: gateway
7+
env:
8+
- CGO_ENABLED=0
9+
goos:
10+
- linux
11+
- darwin
12+
- windows
13+
goarch:
14+
- amd64
15+
- arm64
16+
ldflags:
17+
- -s -w --extldflags "-static"
18+
19+
upx:
20+
- enabled: true
21+
# Filter by build ID.
22+
ids:
23+
- gateway
24+
# Compress argument.
25+
# Valid options are from '1' (faster) to '9' (better), and 'best'.
26+
compress: best
27+
# Whether to try LZMA (slower).
28+
lzma: true
29+
# Whether to try all methods and filters (slow).
30+
brute: false
31+
32+
archives:
33+
- id: gateway
34+
builds:
35+
- gateway
36+
formats: [ "zip", "tar.gz", "tar.xz" ]
37+
wrap_in_directory: false
38+
strip_binary_directory: true
39+
files:
40+
- LICENSE
41+
- config.example.yml

LICENSE

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2024-now TreeNewBee
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# wechatpay-notify-gateway
2+
3+
微信支付异步通知网关

config.example.yml

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
debug: false
2+
address: ":3000"
3+
forwards:
4+
- "https://api.example.com/pay/notify"
5+
wechat:
6+
apiV3Key: "abcdef1234567890abcdef1234567890"
7+
publicKeyID: "1234567890abcdef1234567890abcdef"
8+
publicKey: |
9+
-----BEGIN PUBLIC KEY-----
10+
-----END PUBLIC KEY-----

config.yml

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
debug: false
2+
address: ":3000"
3+
forwards:
4+
- "https://api.example.com/pay/notify"
5+
wechat:
6+
apiV3Key: "abcdef1234567890abcdef1234567890"
7+
publicKeyID: "1234567890abcdef1234567890abcdef"
8+
publicKey: |
9+
-----BEGIN PUBLIC KEY-----
10+
-----END PUBLIC KEY-----

go.mod

+38
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
module github.com/tnb-labs/wechatpay-notify-gateway
2+
3+
go 1.24.1
4+
5+
require (
6+
github.com/go-resty/resty/v2 v2.16.5
7+
github.com/gofiber/fiber/v3 v3.0.0-beta.4.0.20250307143322-600ebd95ce74
8+
github.com/knadh/koanf/parsers/yaml v0.1.0
9+
github.com/knadh/koanf/providers/file v1.1.2
10+
github.com/knadh/koanf/v2 v2.1.2
11+
github.com/wechatpay-apiv3/wechatpay-go v0.2.20
12+
)
13+
14+
require (
15+
github.com/andybalholm/brotli v1.1.1 // indirect
16+
github.com/fsnotify/fsnotify v1.7.0 // indirect
17+
github.com/fxamacker/cbor/v2 v2.7.0 // indirect
18+
github.com/go-viper/mapstructure/v2 v2.2.1 // indirect
19+
github.com/gofiber/schema v1.3.0 // indirect
20+
github.com/gofiber/utils/v2 v2.0.0-beta.7 // indirect
21+
github.com/google/uuid v1.6.0 // indirect
22+
github.com/klauspost/compress v1.17.11 // indirect
23+
github.com/knadh/koanf/maps v0.1.1 // indirect
24+
github.com/mattn/go-colorable v0.1.14 // indirect
25+
github.com/mattn/go-isatty v0.0.20 // indirect
26+
github.com/mitchellh/copystructure v1.2.0 // indirect
27+
github.com/mitchellh/reflectwalk v1.0.2 // indirect
28+
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c // indirect
29+
github.com/tinylib/msgp v1.2.5 // indirect
30+
github.com/valyala/bytebufferpool v1.0.0 // indirect
31+
github.com/valyala/fasthttp v1.59.0 // indirect
32+
github.com/x448/float16 v0.8.4 // indirect
33+
golang.org/x/crypto v0.36.0 // indirect
34+
golang.org/x/net v0.35.0 // indirect
35+
golang.org/x/sys v0.31.0 // indirect
36+
golang.org/x/text v0.23.0 // indirect
37+
gopkg.in/yaml.v3 v3.0.1 // indirect
38+
)

go.sum

+81
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
github.com/agiledragon/gomonkey v2.0.2+incompatible h1:eXKi9/piiC3cjJD1658mEE2o3NjkJ5vDLgYjCQu0Xlw=
2+
github.com/agiledragon/gomonkey v2.0.2+incompatible/go.mod h1:2NGfXu1a80LLr2cmWXGBDaHEjb1idR6+FVlX5T3D9hw=
3+
github.com/andybalholm/brotli v1.1.1 h1:PR2pgnyFznKEugtsUo0xLdDop5SKXd5Qf5ysW+7XdTA=
4+
github.com/andybalholm/brotli v1.1.1/go.mod h1:05ib4cKhjx3OQYUY22hTVd34Bc8upXjOLL2rKwwZBoA=
5+
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
6+
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
7+
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
8+
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
9+
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
10+
github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
11+
github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
12+
github.com/go-resty/resty/v2 v2.16.5 h1:hBKqmWrr7uRc3euHVqmh1HTHcKn99Smr7o5spptdhTM=
13+
github.com/go-resty/resty/v2 v2.16.5/go.mod h1:hkJtXbA2iKHzJheXYvQ8snQES5ZLGKMwQ07xAwp/fiA=
14+
github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss=
15+
github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM=
16+
github.com/gofiber/fiber/v3 v3.0.0-beta.4.0.20250307143322-600ebd95ce74 h1:ehiSSOFG/TySfBHcIoIz4D1vJGAQun8bAm1VU0ef3eg=
17+
github.com/gofiber/fiber/v3 v3.0.0-beta.4.0.20250307143322-600ebd95ce74/go.mod h1:nwKz+2A1sc8CX9AiYQ7AzJ2nEJxnMkRI/84LNwM4+uw=
18+
github.com/gofiber/schema v1.3.0 h1:K3F3wYzAY+aivfCCEHPufCthu5/13r/lzp1nuk6mr3Q=
19+
github.com/gofiber/schema v1.3.0/go.mod h1:YYwj01w3hVfaNjhtJzaqetymL56VW642YS3qZPhuE6c=
20+
github.com/gofiber/utils/v2 v2.0.0-beta.7 h1:NnHFrRHvhrufPABdWajcKZejz9HnCWmT/asoxRsiEbQ=
21+
github.com/gofiber/utils/v2 v2.0.0-beta.7/go.mod h1:J/M03s+HMdZdvhAeyh76xT72IfVqBzuz/OJkrMa7cwU=
22+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
23+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
24+
github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
25+
github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
26+
github.com/knadh/koanf/maps v0.1.1 h1:G5TjmUh2D7G2YWf5SQQqSiHRJEjaicvU0KpypqB3NIs=
27+
github.com/knadh/koanf/maps v0.1.1/go.mod h1:npD/QZY3V6ghQDdcQzl1W4ICNVTkohC8E73eI2xW4yI=
28+
github.com/knadh/koanf/parsers/yaml v0.1.0 h1:ZZ8/iGfRLvKSaMEECEBPM1HQslrZADk8fP1XFUxVI5w=
29+
github.com/knadh/koanf/parsers/yaml v0.1.0/go.mod h1:cvbUDC7AL23pImuQP0oRw/hPuccrNBS2bps8asS0CwY=
30+
github.com/knadh/koanf/providers/file v1.1.2 h1:aCC36YGOgV5lTtAFz2qkgtWdeQsgfxUkxDOe+2nQY3w=
31+
github.com/knadh/koanf/providers/file v1.1.2/go.mod h1:/faSBcv2mxPVjFrXck95qeoyoZ5myJ6uxN8OOVNJJCI=
32+
github.com/knadh/koanf/v2 v2.1.2 h1:I2rtLRqXRy1p01m/utEtpZSSA6dcJbgGVuE27kW2PzQ=
33+
github.com/knadh/koanf/v2 v2.1.2/go.mod h1:Gphfaen0q1Fc1HTgJgSTC4oRX9R2R5ErYMZJy8fLJBo=
34+
github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
35+
github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
36+
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
37+
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
38+
github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw=
39+
github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s=
40+
github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ=
41+
github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw=
42+
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c h1:dAMKvw0MlJT1GshSTtih8C2gDs04w8dReiOGXrGLNoY=
43+
github.com/philhofer/fwd v1.1.3-0.20240916144458-20a13a1f6b7c/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
44+
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
45+
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
46+
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
47+
github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
48+
github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
49+
github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
50+
github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
51+
github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
52+
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
53+
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
54+
github.com/tinylib/msgp v1.2.5 h1:WeQg1whrXRFiZusidTQqzETkRpGjFjcIhW6uqWH09po=
55+
github.com/tinylib/msgp v1.2.5/go.mod h1:ykjzy2wzgrlvpDCRc4LA8UXy6D8bzMSuAF3WD57Gok0=
56+
github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw=
57+
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
58+
github.com/valyala/fasthttp v1.59.0 h1:Qu0qYHfXvPk1mSLNqcFtEk6DpxgA26hy6bmydotDpRI=
59+
github.com/valyala/fasthttp v1.59.0/go.mod h1:GTxNb9Bc6r2a9D0TWNSPwDz78UxnTGBViY3xZNEqyYU=
60+
github.com/wechatpay-apiv3/wechatpay-go v0.2.20 h1:gS8oFn1bHGnyapR2Zb4aqTV6l4kJWgbtqjCq6k1L9DQ=
61+
github.com/wechatpay-apiv3/wechatpay-go v0.2.20/go.mod h1:A254AUBVB6R+EqQFo3yTgeh7HtyqRRtN2w9hQSOrd4Q=
62+
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
63+
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
64+
github.com/xyproto/randomstring v1.0.5 h1:YtlWPoRdgMu3NZtP45drfy1GKoojuR7hmRcnhZqKjWU=
65+
github.com/xyproto/randomstring v1.0.5/go.mod h1:rgmS5DeNXLivK7YprL0pY+lTuhNQW3iGxZ18UQApw/E=
66+
golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
67+
golang.org/x/crypto v0.36.0/go.mod h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
68+
golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8=
69+
golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk=
70+
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
71+
golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
72+
golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
73+
golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
74+
golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
75+
golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U=
76+
golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
77+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
78+
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
79+
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
80+
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
81+
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=

0 commit comments

Comments
 (0)