From 487e7b3f979393d85e6c3b015447383c39279339 Mon Sep 17 00:00:00 2001 From: Reitwiec Shandilya Date: Wed, 20 Sep 2023 10:08:30 +0530 Subject: [PATCH 01/15] feat: v2 update --- .tmp/foo | 1 + cmd/coco/commands/dependencies.go | 6 +++--- cmd/coco/commands/generate.go | 6 +++--- cmd/coco/commands/generateCustom.go | 4 ++-- cmd/coco/commands/graph.go | 6 +++--- cmd/coco/commands/inspect.go | 4 ++-- cmd/coco/commands/reconcile.go | 4 ++-- cmd/coco/commands/root.go | 6 +++--- cmd/coco/commands/version.go | 2 +- cmd/coco/dependencies/dependencies.go | 6 +++--- cmd/coco/dependencies/dependencies_test.go | 8 ++++---- cmd/coco/dependencies/graph.go | 8 ++++---- cmd/coco/dependencies/graph_test.go | 10 +++++----- cmd/coco/generate/findtemplates.go | 2 +- cmd/coco/generate/findtemplates_test.go | 2 +- cmd/coco/generate/findvaluefiles.go | 2 +- cmd/coco/generate/findvaluefiles_test.go | 6 +++--- cmd/coco/generate/generate.go | 4 ++-- cmd/coco/generate/generate_test.go | 6 +++--- cmd/coco/generate/merge_test.go | 4 ++-- cmd/coco/generate/render.go | 6 +++--- cmd/coco/generate/renderTemplate.go | 4 ++-- cmd/coco/generate/renderTemplate_test.go | 4 ++-- cmd/coco/generate/render_test.go | 8 ++++---- cmd/coco/graph/componentDependencies_test.go | 2 +- cmd/coco/inputfile/inputfile.go | 4 ++-- cmd/coco/inputfile/inputfile_test.go | 6 +++--- cmd/coco/main.go | 2 +- cmd/coco/reconcile/reconcile.go | 4 ++-- cmd/coco/reconcile/reconcile_test.go | 4 ++-- go.mod | 2 +- pkg/exec/exec_test.go | 4 ++-- pkg/files/filerunner_test.go | 4 ++-- pkg/files/files_test.go | 2 +- pkg/git/git.go | 2 +- pkg/git/git_integration_test.go | 4 ++-- pkg/git/git_test.go | 4 ++-- pkg/github/client.go | 2 +- pkg/maputils/maputils.go | 2 +- pkg/structdoc/structdoc_test.go | 2 +- pkg/version/version.go | 2 +- pkg/yamlfile/docs_test.go | 2 +- pkg/yamlfile/encodeDecode_test.go | 4 ++-- pkg/yamlfile/mergeCombination_test.go | 2 +- pkg/yamlfile/mergeNode_test.go | 4 ++-- pkg/yamlfile/merge_test.go | 4 ++-- pkg/yamlfile/sortNode_test.go | 4 ++-- pkg/yamlfile/subnode_test.go | 4 ++-- pkg/yamlfile/yamlfiles_test.go | 6 +++--- 49 files changed, 101 insertions(+), 100 deletions(-) create mode 160000 .tmp/foo diff --git a/.tmp/foo b/.tmp/foo new file mode 160000 index 0000000..56c4bf4 --- /dev/null +++ b/.tmp/foo @@ -0,0 +1 @@ +Subproject commit 56c4bf4ca9789505db7a6eefb910a7259c1fcb79 diff --git a/cmd/coco/commands/dependencies.go b/cmd/coco/commands/dependencies.go index 5c09762..7854c48 100644 --- a/cmd/coco/commands/dependencies.go +++ b/cmd/coco/commands/dependencies.go @@ -5,9 +5,9 @@ import ( "os" "path/filepath" - "github.com/SAP/configuration-tools-for-gitops/cmd/coco/dependencies" - "github.com/SAP/configuration-tools-for-gitops/cmd/coco/graph" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/dependencies" + "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/graph" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" "github.com/spf13/cobra" "github.com/spf13/viper" ) diff --git a/cmd/coco/commands/generate.go b/cmd/coco/commands/generate.go index 00a97f9..fdf99ca 100644 --- a/cmd/coco/commands/generate.go +++ b/cmd/coco/commands/generate.go @@ -5,9 +5,9 @@ import ( "os" "path/filepath" - "github.com/SAP/configuration-tools-for-gitops/cmd/coco/generate" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" - "github.com/SAP/configuration-tools-for-gitops/pkg/version" + "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/generate" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/version" "github.com/spf13/cobra" "github.com/spf13/viper" "go.uber.org/zap" diff --git a/cmd/coco/commands/generateCustom.go b/cmd/coco/commands/generateCustom.go index cf2c47a..07d3e5e 100644 --- a/cmd/coco/commands/generateCustom.go +++ b/cmd/coco/commands/generateCustom.go @@ -3,8 +3,8 @@ package commands import ( "os" - "github.com/SAP/configuration-tools-for-gitops/cmd/coco/generate" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/generate" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" "github.com/spf13/cobra" ) diff --git a/cmd/coco/commands/graph.go b/cmd/coco/commands/graph.go index e744acd..ea15c0f 100644 --- a/cmd/coco/commands/graph.go +++ b/cmd/coco/commands/graph.go @@ -3,9 +3,9 @@ package commands import ( "os" - "github.com/SAP/configuration-tools-for-gitops/cmd/coco/dependencies" - "github.com/SAP/configuration-tools-for-gitops/cmd/coco/graph" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/dependencies" + "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/graph" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" "github.com/spf13/cobra" "github.com/spf13/viper" ) diff --git a/cmd/coco/commands/inspect.go b/cmd/coco/commands/inspect.go index a515fce..4fe78bf 100644 --- a/cmd/coco/commands/inspect.go +++ b/cmd/coco/commands/inspect.go @@ -4,8 +4,8 @@ import ( "fmt" "os" - "github.com/SAP/configuration-tools-for-gitops/cmd/coco/inputfile" - "github.com/SAP/configuration-tools-for-gitops/pkg/yamlfile" + "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/inputfile" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/yamlfile" "github.com/spf13/cobra" "github.com/spf13/viper" "gopkg.in/yaml.v3" diff --git a/cmd/coco/commands/reconcile.go b/cmd/coco/commands/reconcile.go index 62bb3a8..0aa5215 100644 --- a/cmd/coco/commands/reconcile.go +++ b/cmd/coco/commands/reconcile.go @@ -7,8 +7,8 @@ import ( "os" "time" - "github.com/SAP/configuration-tools-for-gitops/cmd/coco/reconcile" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/reconcile" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" "github.com/spf13/cobra" "github.com/spf13/viper" ) diff --git a/cmd/coco/commands/root.go b/cmd/coco/commands/root.go index 586d302..a02259e 100644 --- a/cmd/coco/commands/root.go +++ b/cmd/coco/commands/root.go @@ -5,9 +5,9 @@ import ( "os" "path/filepath" - "github.com/SAP/configuration-tools-for-gitops/pkg/git" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" - "github.com/SAP/configuration-tools-for-gitops/pkg/version" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/git" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/version" "github.com/spf13/cobra" "go.uber.org/zap" diff --git a/cmd/coco/commands/version.go b/cmd/coco/commands/version.go index d03f1d2..eb319de 100644 --- a/cmd/coco/commands/version.go +++ b/cmd/coco/commands/version.go @@ -3,7 +3,7 @@ package commands import ( "fmt" - "github.com/SAP/configuration-tools-for-gitops/pkg/version" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/version" "github.com/spf13/cobra" ) diff --git a/cmd/coco/dependencies/dependencies.go b/cmd/coco/dependencies/dependencies.go index 84e40d5..5e31dac 100644 --- a/cmd/coco/dependencies/dependencies.go +++ b/cmd/coco/dependencies/dependencies.go @@ -4,9 +4,9 @@ import ( "fmt" "strings" - g "github.com/SAP/configuration-tools-for-gitops/cmd/coco/graph" - "github.com/SAP/configuration-tools-for-gitops/pkg/git" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" + g "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/graph" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/git" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" ) type gitRepo interface { diff --git a/cmd/coco/dependencies/dependencies_test.go b/cmd/coco/dependencies/dependencies_test.go index 1c2cf73..ae13c6a 100644 --- a/cmd/coco/dependencies/dependencies_test.go +++ b/cmd/coco/dependencies/dependencies_test.go @@ -4,10 +4,10 @@ import ( "fmt" "testing" - "github.com/SAP/configuration-tools-for-gitops/cmd/coco/graph" - "github.com/SAP/configuration-tools-for-gitops/pkg/git" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/graph" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/git" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" "go.uber.org/zap" ) diff --git a/cmd/coco/dependencies/graph.go b/cmd/coco/dependencies/graph.go index bc8ffbd..3aa481b 100644 --- a/cmd/coco/dependencies/graph.go +++ b/cmd/coco/dependencies/graph.go @@ -3,11 +3,11 @@ package dependencies import ( "path/filepath" - "github.com/SAP/configuration-tools-for-gitops/cmd/coco/inputfile" + "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/inputfile" - g "github.com/SAP/configuration-tools-for-gitops/cmd/coco/graph" - "github.com/SAP/configuration-tools-for-gitops/pkg/files" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" + g "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/graph" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/files" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" "gopkg.in/yaml.v3" ) diff --git a/cmd/coco/dependencies/graph_test.go b/cmd/coco/dependencies/graph_test.go index 306c46f..1d2ac52 100644 --- a/cmd/coco/dependencies/graph_test.go +++ b/cmd/coco/dependencies/graph_test.go @@ -5,12 +5,12 @@ import ( "reflect" "testing" - "github.com/SAP/configuration-tools-for-gitops/cmd/coco/inputfile" + "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/inputfile" - "github.com/SAP/configuration-tools-for-gitops/cmd/coco/graph" - "github.com/SAP/configuration-tools-for-gitops/pkg/files" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/graph" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/files" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" "go.uber.org/zap" "gopkg.in/yaml.v3" ) diff --git a/cmd/coco/generate/findtemplates.go b/cmd/coco/generate/findtemplates.go index 841043e..bd73963 100644 --- a/cmd/coco/generate/findtemplates.go +++ b/cmd/coco/generate/findtemplates.go @@ -6,7 +6,7 @@ import ( "sort" "strings" - "github.com/SAP/configuration-tools-for-gitops/pkg/files" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/files" ) func findTemplates( diff --git a/cmd/coco/generate/findtemplates_test.go b/cmd/coco/generate/findtemplates_test.go index f1f255d..ca7ee15 100644 --- a/cmd/coco/generate/findtemplates_test.go +++ b/cmd/coco/generate/findtemplates_test.go @@ -7,7 +7,7 @@ import ( "strings" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" ) const tmplIdentifier = ".tmpl" diff --git a/cmd/coco/generate/findvaluefiles.go b/cmd/coco/generate/findvaluefiles.go index d7dd0c2..af3270b 100644 --- a/cmd/coco/generate/findvaluefiles.go +++ b/cmd/coco/generate/findvaluefiles.go @@ -3,7 +3,7 @@ package generate import ( "path/filepath" - "github.com/SAP/configuration-tools-for-gitops/cmd/coco/inputfile" + "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/inputfile" ) func readValueFiles( diff --git a/cmd/coco/generate/findvaluefiles_test.go b/cmd/coco/generate/findvaluefiles_test.go index e3884af..9b0cd0c 100644 --- a/cmd/coco/generate/findvaluefiles_test.go +++ b/cmd/coco/generate/findvaluefiles_test.go @@ -6,10 +6,10 @@ import ( "reflect" "testing" - "github.com/SAP/configuration-tools-for-gitops/cmd/coco/inputfile" - "github.com/SAP/configuration-tools-for-gitops/pkg/maputils" + "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/inputfile" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/maputils" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" "gopkg.in/yaml.v3" ) diff --git a/cmd/coco/generate/generate.go b/cmd/coco/generate/generate.go index 6d747d2..3fe0b83 100644 --- a/cmd/coco/generate/generate.go +++ b/cmd/coco/generate/generate.go @@ -3,8 +3,8 @@ package generate import ( "fmt" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" - "github.com/SAP/configuration-tools-for-gitops/pkg/version" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/version" ) var ( diff --git a/cmd/coco/generate/generate_test.go b/cmd/coco/generate/generate_test.go index 282c784..1a42c8f 100644 --- a/cmd/coco/generate/generate_test.go +++ b/cmd/coco/generate/generate_test.go @@ -9,9 +9,9 @@ import ( // The Generate function makes use of the general CLI logger. Hence its test // needs to set it up correctly to test logging output as well. - "github.com/SAP/configuration-tools-for-gitops/pkg/log" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" - "github.com/SAP/configuration-tools-for-gitops/pkg/version" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/version" "go.uber.org/zap" ) diff --git a/cmd/coco/generate/merge_test.go b/cmd/coco/generate/merge_test.go index e5dce04..7dfec8d 100644 --- a/cmd/coco/generate/merge_test.go +++ b/cmd/coco/generate/merge_test.go @@ -8,8 +8,8 @@ import ( "strings" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" - "github.com/SAP/configuration-tools-for-gitops/pkg/yamlfile" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/yamlfile" ) type scenarioMergeSort struct { diff --git a/cmd/coco/generate/render.go b/cmd/coco/generate/render.go index 8894424..7441163 100644 --- a/cmd/coco/generate/render.go +++ b/cmd/coco/generate/render.go @@ -13,9 +13,9 @@ import ( "strconv" "strings" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" - "github.com/SAP/configuration-tools-for-gitops/pkg/version" - "github.com/SAP/configuration-tools-for-gitops/pkg/yamlfile" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/version" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/yamlfile" ) const ( diff --git a/cmd/coco/generate/renderTemplate.go b/cmd/coco/generate/renderTemplate.go index 6099a8e..0e98963 100644 --- a/cmd/coco/generate/renderTemplate.go +++ b/cmd/coco/generate/renderTemplate.go @@ -6,8 +6,8 @@ import ( "os" gotemplate "text/template" - "github.com/SAP/configuration-tools-for-gitops/pkg/files" - "github.com/SAP/configuration-tools-for-gitops/pkg/yamlfile" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/files" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/yamlfile" ) var ( diff --git a/cmd/coco/generate/renderTemplate_test.go b/cmd/coco/generate/renderTemplate_test.go index 910c9a1..4795ded 100644 --- a/cmd/coco/generate/renderTemplate_test.go +++ b/cmd/coco/generate/renderTemplate_test.go @@ -8,8 +8,8 @@ import ( "strings" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" ) var selectParserTest = "" diff --git a/cmd/coco/generate/render_test.go b/cmd/coco/generate/render_test.go index 238d5aa..c328b69 100644 --- a/cmd/coco/generate/render_test.go +++ b/cmd/coco/generate/render_test.go @@ -15,10 +15,10 @@ import ( "testing" gotemplate "text/template" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" - "github.com/SAP/configuration-tools-for-gitops/pkg/version" - "github.com/SAP/configuration-tools-for-gitops/pkg/yamlfile" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/version" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/yamlfile" "gopkg.in/yaml.v3" ) diff --git a/cmd/coco/graph/componentDependencies_test.go b/cmd/coco/graph/componentDependencies_test.go index 5717825..9bd7eb5 100644 --- a/cmd/coco/graph/componentDependencies_test.go +++ b/cmd/coco/graph/componentDependencies_test.go @@ -6,7 +6,7 @@ import ( "strings" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" ) type scenarioComponentDeps struct { diff --git a/cmd/coco/inputfile/inputfile.go b/cmd/coco/inputfile/inputfile.go index b00acbf..5a328db 100644 --- a/cmd/coco/inputfile/inputfile.go +++ b/cmd/coco/inputfile/inputfile.go @@ -3,8 +3,8 @@ package inputfile import ( "fmt" - "github.com/SAP/configuration-tools-for-gitops/pkg/files" - "github.com/SAP/configuration-tools-for-gitops/pkg/maputils" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/files" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/maputils" "gopkg.in/yaml.v3" ) diff --git a/cmd/coco/inputfile/inputfile_test.go b/cmd/coco/inputfile/inputfile_test.go index 8d999f2..03bb35f 100644 --- a/cmd/coco/inputfile/inputfile_test.go +++ b/cmd/coco/inputfile/inputfile_test.go @@ -6,9 +6,9 @@ import ( "strings" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" - "github.com/SAP/configuration-tools-for-gitops/pkg/maputils" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/maputils" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" "go.uber.org/zap" ) diff --git a/cmd/coco/main.go b/cmd/coco/main.go index 5af01fc..32d86d1 100644 --- a/cmd/coco/main.go +++ b/cmd/coco/main.go @@ -1,7 +1,7 @@ package main import ( - cmd "github.com/SAP/configuration-tools-for-gitops/cmd/coco/commands" + cmd "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/commands" ) func main() { diff --git a/cmd/coco/reconcile/reconcile.go b/cmd/coco/reconcile/reconcile.go index 2cc59ba..86a9e7d 100644 --- a/cmd/coco/reconcile/reconcile.go +++ b/cmd/coco/reconcile/reconcile.go @@ -7,8 +7,8 @@ import ( "net/http" "os" - "github.com/SAP/configuration-tools-for-gitops/pkg/github" - "github.com/SAP/configuration-tools-for-gitops/pkg/terminal" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/github" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/terminal" "github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5/config" "github.com/go-git/go-git/v5/plumbing" diff --git a/cmd/coco/reconcile/reconcile_test.go b/cmd/coco/reconcile/reconcile_test.go index 373fb22..3ed7fe6 100644 --- a/cmd/coco/reconcile/reconcile_test.go +++ b/cmd/coco/reconcile/reconcile_test.go @@ -6,8 +6,8 @@ import ( "testing" "time" - "github.com/SAP/configuration-tools-for-gitops/pkg/github" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/github" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" "github.com/go-git/go-billy/v5/memfs" "github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5/plumbing" diff --git a/go.mod b/go.mod index 9061263..5fe5196 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/SAP/configuration-tools-for-gitops +module github.com/SAP/configuration-tools-for-gitops/v2 go 1.20 diff --git a/pkg/exec/exec_test.go b/pkg/exec/exec_test.go index 429b096..c9fc151 100644 --- a/pkg/exec/exec_test.go +++ b/pkg/exec/exec_test.go @@ -8,8 +8,8 @@ import ( "testing" "time" - "github.com/SAP/configuration-tools-for-gitops/pkg/exec" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/exec" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" ) const ( diff --git a/pkg/files/filerunner_test.go b/pkg/files/filerunner_test.go index 8962b88..d3d6e29 100644 --- a/pkg/files/filerunner_test.go +++ b/pkg/files/filerunner_test.go @@ -8,8 +8,8 @@ import ( "strings" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/files" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/files" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" ) type scenario struct { diff --git a/pkg/files/files_test.go b/pkg/files/files_test.go index 051c963..d854ec8 100644 --- a/pkg/files/files_test.go +++ b/pkg/files/files_test.go @@ -8,7 +8,7 @@ import ( "reflect" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" ) type scenarioFiles struct { diff --git a/pkg/git/git.go b/pkg/git/git.go index 6267441..0f01b04 100644 --- a/pkg/git/git.go +++ b/pkg/git/git.go @@ -7,7 +7,7 @@ import ( "sort" "strings" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" "github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5/config" "github.com/go-git/go-git/v5/plumbing" diff --git a/pkg/git/git_integration_test.go b/pkg/git/git_integration_test.go index 64dcdc4..7a1b384 100644 --- a/pkg/git/git_integration_test.go +++ b/pkg/git/git_integration_test.go @@ -6,8 +6,8 @@ import ( "reflect" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" ) const ( diff --git a/pkg/git/git_test.go b/pkg/git/git_test.go index 7ec1789..8eeb526 100644 --- a/pkg/git/git_test.go +++ b/pkg/git/git_test.go @@ -6,8 +6,8 @@ import ( "reflect" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" "github.com/go-git/go-git/v5" ) diff --git a/pkg/github/client.go b/pkg/github/client.go index ff95583..9767c92 100644 --- a/pkg/github/client.go +++ b/pkg/github/client.go @@ -6,7 +6,7 @@ import ( "net/http" "strings" - "github.com/SAP/configuration-tools-for-gitops/pkg/terminal" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/terminal" gogithub "github.com/google/go-github/v51/github" "golang.org/x/oauth2" ) diff --git a/pkg/maputils/maputils.go b/pkg/maputils/maputils.go index f915ab3..536ede1 100644 --- a/pkg/maputils/maputils.go +++ b/pkg/maputils/maputils.go @@ -1,7 +1,7 @@ package maputils import ( - "github.com/SAP/configuration-tools-for-gitops/pkg/sliceutils" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/sliceutils" "golang.org/x/exp/constraints" ) diff --git a/pkg/structdoc/structdoc_test.go b/pkg/structdoc/structdoc_test.go index 1387e51..7b7b789 100644 --- a/pkg/structdoc/structdoc_test.go +++ b/pkg/structdoc/structdoc_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/structdoc" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/structdoc" ) type scenarioDoc struct { diff --git a/pkg/version/version.go b/pkg/version/version.go index 773bde4..ab19769 100644 --- a/pkg/version/version.go +++ b/pkg/version/version.go @@ -6,7 +6,7 @@ import ( "runtime" "strconv" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" ) const ( diff --git a/pkg/yamlfile/docs_test.go b/pkg/yamlfile/docs_test.go index 5a6a3f0..90dae27 100644 --- a/pkg/yamlfile/docs_test.go +++ b/pkg/yamlfile/docs_test.go @@ -4,7 +4,7 @@ import ( "reflect" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/yamlfile" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/yamlfile" ) type scenarioDoc struct { diff --git a/pkg/yamlfile/encodeDecode_test.go b/pkg/yamlfile/encodeDecode_test.go index 7486290..95cc89e 100644 --- a/pkg/yamlfile/encodeDecode_test.go +++ b/pkg/yamlfile/encodeDecode_test.go @@ -6,8 +6,8 @@ import ( "strings" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" - "github.com/SAP/configuration-tools-for-gitops/pkg/yamlfile" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/yamlfile" ) type scenarioDecodeEncode struct { diff --git a/pkg/yamlfile/mergeCombination_test.go b/pkg/yamlfile/mergeCombination_test.go index 5f772b2..9666bac 100644 --- a/pkg/yamlfile/mergeCombination_test.go +++ b/pkg/yamlfile/mergeCombination_test.go @@ -4,7 +4,7 @@ import ( "fmt" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" "gopkg.in/yaml.v3" ) diff --git a/pkg/yamlfile/mergeNode_test.go b/pkg/yamlfile/mergeNode_test.go index 75dc849..74c1702 100644 --- a/pkg/yamlfile/mergeNode_test.go +++ b/pkg/yamlfile/mergeNode_test.go @@ -7,8 +7,8 @@ import ( "strings" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" - "github.com/SAP/configuration-tools-for-gitops/pkg/yamlfile" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/yamlfile" "gopkg.in/yaml.v3" ) diff --git a/pkg/yamlfile/merge_test.go b/pkg/yamlfile/merge_test.go index 0718a8b..86fe001 100644 --- a/pkg/yamlfile/merge_test.go +++ b/pkg/yamlfile/merge_test.go @@ -5,8 +5,8 @@ import ( "reflect" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" - "github.com/SAP/configuration-tools-for-gitops/pkg/yamlfile" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/yamlfile" ) type scenarioMerge struct { diff --git a/pkg/yamlfile/sortNode_test.go b/pkg/yamlfile/sortNode_test.go index e403f97..8a53bc4 100644 --- a/pkg/yamlfile/sortNode_test.go +++ b/pkg/yamlfile/sortNode_test.go @@ -6,8 +6,8 @@ import ( "strings" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" - "github.com/SAP/configuration-tools-for-gitops/pkg/yamlfile" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/yamlfile" ) var scenariosSort = []scenarioSort{ diff --git a/pkg/yamlfile/subnode_test.go b/pkg/yamlfile/subnode_test.go index 16ac907..4a8fd8a 100644 --- a/pkg/yamlfile/subnode_test.go +++ b/pkg/yamlfile/subnode_test.go @@ -8,8 +8,8 @@ import ( "strings" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" - "github.com/SAP/configuration-tools-for-gitops/pkg/yamlfile" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/yamlfile" ) var scenariosSelectSubNode = []scenarioSelectSubNode{ diff --git a/pkg/yamlfile/yamlfiles_test.go b/pkg/yamlfile/yamlfiles_test.go index 6326791..ce4c985 100644 --- a/pkg/yamlfile/yamlfiles_test.go +++ b/pkg/yamlfile/yamlfiles_test.go @@ -6,9 +6,9 @@ import ( "strings" "testing" - "github.com/SAP/configuration-tools-for-gitops/pkg/log" - "github.com/SAP/configuration-tools-for-gitops/pkg/testfuncs" - "github.com/SAP/configuration-tools-for-gitops/pkg/yamlfile" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/testfuncs" + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/yamlfile" "go.uber.org/zap" "gopkg.in/yaml.v3" ) From 642abe8863b3db093f2209d9904cab8732afd741 Mon Sep 17 00:00:00 2001 From: Reitwiec Shandilya Date: Wed, 20 Sep 2023 10:15:03 +0530 Subject: [PATCH 02/15] fix: remove tmp --- .tmp/foo | 1 - 1 file changed, 1 deletion(-) delete mode 160000 .tmp/foo diff --git a/.tmp/foo b/.tmp/foo deleted file mode 160000 index 56c4bf4..0000000 --- a/.tmp/foo +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 56c4bf4ca9789505db7a6eefb910a7259c1fcb79 From 25e1d5951fd67ab74d4d389a50928c38a602972a Mon Sep 17 00:00:00 2001 From: blackhatcrazy <44291985+blackhatcrazy@users.noreply.github.com> Date: Sun, 24 Sep 2023 14:40:57 +0200 Subject: [PATCH 03/15] fix: (reconcxile) proper error handling on missing inputs (#44) * update ci * streamline command error handling * fix: improve error handling on missing inputs --------- Co-authored-by: I503834 --- .github/workflows/ci.yaml | 2 + .github/workflows/codeql.yml | 8 +- cmd/coco/commands/dependencies.go | 16 ++-- cmd/coco/commands/generate.go | 40 +++++----- cmd/coco/commands/generateCustom.go | 18 ++--- cmd/coco/commands/graph.go | 10 +-- cmd/coco/commands/reconcile.go | 109 ++++++++++++---------------- cmd/coco/commands/root.go | 2 +- cmd/coco/commands/utils.go | 10 +++ go.mod | 2 +- 10 files changed, 102 insertions(+), 115 deletions(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index a7db2b4..10c5803 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -8,10 +8,12 @@ on: branches: - '**' - main + - v2 pull_request: branches: - '**' - main + - v2 # on: # push: # tags: diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index ca60742..44c6f35 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -13,10 +13,14 @@ name: "CodeQL" on: push: - branches: [ "main" ] + branches: + - "main" + - "v2" pull_request: # The branches below must be a subset of the branches above - branches: [ "main" ] + branches: + - "main" + - "v2" schedule: - cron: '15 13 * * 2' diff --git a/cmd/coco/commands/dependencies.go b/cmd/coco/commands/dependencies.go index 7854c48..73e64ef 100644 --- a/cmd/coco/commands/dependencies.go +++ b/cmd/coco/commands/dependencies.go @@ -1,13 +1,13 @@ package commands import ( + "fmt" "io" "os" "path/filepath" "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/dependencies" "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/graph" - "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" "github.com/spf13/cobra" "github.com/spf13/viper" ) @@ -48,8 +48,7 @@ func newDependencies() *cobra.Command { var ok bool format, ok = graph.CastOutputFormat(rawFormat) if !ok { - log.Sugar.Errorf("illegal format %q", rawFormat) - os.Exit(1) + failOnError(fmt.Errorf("illegal format %q", rawFormat), "dependencies") } }, Run: func(cmd *cobra.Command, args []string) { @@ -65,16 +64,11 @@ func newDependencies() *cobra.Command { overWriteGitDepth, // viper.GetInt(gitDepth), logLvl, ) - if err != nil { - log.Sugar.Errorf("dependency failed with: %s", err) - os.Exit(1) - } + failOnError(err, "dependencies") writeTo, err := writeTarget(viper.GetString(gitPathKey), outputFile) - if err != nil { - log.Sugar.Errorf("dependency failed with: %s", err) - os.Exit(1) - } + failOnError(err, "dependencies") + changedDeps.Print(writeTo, format) }, } diff --git a/cmd/coco/commands/generate.go b/cmd/coco/commands/generate.go index fdf99ca..fc0a0a6 100644 --- a/cmd/coco/commands/generate.go +++ b/cmd/coco/commands/generate.go @@ -10,7 +10,6 @@ import ( "github.com/SAP/configuration-tools-for-gitops/v2/pkg/version" "github.com/spf13/cobra" "github.com/spf13/viper" - "go.uber.org/zap" ) var ( @@ -42,23 +41,22 @@ in the gitops repository. Run: func(cmd *cobra.Command, args []string) { basepath := viper.GetString(gitPathKey) configFileName := viper.GetString(componentCfg) - err := generate.Generate( - basepath, - tmplIdentifier, - persistenceFlag, - configFileName, - version.ReadAll(), - cleanValuePaths(valuesFolders, basepath), - environmentFilter, - args, - excludeFolders, - logLvl, - takeControl, + failOnError( + generate.Generate( + basepath, + tmplIdentifier, + persistenceFlag, + configFileName, + version.ReadAll(), + cleanValuePaths(valuesFolders, basepath), + environmentFilter, + args, + excludeFolders, + logLvl, + takeControl, + ), + "generate", ) - if err != nil { - log.Sugar.Errorf("generate failed: %s", err) - os.Exit(1) - } }, } @@ -92,10 +90,10 @@ or the yaml tag "!HumanInput" will not be overwritten.`, `if this flag is set, coco takes control over all generated files regardless of the version in the generated files`, ) - if err := c.Flags().MarkDeprecated("take-control", "please use \"--force\" instead"); err != nil { - zap.L().Sugar().Errorf("flag %q not found: %v", "take-control", err) - os.Exit(1) - } + failOnError( + c.Flags().MarkDeprecated("take-control", "please use \"--force\" instead"), + "generate", + ) c.Flags().BoolVar( &takeControl, "force", false, `if this flag is set, coco forcefully regenerats all files regardless of diff --git a/cmd/coco/commands/generateCustom.go b/cmd/coco/commands/generateCustom.go index 07d3e5e..2cef07c 100644 --- a/cmd/coco/commands/generateCustom.go +++ b/cmd/coco/commands/generateCustom.go @@ -1,10 +1,9 @@ package commands import ( - "os" + "fmt" "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/generate" - "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" "github.com/spf13/cobra" ) @@ -21,17 +20,18 @@ func newGenerateCustom() *cobra.Command { Args: func(cmd *cobra.Command, args []string) error { if len(args) < 1 { - log.Sugar.Errorf("no go-template provided, please provide a template as argument") - os.Exit(1) + failOnError( + fmt.Errorf("no go-template provided, please provide a template as argument"), + "custom", + ) } return nil }, Run: func(cmd *cobra.Command, args []string) { - err := generate.ParseTemplate(args[0], customValues, customTarget) - if err != nil { - log.Sugar.Errorf("generate failed: %s", err) - os.Exit(1) - } + failOnError( + generate.ParseTemplate(args[0], customValues, customTarget), + "custom", + ) }, } diff --git a/cmd/coco/commands/graph.go b/cmd/coco/commands/graph.go index ea15c0f..90a0266 100644 --- a/cmd/coco/commands/graph.go +++ b/cmd/coco/commands/graph.go @@ -1,11 +1,11 @@ package commands import ( + "fmt" "os" "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/dependencies" "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/graph" - "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" "github.com/spf13/cobra" "github.com/spf13/viper" ) @@ -27,8 +27,7 @@ func newGraph() *cobra.Command { var ok bool format, ok = graph.CastOutputFormat(rawFormat) if !ok { - log.Sugar.Errorf("illegal format %q", rawFormat) - os.Exit(1) + failOnError(fmt.Errorf("illegal format %q", rawFormat), "graph") } }, Run: func(cmd *cobra.Command, args []string) { @@ -36,10 +35,7 @@ func newGraph() *cobra.Command { viper.GetString(gitPathKey), viper.GetString(componentCfg), ) - if err != nil { - log.Sugar.Errorf("graph failed with: %s", err) - os.Exit(1) - } + failOnError(fmt.Errorf("graph failed with: %s", err), "graph") deps.Print(os.Stdout, format) }, } diff --git a/cmd/coco/commands/reconcile.go b/cmd/coco/commands/reconcile.go index 0aa5215..aa04d68 100644 --- a/cmd/coco/commands/reconcile.go +++ b/cmd/coco/commands/reconcile.go @@ -4,7 +4,6 @@ import ( "context" "fmt" "net/url" - "os" "time" "github.com/SAP/configuration-tools-for-gitops/v2/cmd/coco/reconcile" @@ -15,7 +14,7 @@ import ( var ( owner string - repo string + repositoryName string sourceRemote string targetRemote string forceReconcile bool @@ -35,90 +34,74 @@ func newReconcile() *cobra.Command { target branch, merging the source branch into the target branch, and pushing the result to the remote repository`, PreRun: func(cmd *cobra.Command, args []string) { - if viper.GetString("git-token") == "" { - cobra.CheckErr( - "environment variable \"GITHUB_TOKEN\" must be set for the \"reconcile\" command.", - ) + if !viper.IsSet("git-token") { + cobra.CheckErr(`environment variable "GITHUB_TOKEN" must be set`) + } + missingParams := []string{} + if sourceBranch == "" { + missingParams = append(missingParams, "source") + } + if targetBranch == "" { + missingParams = append(missingParams, "target") + } + if owner == "" { + missingParams = append(missingParams, "owner") + } + if repositoryName == "" { + missingParams = append(missingParams, "repository") + } + if !viper.IsSet(gitURLKey) { + missingParams = append(missingParams, "git-url") + } + if len(missingParams) != 0 { + failOnError(fmt.Errorf("the CLI parameters %v must be set", missingParams), "reconcile") } }, Run: func(cmd *cobra.Command, args []string) { - checkEmptyString(sourceBranch, "source branch must be specified") - checkEmptyString(targetBranch, "target branch must be specified") - checkEmptyString(sourceRemote, "source remote must be specified") - checkEmptyString(targetRemote, "target remote must be specified") - checkEmptyString(owner, "owner name must be specified") - checkEmptyString(repo, "repository name must be specified") - ctx, cancel := context.WithTimeout(context.Background(), timeout) defer cancel() githubBaseURL, err := url.Parse(viper.GetString(gitURLKey)) - if err != nil { - log.Sugar.Errorf("reconciliation failed with: %w", err) - } - var client *reconcile.Client - client, err = reconcile.New( + failOnError(err, "reconcile") + + client, err := reconcile.New( ctx, owner, - repo, + repositoryName, viper.GetString("git-token"), fmt.Sprintf("https://%s", githubBaseURL.Hostname()), reconcile.BranchConfig{Name: targetBranch, Remote: targetRemote}, reconcile.BranchConfig{Name: sourceBranch, Remote: sourceRemote}, log.Sugar, ) - if err != nil { - log.Sugar.Errorf("reconciliation failed with: %w", err) - os.Exit(1) - } + failOnError(err, "reconcile") - err = client.Reconcile(forceReconcile) - if err != nil { - log.Sugar.Errorf("reconciliation failed with: %w", err) - os.Exit(1) - } + failOnError(client.Reconcile(forceReconcile), "reconcile") }, } c.PersistentFlags().StringVarP(&sourceBranch, "source", "s", "", "The souce branch to reconcile from.") - if err := c.MarkPersistentFlagRequired("source"); err != nil { - log.Sugar.Error(err) - os.Exit(1) - } - c.PersistentFlags().StringVarP(&sourceRemote, "source-remote", "", "", "The remote for the source branch.") - if err := c.MarkPersistentFlagRequired("source-remote"); err != nil { - log.Sugar.Error(err) - os.Exit(1) - } + failOnError(c.MarkPersistentFlagRequired("source"), "reconcile") + + c.PersistentFlags().StringVar(&sourceRemote, "source-remote", "origin", "The remote for the source branch.") + c.PersistentFlags().StringVarP(&targetBranch, "target", "t", "", "The target branch to reconcile to.") - if err := c.MarkPersistentFlagRequired("target"); err != nil { - log.Sugar.Error(err) - os.Exit(1) - } - c.PersistentFlags().StringVarP(&targetRemote, "target-remote", "", "", "The remote for the target branch.") - if err := c.MarkPersistentFlagRequired("target-remote"); err != nil { - log.Sugar.Error(err) - os.Exit(1) - } - c.PersistentFlags().StringVarP(&repo, "repo", "", "", "The name of the gihtub repository.") - if err := c.MarkPersistentFlagRequired("repo"); err != nil { - log.Sugar.Error(err) - os.Exit(1) - } - c.PersistentFlags().StringVarP(&owner, "owner", "", "", "The account owner of the github repository.") - if err := c.MarkPersistentFlagRequired("owner"); err != nil { - log.Sugar.Error(err) - os.Exit(1) - } + failOnError(c.MarkPersistentFlagRequired("target"), "reconcile") + + c.PersistentFlags().StringVar(&targetRemote, "target-remote", "origin", "The remote for the target branch.") + + failOnError( + c.PersistentFlags().MarkDeprecated("repo", `please use "repository" flag instead.`), + "reconcile", + ) + c.PersistentFlags().StringVar(&repositoryName, "repository", "", "The name of the gihtub repository.") + failOnError(c.MarkPersistentFlagRequired("repository"), "reconcile") + + c.PersistentFlags().StringVar(&owner, "owner", "", "The account owner of the github repository.") + failOnError(c.MarkPersistentFlagRequired("owner"), "reconcile") + c.Flags().BoolVar( &forceReconcile, "force", false, `Allows coco to forcefully deletes the reconcile branch if required.`, ) return c } - -func checkEmptyString(value, errorMessage string) { - if value == "" { - log.Sugar.Errorf(errorMessage) - os.Exit(1) - } -} diff --git a/cmd/coco/commands/root.go b/cmd/coco/commands/root.go index a02259e..158a304 100644 --- a/cmd/coco/commands/root.go +++ b/cmd/coco/commands/root.go @@ -101,7 +101,7 @@ func newRoot() *cobra.Command { ) bindFlag(c.PersistentFlags(), gitDepthKey, "git-depth", "GIT_DEPTH") - cobra.CheckErr(viper.BindEnv("git-token", "GITHUB_TOKEN")) + failOnError(viper.BindEnv("git-token", "GITHUB_TOKEN"), "root") return c } diff --git a/cmd/coco/commands/utils.go b/cmd/coco/commands/utils.go index fd903a7..ab44f81 100644 --- a/cmd/coco/commands/utils.go +++ b/cmd/coco/commands/utils.go @@ -1,6 +1,9 @@ package commands import ( + "os" + + "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" "github.com/spf13/cobra" "github.com/spf13/pflag" "github.com/spf13/viper" @@ -10,3 +13,10 @@ func bindFlag(fs *pflag.FlagSet, key, flag, env string) { cobra.CheckErr(viper.BindPFlag(key, fs.Lookup(flag))) cobra.CheckErr(viper.BindEnv(key, env)) } + +func failOnError(err error, command string) { + if err != nil { + log.Sugar.Errorf("failed in command %q: %v", command, err) + os.Exit(1) + } +} diff --git a/go.mod b/go.mod index 5fe5196..7deeb0f 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.20 require ( github.com/Masterminds/sprig v2.22.0+incompatible github.com/fatih/color v1.15.0 + github.com/go-git/go-billy/v5 v5.4.1 github.com/go-git/go-git/v5 v5.7.0 github.com/google/go-github/v51 v51.0.0 github.com/spf13/cobra v1.7.0 @@ -28,7 +29,6 @@ require ( github.com/emirpasic/gods v1.18.1 // indirect github.com/fsnotify/fsnotify v1.6.0 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect - github.com/go-git/go-billy/v5 v5.4.1 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/go-querystring v1.1.0 // indirect From 5f85ccd30ff56703c83423fae16ef00fe304bbdc Mon Sep 17 00:00:00 2001 From: blackhatcrazy <44291985+blackhatcrazy@users.noreply.github.com> Date: Sun, 24 Sep 2023 14:58:07 +0200 Subject: [PATCH 04/15] fix(reconcile): add depricated flag back (#45) * fix(reconcile): add depricated flag back into command * fix(log): harden error logging --------- Co-authored-by: I503834 --- cmd/coco/commands/reconcile.go | 1 + cmd/coco/commands/utils.go | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/cmd/coco/commands/reconcile.go b/cmd/coco/commands/reconcile.go index aa04d68..eec1755 100644 --- a/cmd/coco/commands/reconcile.go +++ b/cmd/coco/commands/reconcile.go @@ -89,6 +89,7 @@ func newReconcile() *cobra.Command { c.PersistentFlags().StringVar(&targetRemote, "target-remote", "origin", "The remote for the target branch.") + c.PersistentFlags().StringVar(&repositoryName, "repo", "", "The name of the gihtub repository.") failOnError( c.PersistentFlags().MarkDeprecated("repo", `please use "repository" flag instead.`), "reconcile", diff --git a/cmd/coco/commands/utils.go b/cmd/coco/commands/utils.go index ab44f81..f5ec0fe 100644 --- a/cmd/coco/commands/utils.go +++ b/cmd/coco/commands/utils.go @@ -1,6 +1,7 @@ package commands import ( + "fmt" "os" "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" @@ -16,7 +17,11 @@ func bindFlag(fs *pflag.FlagSet, key, flag, env string) { func failOnError(err error, command string) { if err != nil { - log.Sugar.Errorf("failed in command %q: %v", command, err) + if log.Sugar != nil { + log.Sugar.Errorf("failed in command %q: %v", command, err) + } else { + fmt.Printf("failed in command %q: %v\n", command, err) + } os.Exit(1) } } From 5d04ffc967a5c29955527006644eacf288fe0ad4 Mon Sep 17 00:00:00 2001 From: I503834 Date: Sun, 24 Sep 2023 16:02:40 +0200 Subject: [PATCH 05/15] fix(graph): error handling --- cmd/coco/commands/graph.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/coco/commands/graph.go b/cmd/coco/commands/graph.go index 90a0266..38019b4 100644 --- a/cmd/coco/commands/graph.go +++ b/cmd/coco/commands/graph.go @@ -35,7 +35,7 @@ func newGraph() *cobra.Command { viper.GetString(gitPathKey), viper.GetString(componentCfg), ) - failOnError(fmt.Errorf("graph failed with: %s", err), "graph") + failOnError(err, "graph") deps.Print(os.Stdout, format) }, } From 9fe0f16ec65a1573d421d9f7998ce81b8b07b454 Mon Sep 17 00:00:00 2001 From: I503834 Date: Mon, 25 Sep 2023 08:55:00 +0200 Subject: [PATCH 06/15] fix(reconcile): log output for merge conflicts --- cmd/coco/reconcile/reconcile.go | 3 ++- pkg/github/client.go | 9 ++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/cmd/coco/reconcile/reconcile.go b/cmd/coco/reconcile/reconcile.go index 86a9e7d..5337654 100644 --- a/cmd/coco/reconcile/reconcile.go +++ b/cmd/coco/reconcile/reconcile.go @@ -197,6 +197,7 @@ func (r *Client) merge(force bool) error { success, err := r.client.MergeBranches(r.target.Name, r.source.Name) if err == nil { if !success { + r.logger.Infof("merge conflict encountered") return r.handleMergeConflict(force) } r.logger.Info("Merged successfully") @@ -274,7 +275,7 @@ func (r *Client) handleNewReconcileBranch() error { if err != nil { return fmt.Errorf("failed to create a draft PR: %w", err) } - r.logger.Info("Draft pull request #%d created: %s\n", pr.GetNumber(), pr.GetHTMLURL()) + r.logger.Infof("Draft pull request #%d created: %s\n", pr.GetNumber(), pr.GetHTMLURL()) return nil } diff --git a/pkg/github/client.go b/pkg/github/client.go index 9767c92..ce079cc 100644 --- a/pkg/github/client.go +++ b/pkg/github/client.go @@ -63,6 +63,7 @@ func (gh *github) MergeBranches(base, head string) (bool, error) { Head: gogithub.String(head), } _, response, err := gh.client.Repositories.Merge(gh.ctx, gh.owner, gh.repo, merge) + defer response.Body.Close() // Merge conflict if response.StatusCode == http.StatusConflict { @@ -77,7 +78,13 @@ func (gh *github) MergeBranches(base, head string) (bool, error) { if response.StatusCode == http.StatusCreated || response.StatusCode == http.StatusNoContent { return true, nil } - return false, fmt.Errorf("github server error(%v): %v", response.StatusCode, response.Status) + + var body []byte + if _, err := response.Body.Read(body); err != nil { + return false, fmt.Errorf("failed to read response body: %w", err) + } + + return false, fmt.Errorf("github server error(%v): %v", response.StatusCode, string(body)) } func (gh *github) GetBranch(branchName string) (*gogithub.Branch, int, error) { From 2b161f990fc2bd6526c3b1eea520382a6b219921 Mon Sep 17 00:00:00 2001 From: blackhatcrazy <44291985+blackhatcrazy@users.noreply.github.com> Date: Mon, 25 Sep 2023 21:07:56 +0200 Subject: [PATCH 07/15] fix(generate): input value file merging (#46) * feat(yamlfile): optional array merge strategy - add strict option (source arrays overwrite target arrays) * value files are merged in strict mode * fix(version): fix package references --------- Co-authored-by: I503834 --- .goreleaser.yaml | 8 ++-- cmd/coco/generate/findvaluefiles_test.go | 47 +++++++++++++++++++++++ cmd/coco/generate/renderTemplate.go | 2 +- pkg/yamlfile/mergeNode.go | 48 ++++++++++++++++++------ pkg/yamlfile/mergeNode_test.go | 34 +++++++++++++++-- pkg/yamlfile/settings.go | 36 ++++++++++++++++++ pkg/yamlfile/subnode.go | 3 +- pkg/yamlfile/yamlfiles.go | 23 ++++++------ 8 files changed, 169 insertions(+), 32 deletions(-) create mode 100644 pkg/yamlfile/settings.go diff --git a/.goreleaser.yaml b/.goreleaser.yaml index c277c9a..ae9dd04 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -13,10 +13,10 @@ builds: ldflags: - -extldflags '-static' - -s -w - - -X github.com/SAP/configuration-tools-for-gitops/pkg/version.version={{.Version}} - - -X github.com/SAP/configuration-tools-for-gitops/pkg/version.gitCommit={{.Commit}} - - -X github.com/SAP/configuration-tools-for-gitops/pkg/version.buildDate={{.Date}} - - -X github.com/SAP/configuration-tools-for-gitops/pkg/version.gitTreeState=clean + - -X github.com/SAP/configuration-tools-for-gitops/v2/pkg/version.version={{.Version}} + - -X github.com/SAP/configuration-tools-for-gitops/v2/pkg/version.gitCommit={{.Commit}} + - -X github.com/SAP/configuration-tools-for-gitops/v2/pkg/version.buildDate={{.Date}} + - -X github.com/SAP/configuration-tools-for-gitops/v2/pkg/version.gitTreeState=clean archives: diff --git a/cmd/coco/generate/findvaluefiles_test.go b/cmd/coco/generate/findvaluefiles_test.go index 9b0cd0c..502c267 100644 --- a/cmd/coco/generate/findvaluefiles_test.go +++ b/cmd/coco/generate/findvaluefiles_test.go @@ -72,6 +72,53 @@ k22: v22 "name2": []byte(` k3: v3 k33: v33 +`), + }, + wantErr: nil, + }, + { + title: "value overwrites", + includeFilters: []string{"${BASEPATH}/values/"}, + excludeFilters: []string{".tmpl"}, + files: map[string][]byte{ + "services/A/values/env-specific": nil, + "folder/name.tmpl": nil, + "values/.tmpl/test": nil, + "values/name.tmpl": nil, + "values/env1/file1.yaml": []byte(` +k1: v1 +k2: v1 +k3: + k31: v1 +arr: + - v1 + - v11 +`), + "values/env1/file2.yaml": []byte(` +k2: v2 +k22: v22 +k3: + k31: v2 +arr: + - v2 +`), + "values/env1/coco.yaml": []byte(` +type: environment +name: name1 +values: + - file1.yaml + - file2.yaml +`), + }, + wantFiles: map[string][]byte{ + "name1": []byte(` +k1: v1 +k2: v2 +k22: v22 +k3: + k31: v2 +arr: + - v2 `), }, wantErr: nil, diff --git a/cmd/coco/generate/renderTemplate.go b/cmd/coco/generate/renderTemplate.go index 0e98963..1dd8559 100644 --- a/cmd/coco/generate/renderTemplate.go +++ b/cmd/coco/generate/renderTemplate.go @@ -83,7 +83,7 @@ func (p parser) execute(data interface{}) ([]byte, error) { } func mergeValues(valueFiles []string) (res yamlfile.Yaml, err error) { - res, err = yamlfile.New([]byte{}) + res, err = yamlfile.New([]byte{}, yamlfile.SetArrayMergePolicy(yamlfile.Strict)) if err != nil { err = fmt.Errorf("failed to create combined values file: %w", err) return diff --git a/pkg/yamlfile/mergeNode.go b/pkg/yamlfile/mergeNode.go index 535bd1d..9f9f9e0 100644 --- a/pkg/yamlfile/mergeNode.go +++ b/pkg/yamlfile/mergeNode.go @@ -10,9 +10,11 @@ import ( // Merge merges the input Yaml (from) into the Yaml object (y). Merge rules are: // - maps are merged on matching keys // - any submap in from is added under the last matching key in into -// - slices are merged following the 2 rules: +// - slices are merged either with standard policy: // 1) merges happen element by element // 2) if the keys in sub-elements match, elements are deep-merged +// or with strict policy: +// 1) the from value overwrites the into value entirely. // - scalars from overwrite scalars in into // - all other combinations the object in into is overwritten with the object in from // @@ -40,13 +42,14 @@ func (y *Yaml) MergeSelective(from Yaml, selectFlag string) ([]Warning, error) { return y.mergeSelective(from, selectFlag, false) } -func (y *Yaml) mergeSelective(from Yaml, selectFlag string, parentSelected bool, +func (y *Yaml) mergeSelective( + from Yaml, selectFlag string, parentSelected bool, ) ([]Warning, error) { // from Yaml is empty if from.Node.Kind == 0 || len(from.Node.Content) == 0 { return []Warning{}, nil } - m := newMerger(selectFlag) + m := newMerger(selectFlag, y.settings.arrayMergePolicy) // into yaml is empty if y.Node.Kind == 0 || len(y.Node.Content) == 0 { y.Node.Kind = 1 @@ -63,16 +66,17 @@ func (y *Yaml) mergeSelective(from Yaml, selectFlag string, parentSelected bool, return m.warnings, err } -func newMerger(selectFlag string) merger { - return merger{selectFlag, []Warning{}} +func newMerger(selectFlag string, arrayMergePolicy ArrayMergePolicy) merger { + return merger{selectFlag, arrayMergePolicy, []Warning{}} } // merger holds general information for the yaml merging procedure. It holds the // selectFlag which will be used for filtering the from Yaml and a slice to capture // all occurring warnings. type merger struct { - selectFlag string - warnings []Warning + selectFlag string + arrayMergePolicy ArrayMergePolicy + warnings []Warning } // Warning holds the ordered list of nested keys for which a warning occurred and @@ -90,7 +94,7 @@ func (m merger) newContent(from *yaml.Node, parentSelected bool) (*yaml.Node, er if parentSelected || m.selectNode(from) { return from, nil } - selectedNodes := Yaml{from} + selectedNodes := Yaml{from, &settings{arrayMergePolicy: m.arrayMergePolicy}} if err := selectedNodes.FilterBy(m.selectFlag); err != nil { return nil, err } @@ -167,7 +171,20 @@ func (m *merger) mergeDefault(from, into *yaml.Node, parentSelected bool, parent return nil } -// mergeSequences applies the following rules for merging sequences +// mergeSequences runs in 1 of 2 different modes: standard and strict +// +// in strict mode, the following rules for merging sequences are applied +// +// the value of from will always overwrite the value of into, e.g. +// +// from = [a,b] +// into = [d,e,f] +// +// will result in +// +// res = [a,b] +// +// in standard mode, the following rules for merging sequences are applied // // from = [a,b] // into = [d,e,f] @@ -182,9 +199,13 @@ func (m *merger) mergeDefault(from, into *yaml.Node, parentSelected bool, parent // will result in // // res = [{k1: o1, k2:o2, k3: NN3, k4: NN4}, {k3: NN5, k4: NN4, k7: NN7}, d] -func (m *merger) mergeSequences(from, into *yaml.Node, - parentSelected bool, parentKeys []string, +func (m *merger) mergeSequences( + from, into *yaml.Node, parentSelected bool, parentKeys []string, ) error { + if m.arrayMergePolicy == Strict { + into.Content = from.Content + return nil + } lenFrom := len(from.Content) lenInto := len(into.Content) @@ -275,7 +296,10 @@ func (m *merger) mergeMaps(from, into *yaml.Node, into.Content = append(into.Content, from.Content[i:i+2]...) continue } - selectedNodes := PartialCopy(Yaml{from}, i, i+2) + selectedNodes := PartialCopy( + Yaml{from, &settings{arrayMergePolicy: m.arrayMergePolicy}}, + i, i+2, + ) if err := selectedNodes.FilterBy(m.selectFlag); err != nil { return err } diff --git a/pkg/yamlfile/mergeNode_test.go b/pkg/yamlfile/mergeNode_test.go index 74c1702..f9c67b8 100644 --- a/pkg/yamlfile/mergeNode_test.go +++ b/pkg/yamlfile/mergeNode_test.go @@ -437,13 +437,40 @@ k: value want: ``, wantErr: fmt.Errorf("merge for non-scalar map keys is not implemented"), }, + { + title: "array merge strict", + settings: []yamlfile.UpdateSettingsFunc{yamlfile.SetArrayMergePolicy(yamlfile.Strict)}, + from: []byte(strings.TrimSpace(` +k1: +- k1n1 +- k1n2 +`)), + selectiveFlag: "HumanInput", + into: []byte(strings.TrimSpace(` +k1: +- !HumanInput k1o1 +- k1o2 +- k1o3 +`)), + want: ` +k1: + - k1n1 + - k1n2 +`, + wantSelective: ` +k1: + - k1n1 + - k1n2 +`, + wantErr: nil, + }, } func TestMergeNodes(t *testing.T) { for _, s := range scenariosMergeNodes { t.Logf("test scenario: %s\n", s.title) - into, err := yamlfile.New(s.into) + into, err := yamlfile.New(s.into, s.settings...) testfuncs.CheckErrs(t, nil, err) from, err := yamlfile.New(s.from) testfuncs.CheckErrs(t, nil, err) @@ -472,7 +499,7 @@ func TestMergeBytesNodes(t *testing.T) { ) { t.Logf("test scenario: %s\n", s.title) - into, err := yamlfile.New(s.into) + into, err := yamlfile.New(s.into, s.settings...) testfuncs.CheckErrs(t, nil, err) warnings, err := into.MergeBytes(s.from) testfuncs.CheckErrs(t, s.wantErr, err) @@ -490,7 +517,7 @@ func TestMergeSelective(t *testing.T) { for _, s := range scenariosMergeNodes { t.Logf("test scenario: %s\n", s.title) - into, err := yamlfile.New(s.into) + into, err := yamlfile.New(s.into, s.settings...) testfuncs.CheckErrs(t, nil, err) from, err := yamlfile.New(s.from) testfuncs.CheckErrs(t, nil, err) @@ -512,6 +539,7 @@ type scenarioMergeNode struct { title string from []byte into []byte + settings []yamlfile.UpdateSettingsFunc selectiveFlag string want string wantSelective string diff --git a/pkg/yamlfile/settings.go b/pkg/yamlfile/settings.go new file mode 100644 index 0000000..54ebec1 --- /dev/null +++ b/pkg/yamlfile/settings.go @@ -0,0 +1,36 @@ +package yamlfile + +type UpdateSettingsFunc func(*settings) + +type settings struct { + arrayMergePolicy ArrayMergePolicy +} + +func newSettings(opts ...UpdateSettingsFunc) *settings { + s := settings{ + arrayMergePolicy: Standard, + } + for i := range opts { + opts[i](&s) + } + return &s +} + +func (s settings) Copy() settings { + return settings{ + s.arrayMergePolicy, + } +} + +func SetArrayMergePolicy(policy ArrayMergePolicy) UpdateSettingsFunc { + return func(s *settings) { + s.arrayMergePolicy = policy + } +} + +type ArrayMergePolicy uint8 + +const ( + Standard ArrayMergePolicy = 1 << iota + Strict +) diff --git a/pkg/yamlfile/subnode.go b/pkg/yamlfile/subnode.go index 6ce4473..619169a 100644 --- a/pkg/yamlfile/subnode.go +++ b/pkg/yamlfile/subnode.go @@ -19,7 +19,8 @@ func (y Yaml) SelectSubElement(keys []string) (Yaml, error) { if err != nil { return Yaml{}, err } - return Yaml{subNode}, nil + s := y.settings.Copy() + return Yaml{subNode, &s}, nil } func (y *Yaml) Insert(parentKeys []string, subelement interface{}) ([]Warning, error) { diff --git a/pkg/yamlfile/yamlfiles.go b/pkg/yamlfile/yamlfiles.go index 07d1911..7cb43a7 100644 --- a/pkg/yamlfile/yamlfiles.go +++ b/pkg/yamlfile/yamlfiles.go @@ -15,28 +15,25 @@ import ( // All Implementations in the yamlfile package follow this recursive approach and // solve their requirements for each level in the recursive yaml.Node structure. type Yaml struct { - Node *yaml.Node + Node *yaml.Node + settings *settings } // New unmarshalls a yaml input into a yaml.Node representation and returns a Yaml type. -func New(input []byte) (Yaml, error) { +func New(input []byte, opts ...UpdateSettingsFunc) (Yaml, error) { var node yaml.Node if err := yaml.Unmarshal(input, &node); err != nil { return Yaml{}, fmt.Errorf("unmarshalling failed %s", err) } - return Yaml{&node}, nil + return Yaml{&node, newSettings(opts...)}, nil } -func NewFromInterface(i interface{}) (Yaml, error) { - var node yaml.Node +func NewFromInterface(i interface{}, opts ...UpdateSettingsFunc) (Yaml, error) { input, err := yaml.Marshal(i) if err != nil { return Yaml{}, fmt.Errorf("marshaling failed %s", err) } - if err := yaml.Unmarshal(input, &node); err != nil { - return Yaml{}, fmt.Errorf("unmarshalling failed %s", err) - } - return Yaml{&node}, nil + return New(input, opts...) } // PartialCopy creates a copy of the input n but with only the subslice of the @@ -67,12 +64,16 @@ func PartialCopy(n Yaml, start, end int) Yaml { Line: n.Node.Line, Column: n.Node.Column, } - return Yaml{&newNode} + s := n.settings.Copy() + return Yaml{&newNode, &s} } // Copy creates a deep copy of the Yaml object. func (y Yaml) Copy() Yaml { - return Yaml{deepCopy(y.Node)} + newSettings := settings{ + arrayMergePolicy: y.settings.arrayMergePolicy, + } + return Yaml{deepCopy(y.Node), &newSettings} } func deepCopy(n *yaml.Node) *yaml.Node { From 49305e639bbf1ad6ece8fd5c93f493448c90e392 Mon Sep 17 00:00:00 2001 From: Reitwiec Shandilya Date: Tue, 26 Sep 2023 18:52:25 +0530 Subject: [PATCH 08/15] fix(reconcile): made cross repo more robust (#47) * fix: made cross repo more robust * fix: fixed command tooltip * fix: fixed linting error * fix: fixed linting error * fix: fixed linting error * fix: updated tooltip --------- Co-authored-by: Reitwiec Shandilya --- cmd/coco/commands/reconcile.go | 14 ++++++++------ cmd/coco/reconcile/reconcile.go | 16 ++++++++++++---- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/cmd/coco/commands/reconcile.go b/cmd/coco/commands/reconcile.go index eec1755..6af31e8 100644 --- a/cmd/coco/commands/reconcile.go +++ b/cmd/coco/commands/reconcile.go @@ -79,25 +79,27 @@ func newReconcile() *cobra.Command { }, } - c.PersistentFlags().StringVarP(&sourceBranch, "source", "s", "", "The souce branch to reconcile from.") + c.PersistentFlags().StringVarP(&sourceBranch, "source", "s", "", "The source branch to reconcile from.") failOnError(c.MarkPersistentFlagRequired("source"), "reconcile") - c.PersistentFlags().StringVar(&sourceRemote, "source-remote", "origin", "The remote for the source branch.") + c.PersistentFlags().StringVar(&sourceRemote, "source-remote", "origin", `The URL for the source branch. + Can be left out incase the source and target branches are in the same repository.`) c.PersistentFlags().StringVarP(&targetBranch, "target", "t", "", "The target branch to reconcile to.") failOnError(c.MarkPersistentFlagRequired("target"), "reconcile") - c.PersistentFlags().StringVar(&targetRemote, "target-remote", "origin", "The remote for the target branch.") + c.PersistentFlags().StringVar(&targetRemote, "target-remote", "origin", `The URL for the target branch. + Can be left out incase the source and target branches are in the same repository.`) - c.PersistentFlags().StringVar(&repositoryName, "repo", "", "The name of the gihtub repository.") + c.PersistentFlags().StringVar(&repositoryName, "repo", "", "The name of the TARGET github repository.") failOnError( c.PersistentFlags().MarkDeprecated("repo", `please use "repository" flag instead.`), "reconcile", ) - c.PersistentFlags().StringVar(&repositoryName, "repository", "", "The name of the gihtub repository.") + c.PersistentFlags().StringVar(&repositoryName, "repository", "", "The name of the TARGET github repository.") failOnError(c.MarkPersistentFlagRequired("repository"), "reconcile") - c.PersistentFlags().StringVar(&owner, "owner", "", "The account owner of the github repository.") + c.PersistentFlags().StringVar(&owner, "owner", "", "The account owner of the TARGET github repository.") failOnError(c.MarkPersistentFlagRequired("owner"), "reconcile") c.Flags().BoolVar( diff --git a/cmd/coco/reconcile/reconcile.go b/cmd/coco/reconcile/reconcile.go index 5337654..87c6500 100644 --- a/cmd/coco/reconcile/reconcile.go +++ b/cmd/coco/reconcile/reconcile.go @@ -61,6 +61,7 @@ func New( if err := differentRemotes(targetBranch, sourceBranch, token, logger); err != nil { return nil, err } + reconcileBranchName = fmt.Sprintf("reconcile/remote-replica/%s-%s", sourceBranch.Name, targetBranch.Name) } client, err := githubClient(ctx, token, owner, repo, githubBaseURL, isEnterprise) @@ -80,7 +81,8 @@ func New( func (r *Client) Reconcile(force bool) error { if r.target.Remote != r.source.Remote { - return nil + // change source.name to remote-replica/source.Name and continue + r.source.Name = fmt.Sprintf("remote-replica/%s", r.source.Name) } return r.merge(force) } @@ -140,7 +142,7 @@ func differentRemotes(targetBranch, sourceBranch BranchConfig, token string, log if err == git.NoErrAlreadyUpToDate { logger.Debugf("Target branch is already up to date") } else if err != nil { - return err + return fmt.Errorf("target pull failed: %w", err) } // If the remotes are different, add the remote repository of the 'source' branch @@ -171,6 +173,7 @@ func copyBranch(targetRepo *git.Repository, sourceBranch BranchConfig, remoteNam if err != nil { return err } + err = refs.ForEach(func(ref *plumbing.Reference) error { if ref.Name() == plumbing.ReferenceName(fmt.Sprintf("refs/remotes/%s/%s", remoteName, sourceBranch.Name)) { sourceRef = ref @@ -181,15 +184,20 @@ func copyBranch(targetRepo *git.Repository, sourceBranch BranchConfig, remoteNam return err } ref := plumbing.NewHashReference(replicaBranchName, sourceRef.Hash()) - if err := targetRepo.Storer.SetReference(ref); err != nil { + err = targetRepo.Storer.SetReference(ref) + if err != nil { return err } - return gitPush(targetRepo, &git.PushOptions{ + err = gitPush(targetRepo, &git.PushOptions{ RemoteName: "origin", Auth: &githttp.BasicAuth{Username: notUsed, Password: token}, Progress: os.Stdout, Force: true, }) + if err == git.NoErrAlreadyUpToDate { + return nil + } + return err } func (r *Client) merge(force bool) error { From 23822cbcefc9489d48a26b7fd93e70cd3cd3925f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 26 Oct 2023 10:52:40 +0200 Subject: [PATCH 09/15] chore(deps): bump golang.org/x/net from 0.11.0 to 0.17.0 (#48) Bumps [golang.org/x/net](https://github.com/golang/net) from 0.11.0 to 0.17.0. - [Commits](https://github.com/golang/net/compare/v0.11.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/net dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- go.mod | 8 ++++---- go.sum | 18 +++++++++--------- 2 files changed, 13 insertions(+), 13 deletions(-) diff --git a/go.mod b/go.mod index 7deeb0f..3fbad39 100644 --- a/go.mod +++ b/go.mod @@ -15,7 +15,7 @@ require ( go.uber.org/zap v1.24.0 golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb golang.org/x/oauth2 v0.9.0 - golang.org/x/sys v0.9.0 + golang.org/x/sys v0.13.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -56,10 +56,10 @@ require ( github.com/xanzy/ssh-agent v0.3.3 // indirect go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.10.0 // indirect + golang.org/x/crypto v0.14.0 // indirect golang.org/x/mod v0.11.0 // indirect - golang.org/x/net v0.11.0 // indirect - golang.org/x/text v0.10.0 // indirect + golang.org/x/net v0.17.0 // indirect + golang.org/x/text v0.13.0 // indirect golang.org/x/tools v0.10.0 // indirect google.golang.org/appengine v1.6.7 // indirect google.golang.org/protobuf v1.31.0 // indirect diff --git a/go.sum b/go.sum index 3f1f81c..bb38329 100644 --- a/go.sum +++ b/go.sum @@ -281,8 +281,8 @@ golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0 golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.10.0 h1:LKqV2xt9+kDzSTfOhx4FrkEBcMrAgHSYgzywV9zcGmM= -golang.org/x/crypto v0.10.0/go.mod h1:o4eNf7Ede1fv+hwOwZsTHl9EsPFO6q6ZvYR8vYfY45I= +golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -358,8 +358,8 @@ golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.11.0 h1:Gi2tvZIJyBtO9SDr1q9h5hEQCp/4L2RQ+ar0qjx2oNU= -golang.org/x/net v0.11.0/go.mod h1:2L/ixqYpgIVXmeoSA/4Lu7BzTG4KIyPIryS4IsOd1oQ= +golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= +golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -430,14 +430,14 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.9.0 h1:KS/R3tvhPqvJvwcKfnBHJwwthS11LRhmM5D59eEXa0s= -golang.org/x/sys v0.9.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.9.0 h1:GRRCnKYhdQrD8kfRAdQ6Zcw1P0OcELxGLKJvtjVMZ28= +golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -449,8 +449,8 @@ golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.10.0 h1:UpjohKhiEgNc0CSauXmwYftY1+LlaC75SJwh0SgCX58= -golang.org/x/text v0.10.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From 613f9689ef02155c6dd1cf2164598fac96ddcf7c Mon Sep 17 00:00:00 2001 From: blackhatcrazy <44291985+blackhatcrazy@users.noreply.github.com> Date: Tue, 2 Jan 2024 15:49:09 +0100 Subject: [PATCH 10/15] chore(deps): update dependencies (#51) * update sprig * fix linting * fix(lint): update linter --------- Co-authored-by: I503834 --- .buildvars.yml | 4 +- .golangci.yml | 28 +- cmd/coco/commands/root.go | 18 +- cmd/coco/dependencies/graph.go | 2 +- cmd/coco/generate/templatefunctions.go | 2 +- go.mod | 67 +-- go.sum | 583 ++++--------------------- pkg/git/git.go | 22 +- pkg/github/client.go | 4 +- pkg/yamlfile/yamlfiles.go | 8 +- 10 files changed, 165 insertions(+), 573 deletions(-) diff --git a/.buildvars.yml b/.buildvars.yml index d04a39b..2602bab 100644 --- a/.buildvars.yml +++ b/.buildvars.yml @@ -1,5 +1,5 @@ go_version: "1.20" -golangci_version: v1.52.2 +golangci_version: v1.55.2 goreleaser_version: v1.16.2 -coverage_min: 80 \ No newline at end of file +coverage_min: 80 diff --git a/.golangci.yml b/.golangci.yml index 7751219..7ddb005 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -3,18 +3,16 @@ run: tests: true skip-dirs-use-default: true skip-files: - - ".*tmp/.*.go$" + - ".*tmp/.*.go$" linters-settings: depguard: - list-type: denylist - packages: - # logging is allowed only by logutils.Log, logrus - # is allowed to use only in logutils package - - github.com/sirupsen/logrus - - logutils.Log - packages-with-error-message: - - github.com/sirupsen/logrus: "logging is allowed only by the local log package" - - logutils.Log: "logging is allowed only by the local log package" + rules: + main: + deny: + - pkg: "github.com/sirupsen/logrus" + desc: "logging is allowed only by the local log package" + - pkg: "logutils.Log" + desc: "logging is allowed only by the local log package" dupl: threshold: 100 funlen: @@ -47,10 +45,10 @@ linters-settings: - condition - return ignored-numbers: - - '0' - - '1' - - '2' - - '3' + - "0" + - "1" + - "2" + - "3" ignored-functions: - strings.SplitN revive: @@ -124,4 +122,4 @@ linters: # - nestif # - prealloc # - testpackage - # - wsl \ No newline at end of file + # - wsl diff --git a/cmd/coco/commands/root.go b/cmd/coco/commands/root.go index 158a304..e14e2cd 100644 --- a/cmd/coco/commands/root.go +++ b/cmd/coco/commands/root.go @@ -5,7 +5,6 @@ import ( "os" "path/filepath" - "github.com/SAP/configuration-tools-for-gitops/v2/pkg/git" "github.com/SAP/configuration-tools-for-gitops/v2/pkg/log" "github.com/SAP/configuration-tools-for-gitops/v2/pkg/version" "github.com/spf13/cobra" @@ -152,13 +151,8 @@ func initConfig() { } if ok := consistentGitSetup( - viper.GetString(gitPathKey), viper.GetString(gitURLKey), - viper.GetString("git-token"), viper.GetString(gitRemoteKey), - viper.GetString("git.defaultBranch"), - overWriteGitDepth, // viper.GetInt(gitDepth), - logLvl, ); !ok { os.Exit(1) } @@ -176,9 +170,7 @@ func initConfig() { } } -func consistentGitSetup( - path, url, token, remote, defaultBranch string, gitDepth int, logLvl log.Level, -) bool { +func consistentGitSetup(url, remote string) bool { if remote == "" { return true } @@ -197,14 +189,6 @@ func consistentGitSetup( ) return false } - if _, err := git.New( - path, url, token, remote, defaultBranch, gitDepth, logLvl, - ); err != nil { - log.Sugar.Errorf( - "failed to validate repository in path \"%s\": %s", path, err, - ) - return false - } return true } diff --git a/cmd/coco/dependencies/graph.go b/cmd/coco/dependencies/graph.go index 3aa481b..0ec0771 100644 --- a/cmd/coco/dependencies/graph.go +++ b/cmd/coco/dependencies/graph.go @@ -39,7 +39,7 @@ func constructGraph(path, depFileName string) ( ) { fs, err := dependencies(path, depFileName, []string{}, []string{}, []string{}) if err != nil { - return + return nil, nil, err } downToUp = make(g.DownToUp, len(fs)) diff --git a/cmd/coco/generate/templatefunctions.go b/cmd/coco/generate/templatefunctions.go index 0deac88..aef20be 100644 --- a/cmd/coco/generate/templatefunctions.go +++ b/cmd/coco/generate/templatefunctions.go @@ -4,7 +4,7 @@ import ( "strings" gotemplate "text/template" - "github.com/Masterminds/sprig" + "github.com/Masterminds/sprig/v3" ) func tmplFuncs() gotemplate.FuncMap { diff --git a/go.mod b/go.mod index 3fbad39..3bf70c6 100644 --- a/go.mod +++ b/go.mod @@ -3,66 +3,69 @@ module github.com/SAP/configuration-tools-for-gitops/v2 go 1.20 require ( - github.com/Masterminds/sprig v2.22.0+incompatible - github.com/fatih/color v1.15.0 - github.com/go-git/go-billy/v5 v5.4.1 - github.com/go-git/go-git/v5 v5.7.0 + github.com/Masterminds/sprig/v3 v3.2.3 + github.com/fatih/color v1.16.0 + github.com/go-git/go-billy/v5 v5.5.0 + github.com/go-git/go-git/v5 v5.11.0 github.com/google/go-github/v51 v51.0.0 - github.com/spf13/cobra v1.7.0 + github.com/spf13/cobra v1.8.0 github.com/spf13/pflag v1.0.5 - github.com/spf13/viper v1.16.0 + github.com/spf13/viper v1.18.2 github.com/yourbasic/graph v0.0.0-20210606180040-8ecfec1c2869 - go.uber.org/zap v1.24.0 - golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb - golang.org/x/oauth2 v0.9.0 - golang.org/x/sys v0.13.0 + go.uber.org/zap v1.26.0 + golang.org/x/exp v0.0.0-20231226003508-02704c960a9b + golang.org/x/oauth2 v0.15.0 + golang.org/x/sys v0.15.0 gopkg.in/yaml.v3 v3.0.1 ) require ( + dario.cat/mergo v1.0.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect - github.com/Masterminds/semver v1.5.0 // indirect + github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v0.0.0-20230626094100-7e9e0395ebec // indirect - github.com/acomagu/bufpipe v1.0.4 // indirect - github.com/cloudflare/circl v1.3.3 // indirect + github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c // indirect + github.com/cloudflare/circl v1.3.7 // indirect + github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/emirpasic/gods v1.18.1 // indirect - github.com/fsnotify/fsnotify v1.6.0 // indirect + github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/google/uuid v1.3.0 // indirect + github.com/google/uuid v1.5.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/huandu/xstrings v1.4.0 // indirect - github.com/imdario/mergo v0.3.16 // indirect + github.com/imdario/mergo v0.3.11 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/magiconair/properties v1.8.7 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.19 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect - github.com/pelletier/go-toml/v2 v2.0.8 // indirect + github.com/pelletier/go-toml/v2 v2.1.1 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect + github.com/sagikazarmark/locafero v0.4.0 // indirect + github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sergi/go-diff v1.3.1 // indirect - github.com/skeema/knownhosts v1.1.1 // indirect - github.com/spf13/afero v1.9.5 // indirect - github.com/spf13/cast v1.5.1 // indirect - github.com/spf13/jwalterweatherman v1.1.0 // indirect - github.com/subosito/gotenv v1.4.2 // indirect + github.com/shopspring/decimal v1.3.1 // indirect + github.com/skeema/knownhosts v1.2.1 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/spf13/afero v1.11.0 // indirect + github.com/spf13/cast v1.6.0 // indirect + github.com/subosito/gotenv v1.6.0 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - go.uber.org/atomic v1.11.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.14.0 // indirect - golang.org/x/mod v0.11.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/text v0.13.0 // indirect - golang.org/x/tools v0.10.0 // indirect - google.golang.org/appengine v1.6.7 // indirect - google.golang.org/protobuf v1.31.0 // indirect + golang.org/x/crypto v0.17.0 // indirect + golang.org/x/mod v0.14.0 // indirect + golang.org/x/net v0.19.0 // indirect + golang.org/x/text v0.14.0 // indirect + golang.org/x/tools v0.16.1 // indirect + google.golang.org/appengine v1.6.8 // indirect + google.golang.org/protobuf v1.32.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/warnings.v0 v0.1.2 // indirect ) diff --git a/go.sum b/go.sum index bb38329..fac4a33 100644 --- a/go.sum +++ b/go.sum @@ -1,629 +1,238 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.75.0/go.mod h1:VGuuCn7PG0dwsd5XPVm2Mm3wlh3EL55/79EKB6hlPTY= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -cloud.google.com/go/storage v1.14.0/go.mod h1:GrKmX003DSIwi9o29oFT7YDnHYwZoctc3fOKtUw0Xmo= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= -github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= -github.com/Masterminds/sprig v2.22.0+incompatible h1:z4yfnGrZ7netVz+0EDJ0Wi+5VZCSYp4Z0m2dk6cEM60= -github.com/Masterminds/sprig v2.22.0+incompatible/go.mod h1:y6hNFY5UBTIWBxnzTeuNhlNS5hqE0NB0E6fgfo2Br3o= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= +github.com/Masterminds/semver/v3 v3.2.1 h1:RN9w6+7QoMeJVGyfmbcgs28Br8cvmnucEXnY0rYXWg0= +github.com/Masterminds/semver/v3 v3.2.1/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= +github.com/Masterminds/sprig/v3 v3.2.3 h1:eL2fZNezLomi0uOLqjQoN6BfsDD+fyLtgbJMAj9n6YA= +github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/ProtonMail/go-crypto v0.0.0-20230626094100-7e9e0395ebec h1:vV3RryLxt42+ZIVOFbYJCH1jsZNTNmj2NYru5zfx+4E= -github.com/ProtonMail/go-crypto v0.0.0-20230626094100-7e9e0395ebec/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= -github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= -github.com/acomagu/bufpipe v1.0.4/go.mod h1:mxdxdup/WdsKVreO5GpW4+M/1CE2sMG4jeGJ2sYmHc4= +github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c h1:kMFnB0vCcX7IL/m9Y5LO+KQYv+t1CQOiFe6+SV2J7bE= +github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= -github.com/benbjohnson/clock v1.1.0 h1:Q92kusRqC1XV2MjkWETPvjJVqKetz1OzxZB7mHJLju8= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= +github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= +github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/elazarl/goproxy v0.0.0-20221015165544-a0805db90819 h1:RIB4cRk+lBqKK3Oy0r2gRX4ui7tuhiZq2SuTtTCi0/0= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU= github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.15.0 h1:kOqh6YHBtK8aywxGerMG2Eq3H6Qgoqeo13Bk2Mv/nBs= -github.com/fatih/color v1.15.0/go.mod h1:0h5ZqXfHYED7Bhv2ZJamyIOUej9KtShiJESRwBDUSsw= -github.com/frankban/quicktest v1.14.4 h1:g2rn0vABPOOXmZUj+vbmUp0lPoXEMuhTpIluN0XL9UY= -github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= -github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fatih/color v1.16.0 h1:zmkK9Ngbjj+K0yRhTVONQh1p/HknKYSlNT+vZCzyokM= +github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI= github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic= -github.com/go-git/go-billy/v5 v5.4.1 h1:Uwp5tDRkPr+l/TnbHOQzp+tmJfLceOlbVucgpTz8ix4= -github.com/go-git/go-billy/v5 v5.4.1/go.mod h1:vjbugF6Fz7JIflbVpl1hJsGjSHNltrSw45YK/ukIvQg= -github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20230305113008-0c11038e723f h1:Pz0DHeFij3XFhoBRGUDPzSJ+w2UcK5/0JvF8DRI58r8= -github.com/go-git/go-git/v5 v5.7.0 h1:t9AudWVLmqzlo+4bqdf7GY+46SUuRsx59SboFxkq2aE= -github.com/go-git/go-git/v5 v5.7.0/go.mod h1:coJHKEOk5kUClpsNlXrUvPrDxY3w3gjHvhcZd8Fodw8= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/go-git/go-billy/v5 v5.5.0 h1:yEY4yhzCDuMGSv83oGxiBotRzhwhNr8VZyphhiu+mTU= +github.com/go-git/go-billy/v5 v5.5.0/go.mod h1:hmexnoNsr2SJU1Ju67OaNz5ASJY3+sHgFRpCtpDCKow= +github.com/go-git/go-git-fixtures/v4 v4.3.2-0.20231010084843-55a94097c399 h1:eMje31YglSBqCdIqdhKBW8lokaMrL3uTkpGYlE2OOT4= +github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3cA4= +github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3 h1:KhyjKVUg7Usr/dYsdSqoFveMYd5ko72D+zANwlG1mmg= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-github/v51 v51.0.0 h1:KCjsbgPV28VoRftdP+K2mQL16jniUsLAJknsOVKwHyU= github.com/google/go-github/v51 v51.0.0/go.mod h1:kZj/rn/c1lSUbr/PFWl2hhusPV7a5XNYKcwPrd5L3Us= github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8= github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17icRSOU623lUBU= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201218002935-b9804c9f04c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I= -github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/googleapis/google-cloud-go-testing v0.0.0-20200911160855-bcd43fbb19e8/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= +github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU= github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= -github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= +github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA= +github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/kevinburke/ssh_config v1.2.0 h1:x584FjTGwHzMwvHx18PXxbBVzfnxogHaAReU4gf13a4= github.com/kevinburke/ssh_config v1.2.0/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A= -github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19 h1:JITubQf0MOLdlGRuRq+jtsDlekdYPia9ZFsB8h/APPA= -github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= -github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= -github.com/pelletier/go-toml/v2 v2.0.8 h1:0ctb6s9mE31h0/lhu+J6OPmVeDxJn+kYnJc2jZR9tGQ= -github.com/pelletier/go-toml/v2 v2.0.8/go.mod h1:vuYfssBdrU2XDZ9bYydBu6t+6a6PYNcZljzZR9VXg+4= +github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= +github.com/pelletier/go-toml/v2 v2.1.1 h1:LWAJwfNvjQZCFIDKWYQaM62NcYeYViCmWIwmOStowAI= +github.com/pelletier/go-toml/v2 v2.1.1/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.13.1/go.mod h1:3HaPG6Dq1ILlpPZRO0HVMrsydcdLt6HRDccSgb87qRg= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= +github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= +github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= +github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shopspring/decimal v1.3.1 h1:2Usl1nmF/WZucqkFZhnfFYxxxu8LG21F6nPQBE5gKV8= +github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/skeema/knownhosts v1.1.1 h1:MTk78x9FPgDFVFkDLTrsnnfCJl7g1C/nnKvePgrIngE= -github.com/skeema/knownhosts v1.1.1/go.mod h1:g4fPeYpque7P0xefxtGzV81ihjC8sX2IqpAoNkjxbMo= -github.com/spf13/afero v1.9.5 h1:stMpOSZFs//0Lv29HduCmli3GUfpFoF3Y1Q/aXj/wVM= -github.com/spf13/afero v1.9.5/go.mod h1:UBogFpq8E9Hx+xc5CNTTEpTnuHVmXDwZcZcE1eb/UhQ= -github.com/spf13/cast v1.5.1 h1:R+kOtfhWQE6TVQzY+4D7wJLBgkdVasCEFxSUBYBYIlA= -github.com/spf13/cast v1.5.1/go.mod h1:b9PdjNptOpzXr7Rq1q9gJML/2cdGQAo69NKzQ10KN48= -github.com/spf13/cobra v1.7.0 h1:hyqWnYt1ZQShIddO5kBpj3vu05/++x6tJ6dg8EC572I= -github.com/spf13/cobra v1.7.0/go.mod h1:uLxZILRyS/50WlhOIKD7W6V5bgeIt+4sICxh6uRMrb0= -github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= +github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ= +github.com/skeema/knownhosts v1.2.1/go.mod h1:xYbVRSPxqBZFrdmDyMmsOs+uX1UZC3nTN3ThzgDxUwo= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= +github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= +github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= +github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v1.8.0 h1:7aJaZx1B85qltLMc546zn58BxxfZdR/W22ej9CFoEf0= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.16.0 h1:rGGH0XDZhdUOryiDWjmIvUSWpbNqisK8Wk0Vyefw8hc= -github.com/spf13/viper v1.16.0/go.mod h1:yg78JgCJcbrQOvV9YLXgkLaZqUidkY9K+Dd1FofRzQg= +github.com/spf13/viper v1.18.2 h1:LUXCnvUvSM6FXAsj6nnfc8Q2tp1dIgUfY9Kc8GsSOiQ= +github.com/spf13/viper v1.18.2/go.mod h1:EKmWIqdnk5lOcmR72yw6hS+8OPYcwD0jteitLMVB+yk= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= -github.com/stretchr/testify v1.8.3/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= -github.com/subosito/gotenv v1.4.2 h1:X1TuBLAMDFbaTAChgCBLu3DU3UPyELpnF2jjJ2cz/S8= -github.com/subosito/gotenv v1.4.2/go.mod h1:ayKnFf/c6rvx/2iiLrJUk1e6plDbT3edrFNGqEflhK0= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= github.com/xanzy/ssh-agent v0.3.3/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= github.com/yourbasic/graph v0.0.0-20210606180040-8ecfec1c2869 h1:7v7L5lsfw4w8iqBBXETukHo4IPltmD+mWoLRYUmeGN8= github.com/yourbasic/graph v0.0.0-20210606180040-8ecfec1c2869/go.mod h1:Rfzr+sqaDreiCaoQbFCu3sTXxeFq/9kXRuyOoSlGQHE= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.uber.org/atomic v1.11.0 h1:ZvwS0R+56ePWxUNi+Atn9dWONBPp/AUETXlHW0DxSjE= -go.uber.org/atomic v1.11.0/go.mod h1:LUxbIzbOniOlMKjJjyPfpl4v+PKK2cNJn91OQbhoJI0= -go.uber.org/goleak v1.1.11 h1:wy28qYRKZgnJTxGxvye5/wgWr1EKjmUDGYox5mGlRlI= +go.uber.org/goleak v1.2.0 h1:xqgm/S+aQvhWFTtR0XK3Jvg7z8kGV8P4X14IzwN3Eqk= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.24.0 h1:FiJd5l1UOLj0wCgbSE0rwwXHzEdAZS6hiiSnxJN/D60= -go.uber.org/zap v1.24.0/go.mod h1:2kMP+WWQ8aoFoedH3T2sq6iJ2yDWpHbP0f6MQbS9Gkg= +go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= +go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210421170649-83a5a9bb288b/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= -golang.org/x/crypto v0.0.0-20220722155217-630584e8d5aa/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.14.0 h1:wBqGXzWJW6m1XrIKlAH0Hs1JJ7+9KBwnIO8v66Q9cHc= -golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb h1:xIApU0ow1zwMa2uL1VDNeQlNVFTWMQxZUZCMDy0Q4Us= -golang.org/x/exp v0.0.0-20230711153332-06a737ee72cb/go.mod h1:FXUEEKJgO7OQYeo8N01OfiKP8RXMtf6e8aTskBGqWdc= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/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.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/exp v0.0.0-20231226003508-02704c960a9b h1:kLiC65FbiHWFAOu+lxwNPujcsl8VYyTYYEZnsOO1WK4= +golang.org/x/exp v0.0.0-20231226003508-02704c960a9b/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.11.0 h1:bUO06HqtnRcc/7l71XBe4WcqTZ+3AH1J59zWDDwLKgU= -golang.org/x/mod v0.11.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.9.0 h1:BPpt2kU7oMRq3kCHAA1tbSEshXRw1LpG2ztgDwrzuAs= -golang.org/x/oauth2 v0.9.0/go.mod h1:qYgFZaFiu6Wg24azG8bdV52QJXJGbZzIIsRCdVKzbLw= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= +golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= +golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.5.0 h1:60k92dhOjHxJkrqnwsfl8KuaHbn/5dl0lUPUklKo3qE= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -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-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE= -golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.13.0 h1:bb+I9cTfFazGW51MZqBVmZy7+JEJMouUHTUSKVQLBek= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/term v0.15.0 h1:y/Oo/a/q3IXu26lQgl04j/gjuBDOBlx7X6Om1j2CPW4= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= +golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.8.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= -golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= -golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/text v0.14.0 h1:ScX5w1eTa3QqT8oi6+ziP7dTV1S2+ALU0bI+0zXKWiQ= +golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210108195828-e2f9c7f1fc8e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.10.0 h1:tvDr/iQoUqNdohiYm0LmmKcBk+q86lb9EprIUFhHHGg= -golang.org/x/tools v0.10.0/go.mod h1:UJwyiVBsOA2uwvK/e5OY3GTpDUJriEd+/YlqAwLPmyM= +golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= +golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6c= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210108203827-ffc7fda8c3d7/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210226172003-ab064af71705/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= -google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.32.0 h1:pPC6BG5ex8PDFnkbrGU3EixyhKcQ2aDuBS36lqK/C7I= +google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/warnings.v0 v0.1.2 h1:wFXVbFY8DY5/xOe1ECiWdKCzZlxgshcYVNkBHstARME= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/pkg/git/git.go b/pkg/git/git.go index 0f01b04..8d5c9fd 100644 --- a/pkg/git/git.go +++ b/pkg/git/git.go @@ -60,13 +60,13 @@ func New( CABundle: []byte{}, }) if err != nil { - return + return repo, err } } else { var remotes []*git.Remote remotes, err = client.Remotes() if err != nil { - return + return repo, err } remoteFound := false @@ -84,8 +84,7 @@ func New( fmt.Sprintf("+refs/heads/*:refs/remotes/%s/*", remote), )}, }); err != nil { - err = fmt.Errorf("cannot create remote \"%s\": %s", remote, err) - return + return repo, fmt.Errorf("cannot create remote \"%s\": %s", remote, err) } } } @@ -200,31 +199,30 @@ func checkoutTree( case commitT: options.Hash = newCommit(ref) default: - err = fmt.Errorf("illegal refType \"%s\" found", rt) - return + return nil, fmt.Errorf("illegal refType \"%s\" found", rt) } w, err := c.Worktree() if err != nil { - return + return nil, err } - if err = w.Checkout(&options); err != nil { - return + if e := w.Checkout(&options); e != nil { + return nil, e } reference, err := c.Head() if err != nil { - return + return nil, err } commit, err := c.CommitObject(reference.Hash()) if err != nil { - return + return nil, err } tree, err := commit.Tree() if err != nil { - return + return nil, err } return &Tree{c, tree, commit}, nil } diff --git a/pkg/github/client.go b/pkg/github/client.go index ce079cc..8d67c2f 100644 --- a/pkg/github/client.go +++ b/pkg/github/client.go @@ -58,7 +58,7 @@ type github struct { func (gh *github) MergeBranches(base, head string) (bool, error) { merge := &gogithub.RepositoryMergeRequest{ - CommitMessage: gogithub.String("Merge branch " + head + " into " + base), + CommitMessage: gogithub.String(fmt.Sprintf("Merge branch %q into %q", head, base)), Base: gogithub.String(base), Head: gogithub.String(head), } @@ -127,7 +127,7 @@ func (gh *github) DeleteBranch(branchName string, forceDelete bool) error { if forceDelete { _, err := gh.client.Git.DeleteRef( - gh.ctx, gh.owner, gh.repo, "refs/heads/"+branchName, + gh.ctx, gh.owner, gh.repo, fmt.Sprintf("refs/heads/%s", branchName), ) if err != nil { return fmt.Errorf("failed to delete branch %q: %w", branchName, err) diff --git a/pkg/yamlfile/yamlfiles.go b/pkg/yamlfile/yamlfiles.go index 7cb43a7..643ba9a 100644 --- a/pkg/yamlfile/yamlfiles.go +++ b/pkg/yamlfile/yamlfiles.go @@ -251,7 +251,7 @@ func (s sieve) mapNode( removeAll = false err = nil if parentSelected { - return + return removeAll, err } if s.selected(n) { parentSelected = true @@ -288,7 +288,7 @@ func (s sieve) mapNode( if selectedByKey { remove, err = s.node(n.Content[i], parentSelected, childRestrictKeys) if err != nil { - return + return false, err } } if remove { @@ -315,7 +315,7 @@ func (s sieve) sequenceNode( removeAll = false err = nil if parentSelected { - return + return removeAll, err } if s.selected(n) { parentSelected = true @@ -327,7 +327,7 @@ func (s sieve) sequenceNode( if len(restrictToKeys) == 0 { remove, err = s.node(n.Content[i], parentSelected, restrictToKeys) if err != nil { - return + return false, err } } if remove { From 71505293feb6f02b44243817c1e883ddd2e1b59b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 1 Feb 2024 14:57:15 +0100 Subject: [PATCH 11/15] chore(deps): bump tj-actions/verify-changed-files in /.github/workflows (#52) Bumps [tj-actions/verify-changed-files](https://github.com/tj-actions/verify-changed-files) from 12 to 17. - [Release notes](https://github.com/tj-actions/verify-changed-files/releases) - [Changelog](https://github.com/tj-actions/verify-changed-files/blob/main/HISTORY.md) - [Commits](https://github.com/tj-actions/verify-changed-files/compare/v12...v17) --- updated-dependencies: - dependency-name: tj-actions/verify-changed-files dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/coverage-badge.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/coverage-badge.yaml b/.github/workflows/coverage-badge.yaml index 5e1f0b8..ec99d9e 100644 --- a/.github/workflows/coverage-badge.yaml +++ b/.github/workflows/coverage-badge.yaml @@ -53,7 +53,7 @@ jobs: with: filename: coverage.out - name: Verify Changed files - uses: tj-actions/verify-changed-files@v12 + uses: tj-actions/verify-changed-files@v17 id: verify-changed-files with: files: README.md From e1a9e0a392862a64f45cbdfbfc6ff9ed6e07c6e9 Mon Sep 17 00:00:00 2001 From: blackhatcrazy <44291985+blackhatcrazy@users.noreply.github.com> Date: Thu, 1 Feb 2024 15:35:57 +0100 Subject: [PATCH 12/15] chore(deps): update versions (#54) Co-authored-by: I503834 --- .buildvars.yml | 2 +- go.mod | 20 ++++++++++---------- go.sum | 18 ++++++++++++++++++ 3 files changed, 29 insertions(+), 11 deletions(-) diff --git a/.buildvars.yml b/.buildvars.yml index 2602bab..74098c4 100644 --- a/.buildvars.yml +++ b/.buildvars.yml @@ -1,4 +1,4 @@ -go_version: "1.20" +go_version: "1.21" golangci_version: v1.55.2 goreleaser_version: v1.16.2 diff --git a/go.mod b/go.mod index 3bf70c6..dc02cf4 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/SAP/configuration-tools-for-gitops/v2 -go 1.20 +go 1.21 require ( github.com/Masterminds/sprig/v3 v3.2.3 @@ -13,9 +13,9 @@ require ( github.com/spf13/viper v1.18.2 github.com/yourbasic/graph v0.0.0-20210606180040-8ecfec1c2869 go.uber.org/zap v1.26.0 - golang.org/x/exp v0.0.0-20231226003508-02704c960a9b - golang.org/x/oauth2 v0.15.0 - golang.org/x/sys v0.15.0 + golang.org/x/exp v0.0.0-20240119083558-1b970713d09a + golang.org/x/oauth2 v0.16.0 + golang.org/x/sys v0.16.0 gopkg.in/yaml.v3 v3.0.1 ) @@ -24,7 +24,7 @@ require ( github.com/Masterminds/goutils v1.1.1 // indirect github.com/Masterminds/semver/v3 v3.2.1 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect - github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c // indirect + github.com/ProtonMail/go-crypto v1.0.0 // indirect github.com/cloudflare/circl v1.3.7 // indirect github.com/cyphar/filepath-securejoin v0.2.4 // indirect github.com/emirpasic/gods v1.18.1 // indirect @@ -33,10 +33,10 @@ require ( github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/google/go-querystring v1.1.0 // indirect - github.com/google/uuid v1.5.0 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/huandu/xstrings v1.4.0 // indirect - github.com/imdario/mergo v0.3.11 // indirect + github.com/imdario/mergo v0.3.16 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect @@ -59,11 +59,11 @@ require ( github.com/subosito/gotenv v1.6.0 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.17.0 // indirect + golang.org/x/crypto v0.18.0 // indirect golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.19.0 // indirect + golang.org/x/net v0.20.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.16.1 // indirect + golang.org/x/tools v0.17.0 // indirect google.golang.org/appengine v1.6.8 // indirect google.golang.org/protobuf v1.32.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect diff --git a/go.sum b/go.sum index fac4a33..2f09b8d 100644 --- a/go.sum +++ b/go.sum @@ -12,6 +12,8 @@ github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migc github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c h1:kMFnB0vCcX7IL/m9Y5LO+KQYv+t1CQOiFe6+SV2J7bE= github.com/ProtonMail/go-crypto v0.0.0-20230923063757-afb1ddc0824c/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= +github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/bwesterb/go-ristretto v1.2.3/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= @@ -56,6 +58,8 @@ github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17 github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= @@ -63,6 +67,8 @@ github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/imdario/mergo v0.3.11 h1:3tnifQM4i+fbajXKBHXWEH+KvNHqojZ778UH75j3bGA= github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= @@ -155,8 +161,12 @@ golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2Uz golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/crypto v0.17.0 h1:r8bRNjWL3GshPW3gkd+RpvzWrZAwPS49OmTGZ/uhM4k= golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/exp v0.0.0-20231226003508-02704c960a9b h1:kLiC65FbiHWFAOu+lxwNPujcsl8VYyTYYEZnsOO1WK4= golang.org/x/exp v0.0.0-20231226003508-02704c960a9b/go.mod h1:iRJReGqOEeBhDZGkGbynYwcHlctCvnjTYIamk7uXpHI= +golang.org/x/exp v0.0.0-20240119083558-1b970713d09a h1:Q8/wZp0KX97QFTc2ywcOE0YRjZPVIx+MXInMzdvQqcA= +golang.org/x/exp v0.0.0-20240119083558-1b970713d09a/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= @@ -170,8 +180,12 @@ golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/net v0.19.0 h1:zTwKpTd2XuCqf8huc7Fo2iSy+4RHPd10s4KzeTnVr1c= golang.org/x/net v0.19.0/go.mod h1:CfAk/cbD4CthTvqiEl8NpboMuiuOYsAr/7NOjZJtv1U= +golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= +golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/oauth2 v0.15.0 h1:s8pnnxNVzjWyrvYdFUQq5llS1PX2zhPXmccZv99h7uQ= golang.org/x/oauth2 v0.15.0/go.mod h1:q48ptWNTY5XWf+JNten23lcvHpLJ0ZSxF5ttTHKVCAM= +golang.org/x/oauth2 v0.16.0 h1:aDkGMBSYxElaoP81NpoUoz2oo2R2wHdZpGToUxfyQrQ= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -192,6 +206,8 @@ golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= +golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= @@ -214,6 +230,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.16.1 h1:TLyB3WofjdOEepBHAU20JdNC1Zbg87elYofWYAY5oZA= golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= +golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= +golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= From 011e149e04c1e3e1a710066e43a4dd08a8c6f0ff Mon Sep 17 00:00:00 2001 From: ajinkyapatil8190 Date: Mon, 24 Mar 2025 18:47:31 +0100 Subject: [PATCH 13/15] Reuse Version update from dep to toml --- .reuse/dep5 | 29 ----------------------------- REUSE.toml | 11 +++++++++++ 2 files changed, 11 insertions(+), 29 deletions(-) delete mode 100644 .reuse/dep5 create mode 100644 REUSE.toml diff --git a/.reuse/dep5 b/.reuse/dep5 deleted file mode 100644 index e325bb6..0000000 --- a/.reuse/dep5 +++ /dev/null @@ -1,29 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: configuration-tools-for-gitops -Upstream-Contact: jan.fokken@sap.com -Source: https://github.com/SAP/configuration-tools-for-gitops -Disclaimer: The code in this project may include calls to APIs ("API Calls") of - SAP or third-party products or services developed outside of this project - ("External Products"). - "APIs" means application programming interfaces, as well as their respective - specifications and implementing code that allows software to communicate with - other software. - API Calls to External Products are not licensed under the open source license - that governs this project. The use of such API Calls and related External - Products are subject to applicable additional agreements with the relevant - provider of the External Products. In no event shall the open source license - that governs this project grant any rights in or to any External Products,or - alter, expand or supersede any terms of the applicable additional agreements. - If you have a valid license agreement with SAP for the use of a particular SAP - External Product, then you may make use of any API Calls included in this - project's code for that SAP External Product, subject to the terms of such - license agreement. If you do not have a valid license agreement for the use of - a particular SAP External Product, then you may only make use of any API Calls - in this project for that SAP External Product for your internal, non-productive - and non-commercial test and evaluation of such API Calls. Nothing herein grants - you any rights to use or access any SAP External Product, or provide any third - parties the right to use of access any SAP External Product, through API Calls. - -Files: * -Copyright: 2023 SAP SE or an SAP affiliate company and configuration-tools-for-gitops contributors -License: Apache-2.0 diff --git a/REUSE.toml b/REUSE.toml new file mode 100644 index 0000000..1e54097 --- /dev/null +++ b/REUSE.toml @@ -0,0 +1,11 @@ +version = 1 +SPDX-PackageName = "configuration-tools-for-gitops" +SPDX-PackageSupplier = "jan.fokken@sap.com" +SPDX-PackageDownloadLocation = "https://github.com/SAP/configuration-tools-for-gitops" +SPDX-PackageComment = "The code in this project may include calls to APIs (\"API Calls\") of\n SAP or third-party products or services developed outside of this project\n (\"External Products\").\n \"APIs\" means application programming interfaces, as well as their respective\n specifications and implementing code that allows software to communicate with\n other software.\n API Calls to External Products are not licensed under the open source license\n that governs this project. The use of such API Calls and related External\n Products are subject to applicable additional agreements with the relevant\n provider of the External Products. In no event shall the open source license\n that governs this project grant any rights in or to any External Products,or\n alter, expand or supersede any terms of the applicable additional agreements.\n If you have a valid license agreement with SAP for the use of a particular SAP\n External Product, then you may make use of any API Calls included in this\n project's code for that SAP External Product, subject to the terms of such\n license agreement. If you do not have a valid license agreement for the use of\n a particular SAP External Product, then you may only make use of any API Calls\n in this project for that SAP External Product for your internal, non-productive\n and non-commercial test and evaluation of such API Calls. Nothing herein grants\n you any rights to use or access any SAP External Product, or provide any third\n parties the right to use of access any SAP External Product, through API Calls." + +[[annotations]] +path = "**" +precedence = "aggregate" +SPDX-FileCopyrightText = "2023 SAP SE or an SAP affiliate company and configuration-tools-for-gitops contributors" +SPDX-License-Identifier = "Apache-2.0" From 3ab2c84811b59a32427077b2bbc3e0aeebb740ee Mon Sep 17 00:00:00 2001 From: Jan Fokken Date: Mon, 12 May 2025 13:44:18 +0200 Subject: [PATCH 14/15] updates --- .buildvars.yml | 6 +++--- .github/workflows/coverage-badge.yaml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.buildvars.yml b/.buildvars.yml index 74098c4..5360989 100644 --- a/.buildvars.yml +++ b/.buildvars.yml @@ -1,5 +1,5 @@ -go_version: "1.21" -golangci_version: v1.55.2 -goreleaser_version: v1.16.2 +go_version: "1.24" +golangci_version: v1.64.8 +goreleaser_version: v1.26.2 coverage_min: 80 diff --git a/.github/workflows/coverage-badge.yaml b/.github/workflows/coverage-badge.yaml index ec99d9e..6ad4ac6 100644 --- a/.github/workflows/coverage-badge.yaml +++ b/.github/workflows/coverage-badge.yaml @@ -40,7 +40,7 @@ jobs: with: go-version: ${{ needs.variables.outputs.go_version }} - - uses: actions/cache@v2 + - uses: actions/cache@v4 with: path: ~/go/pkg/mod key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} From 3609b4221cd98fbd75b68e540a5008bcd7837339 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Mon, 12 May 2025 11:45:27 +0000 Subject: [PATCH 15/15] chore: Updated coverage badge. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6fbf890..cfab8e3 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Configuration tools for GitOps -![Coverage](https://img.shields.io/badge/Coverage-84.8%25-brightgreen) +![Coverage](https://img.shields.io/badge/Coverage-63.4%25-yellow) [![REUSE status](https://api.reuse.software/badge/github.com/SAP/configuration-tools-for-gitops)](https://api.reuse.software/info/github.com/SAP/configuration-tools-for-gitops) ## About this project