Block the creation of empty commits
In specific cases, the update mechanism may lead to no files being changed. The changes short-circuit the process to exit early when 0 files have been modified. go-git has been changed to return an error when an empty commit is detected, which is used as a last resort. When the push branch is different than the clone branch, the controller will now download all branch references from the Git server, in order to enable a single fetch operation. Signed-off-by: Paulo Gomes <paulo.gomes@weave.works>
This commit is contained in:
		
							parent
							
								
									f48e3bd8fd
								
							
						
					
					
						commit
						a980b894e0
					
				|  | @ -32,16 +32,16 @@ import ( | |||
| 	"time" | ||||
| 
 | ||||
| 	fuzz "github.com/AdaLogics/go-fuzz-headers" | ||||
| 	"github.com/fluxcd/go-git/v5" | ||||
| 	gogit "github.com/fluxcd/go-git/v5" | ||||
| 	"github.com/fluxcd/go-git/v5/config" | ||||
| 	"github.com/fluxcd/go-git/v5/plumbing" | ||||
| 	"github.com/fluxcd/go-git/v5/plumbing/object" | ||||
| 	"github.com/fluxcd/go-git/v5/storage/memory" | ||||
| 	"github.com/fluxcd/image-automation-controller/pkg/update" | ||||
| 	"github.com/fluxcd/pkg/gittestserver" | ||||
| 	"github.com/fluxcd/pkg/runtime/testenv" | ||||
| 	"github.com/go-git/go-billy/v5/memfs" | ||||
| 	"github.com/go-git/go-git/v5" | ||||
| 	gogit "github.com/go-git/go-git/v5" | ||||
| 	"github.com/go-git/go-git/v5/config" | ||||
| 	"github.com/go-git/go-git/v5/plumbing" | ||||
| 	"github.com/go-git/go-git/v5/plumbing/object" | ||||
| 	"github.com/go-git/go-git/v5/storage/memory" | ||||
| 	"github.com/go-logr/logr" | ||||
| 	"k8s.io/apimachinery/pkg/types" | ||||
| 	utilruntime "k8s.io/apimachinery/pkg/util/runtime" | ||||
|  |  | |||
|  | @ -19,6 +19,7 @@ package controllers | |||
| import ( | ||||
| 	"bytes" | ||||
| 	"context" | ||||
| 	"errors" | ||||
| 	"fmt" | ||||
| 	"math" | ||||
| 	"net/url" | ||||
|  | @ -59,6 +60,8 @@ import ( | |||
| 	"github.com/fluxcd/pkg/runtime/predicates" | ||||
| 	sourcev1 "github.com/fluxcd/source-controller/api/v1beta2" | ||||
| 
 | ||||
| 	extgogit "github.com/fluxcd/go-git/v5" | ||||
| 
 | ||||
| 	imagev1 "github.com/fluxcd/image-automation-controller/api/v1beta1" | ||||
| 	"github.com/fluxcd/image-automation-controller/internal/features" | ||||
| 	"github.com/fluxcd/image-automation-controller/pkg/update" | ||||
|  | @ -265,6 +268,9 @@ func (r *ImageUpdateAutomationReconciler) Reconcile(ctx context.Context, req ctr | |||
| 	if authOpts.Transport == git.HTTP { | ||||
| 		clientOpts = append(clientOpts, gogit.WithInsecureCredentialsOverHTTP()) | ||||
| 	} | ||||
| 	if pushBranch != ref.Branch { | ||||
| 		clientOpts = append(clientOpts, gogit.WithSingleBranch(false)) | ||||
| 	} | ||||
| 
 | ||||
| 	gitClient, err := gogit.NewClient(tmp, authOpts, clientOpts...) | ||||
| 	if err != nil { | ||||
|  | @ -329,11 +335,13 @@ func (r *ImageUpdateAutomationReconciler) Reconcile(ctx context.Context, req ctr | |||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		if result, err := updateAccordingToSetters(ctx, tracelog, manifestsPath, policies.Items); err != nil { | ||||
| 		result, err := updateAccordingToSetters(ctx, tracelog, manifestsPath, manifestsPath, policies.Items) | ||||
| 		if err != nil { | ||||
| 			return failWithError(err) | ||||
| 		} else { | ||||
| 			templateValues.Updated = result | ||||
| 		} | ||||
| 
 | ||||
| 		templateValues.Updated = result | ||||
| 
 | ||||
| 	default: | ||||
| 		log.Info("no update strategy given in the spec") | ||||
| 		// no sense rescheduling until this resource changes
 | ||||
|  | @ -358,10 +366,12 @@ func (r *ImageUpdateAutomationReconciler) Reconcile(ctx context.Context, req ctr | |||
| 		return failWithError(err) | ||||
| 	} | ||||
| 
 | ||||
| 	var rev string | ||||
| 	if len(templateValues.Updated.Files) > 0 { | ||||
| 		// The status message depends on what happens next. Since there's
 | ||||
| 		// more than one way to succeed, there's some if..else below, and
 | ||||
| 		// early returns only on failure.
 | ||||
| 	if rev, err := gitClient.Commit( | ||||
| 		rev, err = gitClient.Commit( | ||||
| 			git.Commit{ | ||||
| 				Author: git.Signature{ | ||||
| 					Name:  gitSpec.Commit.Author.Name, | ||||
|  | @ -371,8 +381,13 @@ func (r *ImageUpdateAutomationReconciler) Reconcile(ctx context.Context, req ctr | |||
| 				Message: message, | ||||
| 			}, | ||||
| 			repository.WithSigner(signingEntity), | ||||
| 	); err != nil { | ||||
| 		if err != git.ErrNoStagedFiles { | ||||
| 		) | ||||
| 	} else { | ||||
| 		err = extgogit.ErrEmptyCommit | ||||
| 	} | ||||
| 
 | ||||
| 	if err != nil { | ||||
| 		if !errors.Is(err, git.ErrNoStagedFiles) && !errors.Is(err, extgogit.ErrEmptyCommit) { | ||||
| 			return failWithError(err) | ||||
| 		} | ||||
| 
 | ||||
|  | @ -583,8 +598,8 @@ func (r *ImageUpdateAutomationReconciler) event(ctx context.Context, auto imagev | |||
| 
 | ||||
| // updateAccordingToSetters updates files under the root by treating
 | ||||
| // the given image policies as kyaml setters.
 | ||||
| func updateAccordingToSetters(ctx context.Context, tracelog logr.Logger, path string, policies []imagev1_reflect.ImagePolicy) (update.Result, error) { | ||||
| 	return update.UpdateWithSetters(tracelog, path, path, policies) | ||||
| func updateAccordingToSetters(ctx context.Context, tracelog logr.Logger, inpath, outpath string, policies []imagev1_reflect.ImagePolicy) (update.Result, error) { | ||||
| 	return update.UpdateWithSetters(tracelog, inpath, outpath, policies) | ||||
| } | ||||
| 
 | ||||
| // templateMsg renders a msg template, returning the message or an error.
 | ||||
|  |  | |||
							
								
								
									
										10
									
								
								go.mod
								
								
								
								
							
							
						
						
									
										10
									
								
								go.mod
								
								
								
								
							|  | @ -9,28 +9,24 @@ replace github.com/fluxcd/image-automation-controller/api => ./api | |||
| // https://github.com/go-git/go-billy/blob/e0768be422ff616fc042d1d62bfa65962f716ad8/util/walk.go#L59 | ||||
| replace github.com/go-git/go-billy/v5 => github.com/go-git/go-billy/v5 v5.3.2-0.20210603175951-e0768be422ff | ||||
| 
 | ||||
| // Use Flux's version of go-git, which allows clones with multi_ack and multi_ack_detailed. | ||||
| replace github.com/go-git/go-git/v5 => github.com/fluxcd/go-git/v5 v5.0.0-20221019082644-b33dae782906 | ||||
| 
 | ||||
| require ( | ||||
| 	github.com/AdaLogics/go-fuzz-headers v0.0.0-20221103172237-443f56ff4ba8 | ||||
| 	github.com/Masterminds/sprig/v3 v3.2.2 | ||||
| 	github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4 | ||||
| 	github.com/cyphar/filepath-securejoin v0.2.3 | ||||
| 	github.com/fluxcd/go-git/v5 v5.0.0-20221104190732-329fd6659b10 | ||||
| 	github.com/fluxcd/go-git/v5 v5.0.0-20221206140629-ec778c2c37df | ||||
| 	github.com/fluxcd/image-automation-controller/api v0.27.0 | ||||
| 	github.com/fluxcd/image-reflector-controller/api v0.23.0 | ||||
| 	github.com/fluxcd/pkg/apis/acl v0.1.0 | ||||
| 	github.com/fluxcd/pkg/apis/event v0.2.0 | ||||
| 	github.com/fluxcd/pkg/apis/meta v0.18.0 | ||||
| 	github.com/fluxcd/pkg/git v0.7.0 | ||||
| 	github.com/fluxcd/pkg/git/gogit v0.2.0 | ||||
| 	github.com/fluxcd/pkg/git/gogit v0.3.3-0.20221215162949-d8dda52b554b | ||||
| 	github.com/fluxcd/pkg/gittestserver v0.8.0 | ||||
| 	github.com/fluxcd/pkg/runtime v0.24.0 | ||||
| 	github.com/fluxcd/pkg/ssh v0.7.0 | ||||
| 	github.com/fluxcd/source-controller/api v0.32.1 | ||||
| 	github.com/go-git/go-billy/v5 v5.3.1 | ||||
| 	github.com/go-git/go-git/v5 v5.4.2 | ||||
| 	github.com/go-logr/logr v1.2.3 | ||||
| 	github.com/google/go-containerregistry v0.12.1 | ||||
| 	github.com/onsi/gomega v1.24.1 | ||||
|  | @ -65,7 +61,6 @@ require ( | |||
| 	github.com/chai2010/gettext-go v1.0.2 // indirect | ||||
| 	github.com/cloudflare/circl v1.3.0 // indirect | ||||
| 	github.com/davecgh/go-spew v1.1.1 // indirect | ||||
| 	github.com/elazarl/goproxy v0.0.0-20221015165544-a0805db90819 // indirect | ||||
| 	github.com/emicklei/go-restful/v3 v3.10.0 // indirect | ||||
| 	github.com/emirpasic/gods v1.18.1 // indirect | ||||
| 	github.com/evanphx/json-patch v5.6.0+incompatible // indirect | ||||
|  | @ -118,6 +113,7 @@ require ( | |||
| 	github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect | ||||
| 	github.com/opencontainers/go-digest v1.0.0 // indirect | ||||
| 	github.com/peterbourgon/diskv v2.0.1+incompatible // indirect | ||||
| 	github.com/pjbgf/sha1cd v0.2.3 // indirect | ||||
| 	github.com/pkg/errors v0.9.1 // indirect | ||||
| 	github.com/prometheus/client_golang v1.14.0 // indirect | ||||
| 	github.com/prometheus/client_model v0.3.0 // indirect | ||||
|  |  | |||
							
								
								
									
										26
									
								
								go.sum
								
								
								
								
							
							
						
						
									
										26
									
								
								go.sum
								
								
								
								
							|  | @ -47,12 +47,10 @@ github.com/Masterminds/semver/v3 v3.1.1 h1:hLg3sBzpNErnxhQtUy/mmLR2I9foDujNK030I | |||
| github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= | ||||
| github.com/Masterminds/sprig/v3 v3.2.2 h1:17jRggJu518dr3QaafizSXOjKYp94wKfABxUmyxvxX8= | ||||
| github.com/Masterminds/sprig/v3 v3.2.2/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk= | ||||
| github.com/Microsoft/go-winio v0.5.0/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= | ||||
| github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= | ||||
| github.com/Microsoft/go-winio v0.6.0 h1:slsWYD/zyx7lCXoZVlvQrj0hPTM1HI4+v1sIda2yDvg= | ||||
| github.com/Microsoft/go-winio v0.6.0/go.mod h1:cTAf44im0RAYeL23bpB+fzCyDH2MJiz2BO69KH/soAE= | ||||
| github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= | ||||
| github.com/ProtonMail/go-crypto v0.0.0-20210428141323-04723f9f07d7/go.mod h1:z4/9nQmJSSwwds7ejkxaJwO37dru3geImFUdJlaLzQo= | ||||
| github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4 h1:ra2OtmuW0AE5csawV4YXMNGNQQXvLRps3z2Z59OPO+I= | ||||
| github.com/ProtonMail/go-crypto v0.0.0-20221026131551-cf6655e29de4/go.mod h1:UBYPn8k0D56RtnR8RFQMjmh4KrZzWJ5o7Z9SYjossQ8= | ||||
| github.com/acomagu/bufpipe v1.0.3 h1:fxAGrHZTgQ9w5QqVItgzwj235/uYZYgbXitB+dLupOk= | ||||
|  | @ -62,7 +60,6 @@ github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuy | |||
| github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= | ||||
| github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= | ||||
| github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= | ||||
| github.com/anmitsu/go-shlex v0.0.0-20161002113705-648efa622239/go.mod h1:2FmKhYUyUczH0OGQWaF5ceTx0UBShxjsH6f8oGKYe2c= | ||||
| github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= | ||||
| github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= | ||||
| github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= | ||||
|  | @ -105,11 +102,8 @@ 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/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= | ||||
| github.com/elazarl/goproxy v0.0.0-20221015165544-a0805db90819 h1:RIB4cRk+lBqKK3Oy0r2gRX4ui7tuhiZq2SuTtTCi0/0= | ||||
| github.com/elazarl/goproxy v0.0.0-20221015165544-a0805db90819/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM= | ||||
| github.com/elazarl/goproxy/ext v0.0.0-20190711103511-473e67f1d7d2/go.mod h1:gNh8nYJoAm43RfaxurUnxr+N1PwuFV3ZMl/efxlIlY8= | ||||
| github.com/emicklei/go-restful/v3 v3.10.0 h1:X4gma4HM7hFm6WMeAsTfqA0GOfdNoCzBIkHGoRLGXuM= | ||||
| github.com/emicklei/go-restful/v3 v3.10.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= | ||||
| github.com/emirpasic/gods v1.12.0/go.mod h1:YfzfFFoVP/catgzJb4IKIqXjX78Ha8FMSDh3ymbK86o= | ||||
| 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= | ||||
|  | @ -130,10 +124,8 @@ github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYF | |||
| github.com/flowstack/go-jsonschema v0.1.1/go.mod h1:yL7fNggx1o8rm9RlgXv7hTBWxdBM0rVwpMwimd3F3N0= | ||||
| github.com/fluxcd/gitkit v0.6.0 h1:iNg5LTx6ePo+Pl0ZwqHTAkhbUHxGVSY3YCxCdw7VIFg= | ||||
| github.com/fluxcd/gitkit v0.6.0/go.mod h1:svOHuKi0fO9HoawdK4HfHAJJseZDHHjk7I3ihnCIqNo= | ||||
| github.com/fluxcd/go-git/v5 v5.0.0-20221019082644-b33dae782906 h1:VFNX84BWt3r4YVFYLdNvryRwFBix2lea8EVT5V/xH7Y= | ||||
| github.com/fluxcd/go-git/v5 v5.0.0-20221019082644-b33dae782906/go.mod h1:YpPgMNvxopDCZUuSFjkbcx/vWhCDvPsuoBCTTEd9dDc= | ||||
| github.com/fluxcd/go-git/v5 v5.0.0-20221104190732-329fd6659b10 h1:au798417R1iWtgcgKe3Dg495mexQmuxelL+NebAtexE= | ||||
| github.com/fluxcd/go-git/v5 v5.0.0-20221104190732-329fd6659b10/go.mod h1:w8bjt1WtWUxMEmlifjBJP9bK9QAG1Vw1Lw7RzchJFNk= | ||||
| github.com/fluxcd/go-git/v5 v5.0.0-20221206140629-ec778c2c37df h1:2BHXJp1PwX7D47Q2oaKDekn+BZVZCmxeCWNi+FyownE= | ||||
| github.com/fluxcd/go-git/v5 v5.0.0-20221206140629-ec778c2c37df/go.mod h1:raWgfUV7lDQVXp4QXUaeNNJkRVKz97UQuF+0kdY7Vmo= | ||||
| github.com/fluxcd/image-reflector-controller/api v0.23.0 h1:Ww3EjZD6Xm+UebS+VdXh3UE7rkLSr/1ulIz0FLgUAf0= | ||||
| github.com/fluxcd/image-reflector-controller/api v0.23.0/go.mod h1:uomyKK0ZWFOsG40wqmCJvIN8OpAiPKFteXe+cdhB/Z0= | ||||
| github.com/fluxcd/pkg/apis/acl v0.1.0 h1:EoAl377hDQYL3WqanWCdifauXqXbMyFuK82NnX6pH4Q= | ||||
|  | @ -144,8 +136,8 @@ github.com/fluxcd/pkg/apis/meta v0.18.0 h1:s0LeulWcQ4DxVX6805vgDTxlA6bAYk+Lq1QHS | |||
| github.com/fluxcd/pkg/apis/meta v0.18.0/go.mod h1:pYvXRFi1UKNNrGR34jw3uqOnMXw9X6dTkML8j5Z7tis= | ||||
| github.com/fluxcd/pkg/git v0.7.0 h1:sQHRpFMcOzEdqlyGMjFv2LKMdcoE5xeUr2UcRrsLRG8= | ||||
| github.com/fluxcd/pkg/git v0.7.0/go.mod h1:3deiLPws4DSQ3hqwtQd7Dt66GXTN/4RcT/yHAljXaHo= | ||||
| github.com/fluxcd/pkg/git/gogit v0.2.0 h1:vhFzk2Pky4tDZwisx8+26YZumRDPxERnkV8l2dbLSoo= | ||||
| github.com/fluxcd/pkg/git/gogit v0.2.0/go.mod h1:d1RIwl6DVdU8/2dBIhw6n7GNokIKqs+b9cKc/8tz7ew= | ||||
| github.com/fluxcd/pkg/git/gogit v0.3.3-0.20221215162949-d8dda52b554b h1:774oRTf/DFKWRslFIMzehhLooMpVE2ApheL2GoUIgFQ= | ||||
| github.com/fluxcd/pkg/git/gogit v0.3.3-0.20221215162949-d8dda52b554b/go.mod h1:fMBM6efbAPqDEoU2M/ve+P3b/oQCuwRbia4bn9006jM= | ||||
| github.com/fluxcd/pkg/gittestserver v0.8.0 h1:YrYe63KScKlLxx0GAiQthx2XqHDx0vKitIIx4JnDtIo= | ||||
| github.com/fluxcd/pkg/gittestserver v0.8.0/go.mod h1:/LI/xKMrnQbIsTDnTyABQ71iaYhFIZ8fb4cvY7WAlBU= | ||||
| github.com/fluxcd/pkg/runtime v0.24.0 h1:rQmm5Xq8K7f8xcPj1oNOInM1x4YwmgTucZJOP51Xmr4= | ||||
|  | @ -156,12 +148,10 @@ github.com/fluxcd/pkg/version v0.2.0 h1:jG22c59Bsv6vL51N7Bqn8tjHArYOXrjbIkGArlIr | |||
| github.com/fluxcd/pkg/version v0.2.0/go.mod h1:umN1VAOV0sB1JDVwb8eXZzuuqIAEku+y+vcCVBBUIf0= | ||||
| github.com/fluxcd/source-controller/api v0.32.1 h1:PD8XEG4k5otsnusZZNEQ9XYY5udHoNgp5bX2yZHcb6k= | ||||
| github.com/fluxcd/source-controller/api v0.32.1/go.mod h1:+DiGND4WSNdGkS7loPUroSarif6dHU4VlVgtLMRKCR8= | ||||
| github.com/flynn/go-shlex v0.0.0-20150515145356-3f9db97f8568/go.mod h1:xEzjJPgXI435gkrCt3MPfRiAkVrwSbHsst4LCFVfpJc= | ||||
| github.com/frankban/quicktest v1.14.3 h1:FJKSZTDHjyhriyC81FLQ0LY93eSai0ZyR/ZIkd3ZUKE= | ||||
| github.com/fsnotify/fsnotify v1.6.0 h1:n+5WquG0fcWoWp6xPWfHdbskMCQaFnG6PfBrh1Ky4HY= | ||||
| github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= | ||||
| github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= | ||||
| github.com/gliderlabs/ssh v0.2.2/go.mod h1:U7qILu1NlMHj9FlMhZLlkCdDnU1DBEAqr0aevW3Awn0= | ||||
| github.com/gliderlabs/ssh v0.3.5 h1:OcaySEmAQJgyYcArR+gGGTHCyE7nvhEMTlYY+Dp8CpY= | ||||
| github.com/gliderlabs/ssh v0.3.5/go.mod h1:8XB4KraRrX39qHhT6yxPsHedjA08I/uBVwj4xC+/+z4= | ||||
| github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= | ||||
|  | @ -292,7 +282,6 @@ github.com/huandu/xstrings v1.3.2 h1:L18LIDzqlW6xN2rEkpdV8+oL/IXWJ1APd+vsdYy4Wdw | |||
| github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= | ||||
| github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= | ||||
| github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= | ||||
| github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= | ||||
| github.com/imdario/mergo v0.3.13 h1:lFzP57bqS/wsqKssCGmtLAb8A0wKjLGrve2q3PPVcBk= | ||||
| github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= | ||||
| github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc= | ||||
|  | @ -313,7 +302,6 @@ github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1 | |||
| github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= | ||||
| github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= | ||||
| github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= | ||||
| github.com/kevinburke/ssh_config v0.0.0-20201106050909-4977a11b4351/go.mod h1:CT57kijsi8u/K/BOFA39wgDQJ9CxiF4nAY/ojJ6r6mM= | ||||
| 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/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= | ||||
|  | @ -392,6 +380,8 @@ github.com/otiai10/mint v1.4.0 h1:umwcf7gbpEwf7WFzqmWwSv0CzbeMsae2u9ZvpP8j2q4= | |||
| github.com/otiai10/mint v1.4.0/go.mod h1:gifjb2MYOoULtKLqUAEILUG/9KONW6f7YsJ6vQLTlFI= | ||||
| github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= | ||||
| github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= | ||||
| github.com/pjbgf/sha1cd v0.2.3 h1:uKQP/7QOzNtKYH7UTohZLcjF5/55EnTw0jO/Ru4jZwI= | ||||
| github.com/pjbgf/sha1cd v0.2.3/go.mod h1:HOK9QrgzdHpbc2Kzip0Q1yi3M2MFGPADtR6HjG65m5M= | ||||
| github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= | ||||
| github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
| github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= | ||||
|  | @ -426,7 +416,6 @@ github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1 | |||
| github.com/prometheus/procfs v0.8.0 h1:ODq8ZFEaYeCaZOJlZZdJA2AbQR98dSHSM1KW/You5mo= | ||||
| github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= | ||||
| github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= | ||||
| github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= | ||||
| github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||
| github.com/rogpeppe/go-internal v1.8.0 h1:FCbCCtXNOY3UtUuHUYaghJg4y7Fd14rXifAYUAtL9R8= | ||||
| github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= | ||||
|  | @ -466,7 +455,6 @@ github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ | |||
| github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= | ||||
| github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= | ||||
| github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKsk= | ||||
| github.com/xanzy/ssh-agent v0.3.1/go.mod h1:QIE4lCeL7nkC25x+yA3LBIYfwCc1TFziCtG7cBAac6w= | ||||
| github.com/xanzy/ssh-agent v0.3.2 h1:eKj4SX2Fe7mui28ZgnFW5fmTz1EIr7ugo5s6wDxdHBM= | ||||
| github.com/xanzy/ssh-agent v0.3.2/go.mod h1:6dzNDKs0J9rVPHPhaGCukekBHKqfl+L3KghI1Bc68Uw= | ||||
| github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= | ||||
|  | @ -505,8 +493,6 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U | |||
| golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= | ||||
| golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||
| golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= | ||||
| golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= | ||||
| golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | ||||
| golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= | ||||
| golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= | ||||
| golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue