Skip to content

Commit 8545715

Browse files
Merge pull request #4 from goark/refactoring-and-debug
Bump up version of external package
2 parents 63eab82 + d5839d7 commit 8545715

File tree

9 files changed

+174
-95
lines changed

9 files changed

+174
-95
lines changed

.github/workflows/codeql-analysis.yml

Lines changed: 37 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -15,52 +15,44 @@ on:
1515
- cron: '0 20 * * 0'
1616

1717
jobs:
18-
analyze:
19-
name: Analyze
18+
CodeQL-Build:
19+
# CodeQL runs on ubuntu-latest, windows-latest, and macos-latest
2020
runs-on: ubuntu-latest
2121

22-
strategy:
23-
fail-fast: false
24-
matrix:
25-
# Override automatic language detection by changing the below list
26-
# Supported options are ['csharp', 'cpp', 'go', 'java', 'javascript', 'python']
27-
language: ['go']
28-
# Learn more...
29-
# https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection
22+
permissions:
23+
# required for all workflows
24+
security-events: write
3025

31-
steps:
32-
- name: Checkout repository
33-
uses: actions/checkout@v2
34-
with:
35-
# We must fetch at least the immediate parents so that if this is
36-
# a pull request then we can checkout the head.
37-
fetch-depth: 2
38-
39-
# Initializes the CodeQL tools for scanning.
40-
- name: Initialize CodeQL
41-
uses: github/codeql-action/init@v1
42-
with:
43-
languages: ${{ matrix.language }}
44-
# If you wish to specify custom queries, you can do so here or in a config file.
45-
# By default, queries listed here will override any specified in a config file.
46-
# Prefix the list here with "+" to use these queries and those in the config file.
47-
# queries: ./path/to/local/query, your-org/your-repo/queries@main
48-
49-
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
50-
# If this step fails, then you should remove it and run the build manually (see below)
51-
- name: Autobuild
52-
uses: github/codeql-action/autobuild@v1
53-
54-
# ℹ️ Command-line programs to run using the OS shell.
55-
# 📚 https://git.io/JvXDl
26+
# only required for workflows in private repositories
27+
actions: read
28+
contents: read
5629

57-
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
58-
# and modify them (or add more) to build your code if your project
59-
# uses a compiled language
60-
61-
#- run: |
62-
# make bootstrap
63-
# make release
64-
65-
- name: Perform CodeQL Analysis
66-
uses: github/codeql-action/analyze@v1
30+
steps:
31+
- name: Checkout repository
32+
uses: actions/checkout@v3
33+
34+
# Initializes the CodeQL tools for scanning.
35+
- name: Initialize CodeQL
36+
uses: github/codeql-action/init@v2
37+
# Override language selection by uncommenting this and choosing your languages
38+
with:
39+
languages: go
40+
41+
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
42+
# If this step fails, then you should remove it and run the build manually (see below).
43+
- name: Autobuild
44+
uses: github/codeql-action/autobuild@v2
45+
46+
# ℹ️ Command-line programs to run using the OS shell.
47+
# 📚 https://git.io/JvXDl
48+
49+
# ✏️ If the Autobuild fails above, remove it and uncomment the following
50+
# three lines and modify them (or add more) to build your code if your
51+
# project uses a compiled language
52+
53+
#- run: |
54+
# make bootstrap
55+
# make release
56+
57+
- name: Perform CodeQL Analysis
58+
uses: github/codeql-action/analyze@v2

.github/workflows/lint.yml

Lines changed: 29 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,43 @@ on:
44
branches:
55
- main
66
pull_request:
7+
8+
permissions:
9+
contents: read
10+
# Optional: allow read access to pull request. Use with `only-new-issues` option.
11+
# pull-requests: read
712
jobs:
813
golangci:
914
name: lint
1015
runs-on: ubuntu-latest
1116
steps:
12-
- uses: actions/checkout@v2
13-
- uses: actions/setup-go@v2
17+
- uses: actions/setup-go@v3
1418
with:
15-
go-version: ^1.17
19+
go-version: ^1.18
20+
- uses: actions/checkout@v3
1621
- name: golangci-lint
17-
uses: golangci/golangci-lint-action@v2
22+
uses: golangci/golangci-lint-action@v3
1823
with:
19-
# Required: the version of golangci-lint is required and must be specified without patch version: we always use the latest patch version.
24+
# Optional: version of golangci-lint to use in form of v1.2 or v1.2.3 or `latest` to use the latest version
2025
version: latest
26+
27+
# Optional: working directory, useful for monorepos
28+
# working-directory: somedir
29+
30+
# Optional: golangci-lint command line arguments.
31+
# args: --issues-exit-code=0
32+
33+
# Optional: show only new issues if it's a pull request. The default value is `false`.
34+
# only-new-issues: true
35+
36+
# Optional: if set to true then the all caching functionality will be complete disabled,
37+
# takes precedence over all other caching options.
38+
# skip-cache: true
39+
40+
# Optional: if set to true then the action don't cache or restore ~/go/pkg.
41+
# skip-pkg-cache: true
42+
43+
# Optional: if set to true then the action don't cache or restore ~/.cache/go-build.
44+
# skip-build-cache: true
2145
- name: testing
2246
run: go test -shuffle on ./...

.github/workflows/vulns.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ jobs:
1212
- uses: actions/checkout@v2
1313
- uses: actions/setup-go@v2
1414
with:
15-
go-version: ^1.17
15+
go-version: ^1.18
1616
- name: WriteGoList
1717
run: go list -json -m all > go.list
1818
- name: Nancy

Taskfile.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ tasks:
1313
cmds:
1414
- go mod verify
1515
- go test -shuffle on ./...
16-
- docker run --rm -v $(pwd):/app -w /app golangci/golangci-lint:v1.44.2 golangci-lint run --enable gosec --timeout 3m0s ./...
16+
- docker run --rm -v $(pwd):/app -w /app golangci/golangci-lint:v1.45.2 golangci-lint run --enable gosec --timeout 3m0s ./...
1717
sources:
1818
- ./go.mod
1919
- '**/*.go'
@@ -32,7 +32,7 @@ tasks:
3232
- rm -f ./go.sum
3333
- go clean -cache
3434
- go clean -modcache
35-
- go mod tidy -v -go=1.17
35+
- go mod tidy -v -go=1.18
3636

3737
graph:
3838
desc: Make grapth of dependency modules.

csvdata_test.go

Lines changed: 62 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package csvdata_test
22

33
import (
4+
"database/sql"
45
"errors"
56
"io"
67
"strconv"
@@ -84,19 +85,25 @@ func TestBlankReader(t *testing.T) {
8485

8586
func TestNormal(t *testing.T) {
8687
testCases := []struct {
87-
sep rune
88-
size int
89-
headerFlag bool
90-
inp io.Reader
91-
name1 string
92-
name2 string
93-
flag bool
94-
mass float64
95-
order int64
96-
err error
88+
sep rune
89+
size int
90+
headerFlag bool
91+
inp io.Reader
92+
name1 string
93+
name2 string
94+
flag bool
95+
flagBool sql.NullBool
96+
mass float64
97+
massFloat64 sql.NullFloat64
98+
order int64
99+
orderByte sql.NullByte
100+
orderInt16 sql.NullInt16
101+
orderInt32 sql.NullInt32
102+
orderInt64 sql.NullInt64
103+
err error
97104
}{
98-
{sep: ',', size: 6, headerFlag: true, inp: strings.NewReader(csv1), name1: "Mercury", name2: "Mercury", flag: false, mass: 0.055, order: 1, err: nil},
99-
{sep: '\t', size: 6, headerFlag: false, inp: strings.NewReader(tsv1), name1: "Mercury", name2: "", flag: false, mass: 0.055, order: 1, err: csvdata.ErrOutOfIndex},
105+
{sep: ',', size: 6, headerFlag: true, inp: strings.NewReader(csv1), name1: "Mercury", name2: "Mercury", flag: false, flagBool: sql.NullBool{Bool: false, Valid: true}, mass: 0.055, massFloat64: sql.NullFloat64{Float64: 0.055, Valid: true}, order: 1, orderByte: sql.NullByte{Byte: 1, Valid: true}, orderInt16: sql.NullInt16{Int16: 1, Valid: true}, orderInt32: sql.NullInt32{Int32: 1, Valid: true}, orderInt64: sql.NullInt64{Int64: 1, Valid: true}, err: nil},
106+
{sep: '\t', size: 6, headerFlag: false, inp: strings.NewReader(tsv1), name1: "Mercury", name2: "", flag: false, flagBool: sql.NullBool{Bool: false, Valid: true}, mass: 0.055, massFloat64: sql.NullFloat64{Float64: 0.055, Valid: true}, order: 1, orderByte: sql.NullByte{Byte: 1, Valid: true}, orderInt16: sql.NullInt16{Int16: 1, Valid: true}, orderInt32: sql.NullInt32{Int32: 1, Valid: true}, orderInt64: sql.NullInt64{Int64: 1, Valid: true}, err: csvdata.ErrOutOfIndex},
100107
}
101108

102109
for _, tc := range testCases {
@@ -146,6 +153,13 @@ func TestNormal(t *testing.T) {
146153
if err == nil && flag != tc.flag {
147154
t.Errorf("ColumnBool() is \"%+v\", want \"%+v\".", flag, tc.flag)
148155
}
156+
flagBool, err := rc.ColumnNullBool("habitable")
157+
if !errors.Is(err, tc.err) {
158+
t.Errorf("ColumnBool() is \"%+v\", want \"%+v\".", err, tc.err)
159+
}
160+
if err == nil && flagBool != tc.flagBool {
161+
t.Errorf("ColumnBool() is \"%+v\", want \"%+v\".", flagBool, tc.flagBool)
162+
}
149163
//float
150164
if _, err = rc.GetFloat64(5); !errors.Is(err, csvdata.ErrNullPointer) {
151165
t.Errorf("GetFloat() is \"%+v\", want \"%+v\".", err, strconv.ErrSyntax)
@@ -160,6 +174,13 @@ func TestNormal(t *testing.T) {
160174
if err == nil && mass != tc.mass {
161175
t.Errorf("ColumnFloat() is \"%+v\", want \"%+v\".", mass, tc.mass)
162176
}
177+
massFloat64, err := rc.ColumnNullFloat64("mass")
178+
if !errors.Is(err, tc.err) {
179+
t.Errorf("ColumnFloat() is \"%+v\", want \"%+v\".", err, tc.err)
180+
}
181+
if err == nil && massFloat64 != tc.massFloat64 {
182+
t.Errorf("ColumnFloat() is \"%+v\", want \"%+v\".", massFloat64, tc.massFloat64)
183+
}
163184
//int
164185
if _, err = rc.GetInt64(5, 10); !errors.Is(err, csvdata.ErrNullPointer) {
165186
t.Errorf("GetFloat() is \"%+v\", want \"%+v\".", err, strconv.ErrSyntax)
@@ -174,11 +195,39 @@ func TestNormal(t *testing.T) {
174195
if err == nil && order != tc.order {
175196
t.Errorf("ColumnFloat() is \"%+v\", want \"%+v\".", order, tc.order)
176197
}
198+
orderByte, err := rc.ColumnNullByte("order", 10)
199+
if !errors.Is(err, tc.err) {
200+
t.Errorf("ColumnFloat() is \"%+v\", want \"%+v\".", err, tc.err)
201+
}
202+
if err == nil && orderByte != tc.orderByte {
203+
t.Errorf("ColumnFloat() is \"%+v\", want \"%+v\".", orderByte, tc.orderByte)
204+
}
205+
orderInt16, err := rc.ColumnNullInt16("order", 10)
206+
if !errors.Is(err, tc.err) {
207+
t.Errorf("ColumnFloat() is \"%+v\", want \"%+v\".", err, tc.err)
208+
}
209+
if err == nil && orderInt16 != tc.orderInt16 {
210+
t.Errorf("ColumnFloat() is \"%+v\", want \"%+v\".", orderInt16, tc.orderInt16)
211+
}
212+
orderInt32, err := rc.ColumnNullInt32("order", 10)
213+
if !errors.Is(err, tc.err) {
214+
t.Errorf("ColumnFloat() is \"%+v\", want \"%+v\".", err, tc.err)
215+
}
216+
if err == nil && orderInt32 != tc.orderInt32 {
217+
t.Errorf("ColumnFloat() is \"%+v\", want \"%+v\".", orderInt32, tc.orderInt32)
218+
}
219+
orderInt64, err := rc.ColumnNullInt64("order", 10)
220+
if !errors.Is(err, tc.err) {
221+
t.Errorf("ColumnFloat() is \"%+v\", want \"%+v\".", err, tc.err)
222+
}
223+
if err == nil && orderInt64 != tc.orderInt64 {
224+
t.Errorf("ColumnFloat() is \"%+v\", want \"%+v\".", orderInt64, tc.orderInt64)
225+
}
177226
}
178227
}
179228
}
180229

181-
/* Copyright 2021 Spiegel
230+
/* Copyright 2021-2022 Spiegel
182231
*
183232
* Licensed under the Apache License, Version 2.0 (the "License");
184233
* you may not use this file except in compliance with the License.

dependency.png

5.13 KB
Loading

go.mod

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,20 @@
11
module github.com/goark/csvdata
22

3-
go 1.17
3+
go 1.18
44

55
require (
66
github.com/goark/errs v1.1.0
77
github.com/knieriem/odf v0.1.0
8-
github.com/xuri/excelize/v2 v2.5.0
8+
github.com/xuri/excelize/v2 v2.6.0
99
)
1010

1111
require (
1212
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 // indirect
13-
github.com/richardlehane/mscfb v1.0.3 // indirect
13+
github.com/richardlehane/mscfb v1.0.4 // indirect
1414
github.com/richardlehane/msoleps v1.0.1 // indirect
15-
github.com/xuri/efp v0.0.0-20210322160811-ab561f5b45e3 // indirect
16-
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 // indirect
17-
golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985 // indirect
18-
golang.org/x/text v0.3.6 // indirect
15+
github.com/xuri/efp v0.0.0-20220407160117-ad0f7a785be8 // indirect
16+
github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 // indirect
17+
golang.org/x/crypto v0.0.0-20220408190544-5352b0902921 // indirect
18+
golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3 // indirect
19+
golang.org/x/text v0.3.7 // indirect
1920
)

go.sum

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -8,32 +8,35 @@ github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826 h1:RWengNIwukTxcDr9
88
github.com/mohae/deepcopy v0.0.0-20170929034955-c48cc78d4826/go.mod h1:TaXosZuwdSHYgviHp1DAtfrULt5eUgsSMsZf+YrPgl8=
99
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
1010
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
11-
github.com/richardlehane/mscfb v1.0.3 h1:rD8TBkYWkObWO0oLDFCbwMeZ4KoalxQy+QgniCj3nKI=
12-
github.com/richardlehane/mscfb v1.0.3/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk=
11+
github.com/richardlehane/mscfb v1.0.4 h1:WULscsljNPConisD5hR0+OyZjwK46Pfyr6mPu5ZawpM=
12+
github.com/richardlehane/mscfb v1.0.4/go.mod h1:YzVpcZg9czvAuhk9T+a3avCpcFPMUWm7gK3DypaEsUk=
1313
github.com/richardlehane/msoleps v1.0.1 h1:RfrALnSNXzmXLbGct/P2b4xkFz4e8Gmj/0Vj9M9xC1o=
1414
github.com/richardlehane/msoleps v1.0.1/go.mod h1:BWev5JBpU9Ko2WAgmZEuiz4/u3ZYTKbjLycmwiWUfWg=
1515
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
16-
github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0=
17-
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
18-
github.com/xuri/efp v0.0.0-20210322160811-ab561f5b45e3 h1:EpI0bqf/eX9SdZDwlMmahKM+CDBgNbsXMhsN28XrM8o=
19-
github.com/xuri/efp v0.0.0-20210322160811-ab561f5b45e3/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI=
20-
github.com/xuri/excelize/v2 v2.5.0 h1:nDDVfX0qaDuGjAvb+5zTd0Bxxoqa1Ffv9B4kiE23PTM=
21-
github.com/xuri/excelize/v2 v2.5.0/go.mod h1:rSu0C3papjzxQA3sdK8cU544TebhrPUoTOaGPIh0Q1A=
22-
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97 h1:/UOmuWzQfxxo9UtlXMwuQU8CMgg1eZXqTRwkSQJWKOI=
23-
golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
24-
golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb h1:fqpd0EBDzlHRCjiphRR5Zo/RSWWQlWv34418dnEixWk=
25-
golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
26-
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
27-
golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985 h1:4CSI6oo7cOjJKajidEljs9h+uP0rRZBPPPhcCbj5mw8=
28-
golang.org/x/net v0.0.0-20210726213435-c6fcb2dbf985/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
16+
github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
17+
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
18+
github.com/xuri/efp v0.0.0-20220407160117-ad0f7a785be8 h1:3X7aE0iLKJ5j+tz58BpvIZkXNV7Yq4jC93Z/rbN2Fxk=
19+
github.com/xuri/efp v0.0.0-20220407160117-ad0f7a785be8/go.mod h1:ybY/Jr0T0GTCnYjKqmdwxyxn2BQf2RcQIIvex5QldPI=
20+
github.com/xuri/excelize/v2 v2.6.0 h1:m/aXAzSAqxgt74Nfd+sNzpzVKhTGl7+S9nbG4A57mF4=
21+
github.com/xuri/excelize/v2 v2.6.0/go.mod h1:Q1YetlHesXEKwGFfeJn7PfEZz2IvHb6wdOeYjBxVcVs=
22+
github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22 h1:OAmKAfT06//esDdpi/DZ8Qsdt4+M5+ltca05dA5bG2M=
23+
github.com/xuri/nfp v0.0.0-20220409054826-5e722a1d9e22/go.mod h1:WwHg+CVyzlv/TX9xqBFXEZAuxOPxn2k1GNHwG41IIUQ=
24+
golang.org/x/crypto v0.0.0-20220408190544-5352b0902921 h1:iU7T1X1J6yxDr0rda54sWGkHgOp5XJrqm79gcNlC2VM=
25+
golang.org/x/crypto v0.0.0-20220408190544-5352b0902921/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
26+
golang.org/x/image v0.0.0-20211028202545-6944b10bf410 h1:hTftEOvwiOq2+O8k2D5/Q7COC7k5Qcrgc2TFURJYnvQ=
27+
golang.org/x/image v0.0.0-20211028202545-6944b10bf410/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
28+
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
29+
golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3 h1:EN5+DfgmRMvRUrMGERW2gQl3Vc+Z7ZMnI/xdEpPSf0c=
30+
golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
2931
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3032
golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
3133
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
34+
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
3235
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
33-
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
34-
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
35-
golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M=
36+
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
3637
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
38+
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
39+
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
3740
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
3841
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
3942
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=

0 commit comments

Comments
 (0)