diff --git a/acceptance/acceptance_test.go b/acceptance/acceptance_test.go index 09e425984..837b95036 100644 --- a/acceptance/acceptance_test.go +++ b/acceptance/acceptance_test.go @@ -2725,11 +2725,15 @@ include = [ "*.jar", "media/mountain.jpg", "/media/person.png", ] }) it("uses provided run image", func() { - output := pack.RunSuccessfully( - "rebase", repoName, + args := []string{ + repoName, "--run-image", runAfter, "--pull-policy", "never", - ) + } + if pack.SupportsFeature(invoke.ForceRebase) { + args = append(args, "--force") + } + output := pack.RunSuccessfully("rebase", args...) assert.Contains(output, fmt.Sprintf("Successfully rebased image '%s'", repoName)) assertImage.RunsWithOutput( @@ -2754,7 +2758,11 @@ include = [ "*.jar", "media/mountain.jpg", "/media/person.png", ] }) it("prefers the local mirror", func() { - output := pack.RunSuccessfully("rebase", repoName, "--pull-policy", "never") + args := []string{repoName, "--pull-policy", "never"} + if pack.SupportsFeature(invoke.ForceRebase) { + args = append(args, "--force") + } + output := pack.RunSuccessfully("rebase", args...) assertOutput := assertions.NewOutputAssertionManager(t, output) assertOutput.ReportsSelectingRunImageMirrorFromLocalConfig(localRunImageMirror) @@ -2809,7 +2817,11 @@ include = [ "*.jar", "media/mountain.jpg", "/media/person.png", ] }) it("uses provided run image", func() { - output := pack.RunSuccessfully("rebase", repoName, "--publish", "--run-image", runAfter) + args := []string{repoName, "--publish", "--run-image", runAfter} + if pack.SupportsFeature(invoke.ForceRebase) { + args = append(args, "--force") + } + output := pack.RunSuccessfully("rebase", args...) assertions.NewOutputAssertionManager(t, output).ReportsSuccessfulRebase(repoName) assertImage.CanBePulledFromRegistry(repoName) diff --git a/acceptance/invoke/pack.go b/acceptance/invoke/pack.go index bc87a42f7..fbb50a260 100644 --- a/acceptance/invoke/pack.go +++ b/acceptance/invoke/pack.go @@ -232,6 +232,7 @@ const ( BuildImageExtensions RunImageExtensions StackValidation + ForceRebase BuildpackFlatten ) @@ -251,6 +252,9 @@ var featureTests = map[Feature]func(i *PackInvoker) bool{ StackValidation: func(i *PackInvoker) bool { return !i.atLeast("v0.30.0") }, + ForceRebase: func(i *PackInvoker) bool { + return i.atLeast("v0.30.0") + }, BuildpackFlatten: func(i *PackInvoker) bool { return i.atLeast("v0.30.0") }, diff --git a/acceptance/testdata/pack_fixtures/report_output.txt b/acceptance/testdata/pack_fixtures/report_output.txt index 0222943d7..ae900e969 100644 --- a/acceptance/testdata/pack_fixtures/report_output.txt +++ b/acceptance/testdata/pack_fixtures/report_output.txt @@ -2,7 +2,7 @@ Pack: Version: {{ .Version }} OS/Arch: {{ .OS }}/{{ .Arch }} -Default Lifecycle Version: 0.17.0-rc.1 +Default Lifecycle Version: 0.17.0-rc.3 Supported Platform APIs: 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 0.10, 0.11, 0.12 diff --git a/go.mod b/go.mod index b912c4647..a14a30713 100644 --- a/go.mod +++ b/go.mod @@ -1,12 +1,12 @@ module github.com/buildpacks/pack require ( - github.com/BurntSushi/toml v1.2.1 + github.com/BurntSushi/toml v1.3.2 github.com/Masterminds/semver v1.5.0 github.com/Microsoft/go-winio v0.6.1 github.com/apex/log v1.9.0 - github.com/buildpacks/imgutil v0.0.0-20230428141433-24db5a78c900 - github.com/buildpacks/lifecycle v0.17.0-pre.2 + github.com/buildpacks/imgutil v0.0.0-20230626185301-726f02e4225c + github.com/buildpacks/lifecycle v0.17.0-rc.3 github.com/docker/cli v24.0.2+incompatible github.com/docker/docker v24.0.2+incompatible github.com/docker/go-connections v0.4.0 @@ -31,8 +31,8 @@ require ( github.com/spf13/cobra v1.7.0 golang.org/x/crypto v0.11.0 golang.org/x/mod v0.12.0 - golang.org/x/oauth2 v0.8.0 - golang.org/x/sync v0.2.0 + golang.org/x/oauth2 v0.9.0 + golang.org/x/sync v0.3.0 golang.org/x/term v0.10.0 golang.org/x/text v0.11.0 gopkg.in/yaml.v3 v3.0.1 @@ -40,10 +40,10 @@ require ( require ( github.com/Azure/azure-sdk-for-go v68.0.0+incompatible // indirect - github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect + github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect github.com/Azure/go-autorest v14.2.0+incompatible // indirect - github.com/Azure/go-autorest/autorest v0.11.28 // indirect - github.com/Azure/go-autorest/autorest/adal v0.9.22 // indirect + github.com/Azure/go-autorest/autorest v0.11.29 // indirect + github.com/Azure/go-autorest/autorest/adal v0.9.23 // indirect github.com/Azure/go-autorest/autorest/azure/auth v0.5.12 // indirect github.com/Azure/go-autorest/autorest/azure/cli v0.4.6 // indirect github.com/Azure/go-autorest/autorest/date v0.3.0 // indirect @@ -52,24 +52,24 @@ require ( github.com/ProtonMail/go-crypto v0.0.0-20230518184743-7afd39499903 // indirect github.com/acomagu/bufpipe v1.0.4 // indirect github.com/agext/levenshtein v1.2.3 // indirect - github.com/aws/aws-sdk-go-v2 v1.17.3 // indirect - github.com/aws/aws-sdk-go-v2/config v1.18.9 // indirect - github.com/aws/aws-sdk-go-v2/credentials v1.13.9 // indirect - github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.21 // indirect - github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27 // indirect - github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21 // indirect - github.com/aws/aws-sdk-go-v2/internal/ini v1.3.28 // indirect - github.com/aws/aws-sdk-go-v2/service/ecr v1.18.1 // indirect - github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.15.0 // indirect - github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.21 // indirect - github.com/aws/aws-sdk-go-v2/service/sso v1.12.0 // indirect - github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.0 // indirect - github.com/aws/aws-sdk-go-v2/service/sts v1.18.1 // indirect + github.com/aws/aws-sdk-go-v2 v1.18.1 // indirect + github.com/aws/aws-sdk-go-v2/config v1.18.27 // indirect + github.com/aws/aws-sdk-go-v2/credentials v1.13.26 // indirect + github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.4 // indirect + github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.34 // indirect + github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.28 // indirect + github.com/aws/aws-sdk-go-v2/internal/ini v1.3.35 // indirect + github.com/aws/aws-sdk-go-v2/service/ecr v1.18.11 // indirect + github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.16.2 // indirect + github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.28 // indirect + github.com/aws/aws-sdk-go-v2/service/sso v1.12.12 // indirect + github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.12 // indirect + github.com/aws/aws-sdk-go-v2/service/sts v1.19.2 // indirect github.com/aws/smithy-go v1.13.5 // indirect - github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20230110223219-40efa3093a22 // indirect + github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20230522190001-adf1bafd791a // indirect github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589 // indirect github.com/cloudflare/circl v1.3.3 // indirect - github.com/containerd/containerd v1.7.0 // indirect + github.com/containerd/containerd v1.7.2 // indirect github.com/containerd/stargz-snapshotter/estargz v0.14.3 // indirect github.com/containerd/typeurl v1.0.2 // indirect github.com/dimchansky/utfbom v1.1.1 // indirect @@ -81,7 +81,7 @@ require ( 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/gogo/protobuf v1.3.2 // indirect - github.com/golang-jwt/jwt/v4 v4.4.3 // indirect + github.com/golang-jwt/jwt/v4 v4.5.0 // 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 @@ -95,26 +95,26 @@ require ( github.com/kr/pretty v0.3.1 // indirect github.com/lucasb-eyer/go-colorful v1.2.0 // indirect github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.17 // indirect + github.com/mattn/go-isatty v0.0.19 // indirect github.com/mattn/go-runewidth v0.0.14 // indirect github.com/mitchellh/go-homedir v1.1.0 // indirect - github.com/moby/buildkit v0.11.4 // indirect + github.com/moby/buildkit v0.11.6 // indirect github.com/moby/patternmatcher v0.5.0 // indirect github.com/moby/sys/sequential v0.5.0 // indirect - github.com/moby/term v0.0.0-20221205130635-1aeaba878587 // indirect + github.com/moby/term v0.5.0 // indirect github.com/morikuni/aec v1.0.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect - github.com/opencontainers/runc v1.1.5 // indirect + github.com/opencontainers/runc v1.1.7 // indirect github.com/opencontainers/selinux v1.11.0 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect github.com/rivo/uniseg v0.4.3 // indirect github.com/sergi/go-diff v1.2.0 // indirect - github.com/sirupsen/logrus v1.9.0 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect github.com/skeema/knownhosts v1.1.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/vbatts/tar-split v0.11.3 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect - golang.org/x/net v0.10.0 // indirect + golang.org/x/net v0.11.0 // indirect golang.org/x/sys v0.10.0 // indirect golang.org/x/tools v0.9.1 // indirect google.golang.org/appengine v1.6.7 // indirect diff --git a/go.sum b/go.sum index 065f09bf4..4d55f1f13 100644 --- a/go.sum +++ b/go.sum @@ -1,16 +1,17 @@ github.com/AdaLogics/go-fuzz-headers v0.0.0-20230106234847-43070de90fa1 h1:EKPd1INOIyr5hWOWhvpmQpY6tKjeG0hT1s3AMC/9fic= github.com/Azure/azure-sdk-for-go v68.0.0+incompatible h1:fcYLmCpyNYRnvJbPerq7U0hS+6+I79yEDJBqVNcqUzU= github.com/Azure/azure-sdk-for-go v68.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= +github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-autorest v14.2.0+incompatible h1:V5VMDjClD3GiElqLWO7mz2MxNAK/vTfRHdAubSIPRgs= github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest/autorest v0.11.24/go.mod h1:G6kyRlFnTuSbEYkQGawPfsCswgme4iYf6rfSKUDzbCc= -github.com/Azure/go-autorest/autorest v0.11.28 h1:ndAExarwr5Y+GaHE6VCaY1kyS/HwwGGyuimVhWsHOEM= -github.com/Azure/go-autorest/autorest v0.11.28/go.mod h1:MrkzG3Y3AH668QyF9KRk5neJnGgmhQ6krbhR8Q5eMvA= +github.com/Azure/go-autorest/autorest v0.11.29 h1:I4+HL/JDvErx2LjyzaVxllw2lRDB5/BT2Bm4g20iqYw= +github.com/Azure/go-autorest/autorest v0.11.29/go.mod h1:ZtEzC4Jy2JDrZLxvWs8LrBWEBycl1hbT1eknI8MtfAs= github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= -github.com/Azure/go-autorest/autorest/adal v0.9.22 h1:/GblQdIudfEM3AWWZ0mrYJQSd7JS4S/Mbzh6F0ov0Xc= github.com/Azure/go-autorest/autorest/adal v0.9.22/go.mod h1:XuAbAEUv2Tta//+voMI038TrJBqjKam0me7qR+L8Cmk= +github.com/Azure/go-autorest/autorest/adal v0.9.23 h1:Yepx8CvFxwNKpH6ja7RZ+sKX+DWYNldbLiALMC3BTz8= +github.com/Azure/go-autorest/autorest/adal v0.9.23/go.mod h1:5pcMqFkdPhviJdlEy3kC/v1ZLnQl0MH6XA5YCcMhy4c= github.com/Azure/go-autorest/autorest/azure/auth v0.5.12 h1:wkAZRgT/pn8HhFyzfe9UnqOjJYqlembgCTi72Bm/xKk= github.com/Azure/go-autorest/autorest/azure/auth v0.5.12/go.mod h1:84w/uV8E37feW2NCJ08uT9VBfjfUHpgLVnG2InYD6cg= github.com/Azure/go-autorest/autorest/azure/cli v0.4.5/go.mod h1:ADQAXrkgm7acgWVUNamOgh8YNrv4p27l3Wc55oVfpzg= @@ -25,15 +26,15 @@ github.com/Azure/go-autorest/logger v0.2.1 h1:IG7i4p/mDa2Ce4TRyAO8IHnVhAVF3RFU+Z github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= github.com/Azure/go-autorest/tracing v0.6.0 h1:TYi4+3m5t6K48TGI9AUdb+IzbnSxvnvUMfuitfgcfuo= github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.2.1 h1:9F2/+DoOYIOksmaJFPw1tGFy1eDnIJXg+UHjuD8lTak= github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/Masterminds/semver v1.5.0 h1:H65muMkzWKEuNDnfl9d70GUjFniHKHRbFPGBuZ3QEww= github.com/Masterminds/semver v1.5.0/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= 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/Microsoft/hcsshim v0.10.0-rc.7 h1:HBytQPxcv8Oy4244zbQbe6hnOnx544eL5QPUqhJldz8= +github.com/Microsoft/hcsshim v0.10.0-rc.8 h1:YSZVvlIIDD1UxQpJp0h+dnpLUw+TrY0cx8obKsp3bek= github.com/ProtonMail/go-crypto v0.0.0-20230518184743-7afd39499903 h1:ZK3C5DtzV2nVAQTx5S5jQvMeDqWtD1By5mOoyY/xJek= github.com/ProtonMail/go-crypto v0.0.0-20230518184743-7afd39499903/go.mod h1:8TI4H3IbrackdNgv+92dI+rhpCaLqM0IfpgCgenFvRE= github.com/acomagu/bufpipe v1.0.4 h1:e3H4WUzM3npvo5uv95QuJM3cQspFNtFBzvJ2oNjKIDQ= @@ -48,67 +49,70 @@ github.com/aphistic/golf v0.0.0-20180712155816-02c07f170c5a/go.mod h1:3NqKYiepwy github.com/aphistic/sweet v0.2.0/go.mod h1:fWDlIh/isSE9n6EPsRmC0det+whmX6dJid3stzu0Xys= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= github.com/aws/aws-sdk-go v1.20.6/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= -github.com/aws/aws-sdk-go-v2 v1.17.3 h1:shN7NlnVzvDUgPQ+1rLMSxY8OWRNDRYtiqe0p/PgrhY= -github.com/aws/aws-sdk-go-v2 v1.17.3/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= -github.com/aws/aws-sdk-go-v2/config v1.18.8/go.mod h1:5XCmmyutmzzgkpk/6NYTjeWb6lgo9N170m1j6pQkIBs= -github.com/aws/aws-sdk-go-v2/config v1.18.9 h1:pd+QUO1dvro6vGOuhgglJV6adGunU95xSTSzsQGhKpY= -github.com/aws/aws-sdk-go-v2/config v1.18.9/go.mod h1:2Lx9yaA/McDeQS8ft+edKrmOd5ry1v1euFQ+oGwUxsM= -github.com/aws/aws-sdk-go-v2/credentials v1.13.8/go.mod h1:lVa4OHbvgjVot4gmh1uouF1ubgexSCN92P6CJQpT0t8= -github.com/aws/aws-sdk-go-v2/credentials v1.13.9 h1:oxM/C8eXGsiHH+u0gZGo1++QTFPf+N5MUb1tfaaQMpU= -github.com/aws/aws-sdk-go-v2/credentials v1.13.9/go.mod h1:45DrDZTok50mEx4Uw59ym7n11Oy7G4gt0Pez2Z4ktAA= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.21 h1:j9wi1kQ8b+e0FBVHxCqCGo4kxDU175hoDHcWAi0sauU= -github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.12.21/go.mod h1:ugwW57Z5Z48bpvUyZuaPy4Kv+vEfJWnIrky7RmkBvJg= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27 h1:I3cakv2Uy1vNmmhRQmFptYDxOvBnwCdNwyw63N0RaRU= -github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.27/go.mod h1:a1/UpzeyBBerajpnP5nGZa9mGzsBn5cOKxm6NWQsvoI= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21 h1:5NbbMrIzmUn/TXFqAle6mgrH5m9cOvMLRGL7pnG8tRE= -github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.21/go.mod h1:+Gxn8jYn5k9ebfHEqlhrMirFjSW0v0C9fI+KN5vk2kE= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.28 h1:KeTxcGdNnQudb46oOl4d90f2I33DF/c6q3RnZAmvQdQ= -github.com/aws/aws-sdk-go-v2/internal/ini v1.3.28/go.mod h1:yRZVr/iT0AqyHeep00SZ4YfBAKojXz08w3XMBscdi0c= -github.com/aws/aws-sdk-go-v2/service/ecr v1.18.0/go.mod h1:9yGOFsa2OcdyePojE89xNGtdBusTyc8ocjpiuFtFc0g= -github.com/aws/aws-sdk-go-v2/service/ecr v1.18.1 h1:fZNQcqqyAcb34XZ6uNuDlmKIaZKRGdoXYfK5WLRjBbQ= -github.com/aws/aws-sdk-go-v2/service/ecr v1.18.1/go.mod h1:9yGOFsa2OcdyePojE89xNGtdBusTyc8ocjpiuFtFc0g= -github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.15.0 h1:nZ/878IgQMYFd0RIYEoUYnr9kwyDu2GcExWmyVIb7Xo= -github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.15.0/go.mod h1:bBy8YiBBFd549EeySGjb0vHWg80XeMSigv/dr/2HFjE= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.21 h1:5C6XgTViSb0bunmU57b3CT+MhxULqHH2721FVA+/kDM= -github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.21/go.mod h1:lRToEJsn+DRA9lW4O9L9+/3hjTkUzlzyzHqn8MTds5k= -github.com/aws/aws-sdk-go-v2/service/sso v1.12.0 h1:/2gzjhQowRLarkkBOGPXSRnb8sQ2RVsjdG1C/UliK/c= -github.com/aws/aws-sdk-go-v2/service/sso v1.12.0/go.mod h1:wo/B7uUm/7zw/dWhBJ4FXuw1sySU5lyIhVg1Bu2yL9A= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.0 h1:Jfly6mRxk2ZOSlbCvZfKNS7TukSx1mIzhSsqZ/IGSZI= -github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.0/go.mod h1:TZSH7xLO7+phDtViY/KUp9WGCJMQkLJ/VpgkTFd5gh8= -github.com/aws/aws-sdk-go-v2/service/sts v1.18.0/go.mod h1:+lGbb3+1ugwKrNTWcf2RT05Xmp543B06zDFTwiTLp7I= -github.com/aws/aws-sdk-go-v2/service/sts v1.18.1 h1:q3xG67qnKp1gsYSJY5AtTvFKY2IlmGPGrTw/Wy8EjeQ= -github.com/aws/aws-sdk-go-v2/service/sts v1.18.1/go.mod h1:+lGbb3+1ugwKrNTWcf2RT05Xmp543B06zDFTwiTLp7I= +github.com/aws/aws-sdk-go-v2 v1.18.0/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= +github.com/aws/aws-sdk-go-v2 v1.18.1 h1:+tefE750oAb7ZQGzla6bLkOwfcQCEtC5y2RqoqCeqKo= +github.com/aws/aws-sdk-go-v2 v1.18.1/go.mod h1:uzbQtefpm44goOPmdKyAlXSNcwlRgF3ePWVW6EtJvvw= +github.com/aws/aws-sdk-go-v2/config v1.18.22/go.mod h1:mN7Li1wxaPxSSy4Xkr6stFuinJGf3VZW3ZSNvO0q6sI= +github.com/aws/aws-sdk-go-v2/config v1.18.27 h1:Az9uLwmssTE6OGTpsFqOnaGpLnKDqNYOJzWuC6UAYzA= +github.com/aws/aws-sdk-go-v2/config v1.18.27/go.mod h1:0My+YgmkGxeqjXZb5BYme5pc4drjTnM+x1GJ3zv42Nw= +github.com/aws/aws-sdk-go-v2/credentials v1.13.21/go.mod h1:90Dk1lJoMyspa/EDUrldTxsPns0wn6+KpRKpdAWc0uA= +github.com/aws/aws-sdk-go-v2/credentials v1.13.26 h1:qmU+yhKmOCyujmuPY7tf5MxR/RKyZrOPO3V4DobiTUk= +github.com/aws/aws-sdk-go-v2/credentials v1.13.26/go.mod h1:GoXt2YC8jHUBbA4jr+W3JiemnIbkXOfxSXcisUsZ3os= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.3/go.mod h1:4Q0UFP0YJf0NrsEuEYHpM9fTSEVnD16Z3uyEF7J9JGM= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.4 h1:LxK/bitrAr4lnh9LnIS6i7zWbCOdMsfzKFBI6LUCS0I= +github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.13.4/go.mod h1:E1hLXN/BL2e6YizK1zFlYd8vsfi2GTjbjBazinMmeaM= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.33/go.mod h1:7i0PF1ME/2eUPFcjkVIwq+DOygHEoK92t5cDqNgYbIw= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.34 h1:A5UqQEmPaCFpedKouS4v+dHCTUo2sKqhoKO9U5kxyWo= +github.com/aws/aws-sdk-go-v2/internal/configsources v1.1.34/go.mod h1:wZpTEecJe0Btj3IYnDx/VlUzor9wm3fJHyvLpQF0VwY= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.27/go.mod h1:UrHnn3QV/d0pBZ6QBAEQcqFLf8FAzLmoUfPVIueOvoM= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.28 h1:srIVS45eQuewqz6fKKu6ZGXaq6FuFg5NzgQBAM6g8Y4= +github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.4.28/go.mod h1:7VRpKQQedkfIEXb4k52I7swUnZP0wohVajJMRn3vsUw= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.34/go.mod h1:Etz2dj6UHYuw+Xw830KfzCfWGMzqvUTCjUj5b76GVDc= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.35 h1:LWA+3kDM8ly001vJ1X1waCuLJdtTl48gwkPKWy9sosI= +github.com/aws/aws-sdk-go-v2/internal/ini v1.3.35/go.mod h1:0Eg1YjxE0Bhn56lx+SHJwCzhW+2JGtizsrx+lCqrfm0= +github.com/aws/aws-sdk-go-v2/service/ecr v1.18.10/go.mod h1:Ce1q2jlNm8BVpjLaOnwnm5v2RClAbK6txwPljFzyW6c= +github.com/aws/aws-sdk-go-v2/service/ecr v1.18.11 h1:wlTgmb/sCmVRJrN5De3CiHj4v/bTCgL5+qpdEd0CPtw= +github.com/aws/aws-sdk-go-v2/service/ecr v1.18.11/go.mod h1:Ce1q2jlNm8BVpjLaOnwnm5v2RClAbK6txwPljFzyW6c= +github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.16.1/go.mod h1:uHtRE7aqXNmpeYL+7Ec7LacH5zC9+w2T5MBOeEKDdu0= +github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.16.2 h1:yflJrGmi1pXtP9lOpOeaNZyc0vXnJTuP2sor3nJcGGo= +github.com/aws/aws-sdk-go-v2/service/ecrpublic v1.16.2/go.mod h1:uHtRE7aqXNmpeYL+7Ec7LacH5zC9+w2T5MBOeEKDdu0= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.27/go.mod h1:EOwBD4J4S5qYszS5/3DpkejfuK+Z5/1uzICfPaZLtqw= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.28 h1:bkRyG4a929RCnpVSTvLM2j/T4ls015ZhhYApbmYs15s= +github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.9.28/go.mod h1:jj7znCIg05jXlaGBlFMGP8+7UN3VtCkRBG2spnmRQkU= +github.com/aws/aws-sdk-go-v2/service/sso v1.12.9/go.mod h1:ouy2P4z6sJN70fR3ka3wD3Ro3KezSxU6eKGQI2+2fjI= +github.com/aws/aws-sdk-go-v2/service/sso v1.12.12 h1:nneMBM2p79PGWBQovYO/6Xnc2ryRMw3InnDJq1FHkSY= +github.com/aws/aws-sdk-go-v2/service/sso v1.12.12/go.mod h1:HuCOxYsF21eKrerARYO6HapNeh9GBNq7fius2AcwodY= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.9/go.mod h1:AFvkxc8xfBe8XA+5St5XIHHrQQtkxqrRincx4hmMHOk= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.12 h1:2qTR7IFk7/0IN/adSFhYu9Xthr0zVFTgBrmPldILn80= +github.com/aws/aws-sdk-go-v2/service/ssooidc v1.14.12/go.mod h1:E4VrHCPzmVB/KFXtqBGKb3c8zpbNBgKe3fisDNLAW5w= +github.com/aws/aws-sdk-go-v2/service/sts v1.18.10/go.mod h1:BgQOMsg8av8jset59jelyPW7NoZcZXLVpDsXunGDrk8= +github.com/aws/aws-sdk-go-v2/service/sts v1.19.2 h1:XFJ2Z6sNUUcAz9poj+245DMkrHE4h2j5I9/xD50RHfE= +github.com/aws/aws-sdk-go-v2/service/sts v1.19.2/go.mod h1:dp0yLPsLBOi++WTxzCjA/oZqi6NPIhoR+uF7GeMU9eg= github.com/aws/smithy-go v1.13.5 h1:hgz0X/DX0dGqTYpGALqXJoRKRj5oQ7150i5FdTePzO8= github.com/aws/smithy-go v1.13.5/go.mod h1:Tg+OJXh4MB2R/uN61Ko2f6hTZwB/ZYGOtib8J3gBHzA= -github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20230110223219-40efa3093a22 h1:Sq2n1xnF4uuEGNUVOLKHZXoL0CVdxIQOQTEZ7EW762Q= -github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20230110223219-40efa3093a22/go.mod h1:G93AFVEAkW0+tabIqmQCLN/r6sZgP4pFxfoiEzDeQNM= +github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20230522190001-adf1bafd791a h1:rW+dV12c0WD3+O4Zs8Qt4+oqnr8ecXeyg8g3yB73ZKA= +github.com/awslabs/amazon-ecr-credential-helper/ecr-login v0.0.0-20230522190001-adf1bafd791a/go.mod h1:1mvdZLjy932pV2fhj1jjwUSHaF5Ogq2gk5bvi/6ngEU= github.com/aybabtme/rgbterm v0.0.0-20170906152045-cc83f3b3ce59/go.mod h1:q/89r3U2H7sSsE2t6Kca0lfwTK8JdoNGS/yzM/4iH5I= -github.com/buildpacks/imgutil v0.0.0-20230428141433-24db5a78c900 h1:f6SrGzyotuJxn+BuIQC3ZBXQiNKgeXhWZLnAJEavaxI= -github.com/buildpacks/imgutil v0.0.0-20230428141433-24db5a78c900/go.mod h1:/xuDxsWO9JE/s95g+OfXB8C+G5TeHznq7vURY2s1yPM= -github.com/buildpacks/lifecycle v0.17.0-pre.2 h1:y6QUW2DWw6lgcaskFBA8ABt8xG+cgJfr0v20pr2RjjU= -github.com/buildpacks/lifecycle v0.17.0-pre.2/go.mod h1:YZMUvNOkwv7AsARB81GqcHANM4pLu4wP/qe5N4Kzmxs= +github.com/buildpacks/imgutil v0.0.0-20230626185301-726f02e4225c h1:HlRuSz+JGAzudNtNCfHIzXe0AEuHX6Vx8uZgmjvX02o= +github.com/buildpacks/imgutil v0.0.0-20230626185301-726f02e4225c/go.mod h1:mBG5M3GJW5nknCEOOqtmMHyPYnSpw/5GEiciuYU/COw= +github.com/buildpacks/lifecycle v0.17.0-rc.3 h1:GAo6Gv2hFbhjf0JX7M2khS8jd6vU8I9oCkheIhHQwxg= +github.com/buildpacks/lifecycle v0.17.0-rc.3/go.mod h1:WFzcNp1WG4bwgHuXtKxMg4tdU3AguL44ZlP3knANeVs= github.com/bwesterb/go-ristretto v1.2.0/go.mod h1:fUIoIZaG73pV5biE2Blr2xEzDoMj7NFEuV9ekS419A0= -github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589 h1:krfRl01rzPzxSxyLyrChD+U+MzsBXbm0OwYYB67uF+4= github.com/chrismellard/docker-credential-acr-env v0.0.0-20230304212654-82a0ddb27589/go.mod h1:OuDyvmLnMCwa2ep4Jkm6nyA0ocJuZlGyk2gGseVzERM= -github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= github.com/cloudflare/circl v1.1.0/go.mod h1:prBCrKB9DV4poKZY1l9zBXg2QJY7mvgRvtMxxK7fi4I= github.com/cloudflare/circl v1.3.3 h1:fE/Qz0QdIGqeWfnwq0RE0R7MI51s0M2E4Ga9kq5AEMs= github.com/cloudflare/circl v1.3.3/go.mod h1:5XYMA4rFBvNIrhs50XuiBJ15vF2pZn4nnUKZrLbUZFA= -github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= -github.com/containerd/containerd v1.7.0 h1:G/ZQr3gMZs6ZT0qPUZ15znx5QSdQdASW11nXTLTM2Pg= -github.com/containerd/containerd v1.7.0/go.mod h1:QfR7Efgb/6X2BDpTPJRvPTYDE9rsF0FsXX9J8sIs/sc= +github.com/containerd/containerd v1.7.2 h1:UF2gdONnxO8I6byZXDi5sXWiWvlW3D/sci7dTQimEJo= +github.com/containerd/containerd v1.7.2/go.mod h1:afcz74+K10M/+cjGHIVQrCt3RAQhUSCAjJ9iMYhhkuI= github.com/containerd/stargz-snapshotter/estargz v0.14.3 h1:OqlDCK3ZVUO6C3B/5FSkDwbkEETK84kQgEeFwDC+62k= github.com/containerd/stargz-snapshotter/estargz v0.14.3/go.mod h1:KY//uOCIkSuNAHhJogcZtrNHdKrA99/FCCRjE3HD36o= github.com/containerd/typeurl v1.0.2 h1:Chlt8zIieDbzQFzXzAeBEF92KhExuE4p9p92/QmY7aY= github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= 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/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/cyphar/filepath-securejoin v0.2.3 h1:YX6ebbZCZP7VkM3scTTokDgBL2TY741X51MTk3ycuNI= -github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= 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= @@ -125,7 +129,6 @@ github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryef github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= github.com/docker/go-connections v0.4.0 h1:El9xVISelRB7BuFusrZozjnkIM5YnzCViNKohAFqRJQ= github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= -github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= @@ -134,7 +137,6 @@ github.com/elazarl/goproxy v0.0.0-20221015165544-a0805db90819 h1:RIB4cRk+lBqKK3O github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc= github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= github.com/gdamore/encoding v1.0.0 h1:+7OoQ1Bc6eTm5niUzBa0Ctsh6JbMW6Ra+YNuAtDBdko= github.com/gdamore/encoding v1.0.0/go.mod h1:alR0ol34c49FCSBLjhosxzcPHQbf2trDkoo5dl+VrEg= @@ -154,14 +156,12 @@ github.com/go-git/go-git/v5 v5.7.0/go.mod h1:coJHKEOk5kUClpsNlXrUvPrDxY3w3gjHvhc github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= github.com/go-logr/logr v1.2.4 h1:g01GSCwiDw2xSZfjJ2/T9M+S6pFdcNtFYsp+Y43HYDQ= github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572 h1:tfuBGBXKqDEevZMzYi5KSi8KkcZtzBcTgAUUtapy0OI= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= -github.com/golang-jwt/jwt/v4 v4.4.3 h1:Hxl6lhQFj4AnOX6MLrsCb/+7tCj7DxP7VA+2rDIq5AU= -github.com/golang-jwt/jwt/v4 v4.4.3/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= 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.6.0 h1:ErTB+efbowRARo13NNdxyJji2egdxLGQhRaY+DUumQc= @@ -173,7 +173,6 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS 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/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.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= @@ -233,8 +232,8 @@ github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovk github.com/mattn/go-isatty v0.0.5/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng= -github.com/mattn/go-isatty v0.0.17/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-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-runewidth v0.0.14 h1:+xnbZSEeDbOIg5/mE6JF0w6n9duR1l3/WmbinWVwUuU= github.com/mattn/go-runewidth v0.0.14/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= @@ -243,18 +242,16 @@ github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/ioprogress v0.0.0-20180201004757-6a23b12fa88e h1:Qa6dnn8DlasdXRnacluu8HzPts0S1I9zvvUPDbBnXFI= github.com/mitchellh/ioprogress v0.0.0-20180201004757-6a23b12fa88e/go.mod h1:waEya8ee1Ro/lgxpVhkJI4BVASzkm3UZqkx/cFJiYHM= -github.com/moby/buildkit v0.11.4 h1:mleVHr+n7HUD65QNUkgkT3d8muTzhYUoHE9FM3Ej05s= -github.com/moby/buildkit v0.11.4/go.mod h1:P5Qi041LvCfhkfYBHry+Rwoo3Wi6H971J2ggE+PcIoo= +github.com/moby/buildkit v0.11.6 h1:VYNdoKk5TVxN7k4RvZgdeM4GOyRvIi4Z8MXOY7xvyUs= +github.com/moby/buildkit v0.11.6/go.mod h1:GCqKfHhz+pddzfgaR7WmHVEE3nKKZMMDPpK8mh3ZLv4= github.com/moby/patternmatcher v0.5.0 h1:YCZgJOeULcxLw1Q+sVR636pmS7sPEn1Qo2iAN6M7DBo= github.com/moby/patternmatcher v0.5.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= -github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= -github.com/moby/term v0.0.0-20221205130635-1aeaba878587 h1:HfkjXDfhgVaN5rmueG8cL8KKeFNecRCXFhaJ2qZ5SKA= -github.com/moby/term v0.0.0-20221205130635-1aeaba878587/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= +github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= -github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/onsi/ginkgo v1.6.0 h1:Ix8l273rp3QzYgXSR+c8d1fTG7UPgYkOSELPhiY/YGw= github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= @@ -266,10 +263,8 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0-rc3 h1:fzg1mXZFj8YdPeNkRXMg+zb88BFV0Ys52cJydRwBkb8= github.com/opencontainers/image-spec v1.1.0-rc3/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8= -github.com/opencontainers/runc v1.1.5 h1:L44KXEpKmfWDcS02aeGm8QNTFXTo2D+8MYGDIJ/GDEs= -github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= -github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= +github.com/opencontainers/runc v1.1.7 h1:y2EZDS8sNng4Ksf0GUYNhKbTShZJPJg1FiXJNH/uoCk= +github.com/opencontainers/runc v1.1.7/go.mod h1:CbUumNnWCuTGFukNXahoo/RFBZvDAgRh/smNYNOhA50= github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU= github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= @@ -290,21 +285,18 @@ github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUc github.com/rogpeppe/fastuuid v1.1.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI= github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs= github.com/sclevine/spec v1.4.0 h1:z/Q9idDcay5m5irkZ28M7PtQM4aOISzOpj4bUPkDee8= github.com/sclevine/spec v1.4.0/go.mod h1:LvpgJaFyvQzRvc1kaDs0bulYwzC70PbiYjC4QnFHkOM= -github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo= github.com/sergi/go-diff v1.2.0 h1:XU+rvMAioB0UC3q1MFrIQy4Vo5/4VsRDQQXHsEya6xQ= github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= -github.com/sirupsen/logrus v1.9.0 h1:trlNQbNUG3OdDrDil03MCb1H2o9nJ1x4/5LYw7byDE0= github.com/sirupsen/logrus v1.9.0/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skeema/knownhosts v1.1.1 h1:MTk78x9FPgDFVFkDLTrsnnfCJl7g1C/nnKvePgrIngE= github.com/skeema/knownhosts v1.1.1/go.mod h1:g4fPeYpque7P0xefxtGzV81ihjC8sX2IqpAoNkjxbMo= github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= @@ -325,8 +317,8 @@ github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/ 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.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.8.2 h1:+h33VjcLVPDHtOdpUCuF+7gSuG3yGIftsP1YvFihtJ8= -github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/stretchr/testify v1.8.2/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.3 h1:RP3t2pwF7cMEbC1dqtB6poj3niw/9gnV4Cjg5oW5gtY= github.com/tj/assert v0.0.0-20171129193455-018094318fb0/go.mod h1:mZ9/Rh9oLWpLLDRpvE+3b7gP/C2YyLFYxNmcLnPTMe0= github.com/tj/assert v0.0.3 h1:Df/BlaZ20mq6kuai7f5z2TvPFiwC3xaWJSDQNiIS3Rk= github.com/tj/assert v0.0.3/go.mod h1:Ne6X72Q+TB1AteidzQncjw9PabbMp4PBMZ1k+vd1Pvk= @@ -334,12 +326,9 @@ github.com/tj/go-buffer v1.1.0/go.mod h1:iyiJpfFcR2B9sXu7KvjbT9fpM4mOelRSDTbntVj github.com/tj/go-elastic v0.0.0-20171221160941-36157cbbebc2/go.mod h1:WjeM0Oo1eNAjXGDx2yma7uG2XoyRZTq1uv3M/o7imD0= github.com/tj/go-kinesis v0.0.0-20171128231115-08b17f58cb1b/go.mod h1:/yhzCV0xPfx6jb1bBgRFjl5lytqVqZXEaeqWP8lTEao= github.com/tj/go-spin v1.1.0/go.mod h1:Mg1mzmePZm4dva8Qz60H2lHwmJ2loum4VIrLgVnKwh4= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.12/go.mod h1:sSBEIC79qR6OvcmsD4U3KABeOTxDqQtdDnaFuUN30b8= github.com/vbatts/tar-split v0.11.3 h1:hLFqsOLQ1SsppQNTMpkpPXClLDfC2A3Zgy9OUU+RVck= github.com/vbatts/tar-split v0.11.3/go.mod h1:9QlHN18E+fEH7RdG+QAJJcuya3rqT7eXSTY7wGrAokY= -github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= -github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= 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/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -354,6 +343,7 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= 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.6.0/go.mod h1:OFC/31mSvZgRz0V1QTNCzfAI1aIRzbiufJtkMIlEp58= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= golang.org/x/crypto v0.11.0 h1:6Ewdq3tDic1mg5xRO4milcWCfMVQhI4NkqWWvqejpuA= golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= @@ -371,18 +361,17 @@ golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR golang.org/x/net v0.0.0-20190620200207-3b0461eec859/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-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -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-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= 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.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.10.0 h1:X2//UzNDwYmtCLn7To6G58Wr6f5ahEAQgKNzv9Y951M= -golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +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/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.8.0 h1:6dkIjl3j3LtZ/O3sTgZTMsLKSftL/B8Zgq4huOIIUu8= -golang.org/x/oauth2 v0.8.0/go.mod h1:yr7u4HXZRm1R1kBWqr/xKNqewf0plRYoB7sla+BCIXE= +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-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -390,16 +379,14 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/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.2.0 h1:PUR+T4wwASmuSTYdKjYHI5TD22Wy5ogLU5qZCOLxBrI= -golang.org/x/sync v0.2.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190529164535-6a60838ec259/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191115151921-52ab43148777/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-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -411,10 +398,7 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210819135213-f52c844e1c1c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20211007075335-d3039528d8ac/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/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= @@ -463,7 +447,6 @@ google.golang.org/appengine v1.6.7 h1:FZR1q0exgwxzPzp/aF+VccGrSfxfPpkBqjIIEq3ru6 google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= 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.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.30.0 h1:kPPoIgf3TsEvrm0PFe15JQ+570QVxYzEvvHqChK+cng= google.golang.org/protobuf v1.30.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/internal/build/container_ops.go b/internal/build/container_ops.go index 1c12c5bab..bab2efd32 100644 --- a/internal/build/container_ops.go +++ b/internal/build/container_ops.go @@ -9,7 +9,7 @@ import ( "runtime" "github.com/BurntSushi/toml" - "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/docker/docker/api/types" dcontainer "github.com/docker/docker/api/types/container" "github.com/docker/docker/errdefs" @@ -234,7 +234,7 @@ func writeToml(ctrClient DockerClient, ctx context.Context, data interface{}, ds } // WriteProjectMetadata writes a `project-metadata.toml` based on the ProjectMetadata provided to the destination path. -func WriteProjectMetadata(dstPath string, metadata platform.ProjectMetadata, os string) ContainerOperation { +func WriteProjectMetadata(dstPath string, metadata files.ProjectMetadata, os string) ContainerOperation { return func(ctrClient DockerClient, ctx context.Context, containerID string, stdout, stderr io.Writer) error { return writeToml(ctrClient, ctx, metadata, dstPath, containerID, os, stdout, stderr) } diff --git a/internal/build/container_ops_test.go b/internal/build/container_ops_test.go index 72691b67f..281437420 100644 --- a/internal/build/container_ops_test.go +++ b/internal/build/container_ops_test.go @@ -12,7 +12,7 @@ import ( "strings" "testing" - "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/docker/docker/api/types" dcontainer "github.com/docker/docker/api/types/container" "github.com/docker/docker/api/types/mount" @@ -564,8 +564,8 @@ drwxrwxrwx 2 123 456 (.*) some-vol h.AssertNil(t, err) defer cleanupContainer(ctx, ctr.ID) - writeOp := build.WriteProjectMetadata(p, platform.ProjectMetadata{ - Source: &platform.ProjectSource{ + writeOp := build.WriteProjectMetadata(p, files.ProjectMetadata{ + Source: &files.ProjectSource{ Type: "project", Version: map[string]interface{}{ "declared": "1.0.2", @@ -609,8 +609,8 @@ drwxrwxrwx 2 123 456 (.*) some-vol h.AssertNil(t, err) defer cleanupContainer(ctx, ctr.ID) - writeOp := build.WriteProjectMetadata(p, platform.ProjectMetadata{ - Source: &platform.ProjectSource{ + writeOp := build.WriteProjectMetadata(p, files.ProjectMetadata{ + Source: &files.ProjectSource{ Type: "project", Version: map[string]interface{}{ "declared": "1.0.2", diff --git a/internal/build/lifecycle_execution.go b/internal/build/lifecycle_execution.go index 913d866fb..812b079b4 100644 --- a/internal/build/lifecycle_execution.go +++ b/internal/build/lifecycle_execution.go @@ -8,11 +8,10 @@ import ( "path/filepath" "strconv" - "github.com/buildpacks/pack/pkg/cache" - "github.com/BurntSushi/toml" "github.com/buildpacks/lifecycle/api" "github.com/buildpacks/lifecycle/auth" + "github.com/buildpacks/lifecycle/platform/files" "github.com/google/go-containerregistry/pkg/authn" "github.com/google/go-containerregistry/pkg/name" "github.com/pkg/errors" @@ -21,6 +20,7 @@ import ( "github.com/buildpacks/pack/internal/builder" "github.com/buildpacks/pack/internal/paths" "github.com/buildpacks/pack/internal/style" + "github.com/buildpacks/pack/pkg/cache" "github.com/buildpacks/pack/pkg/logging" ) @@ -843,17 +843,8 @@ func (l *LifecycleExecution) hasExtensionsForBuild() bool { return len(fis) > 0 } -// FIXME: when lifecycle 0.17.0 is released, we can bump the library version imported by pack and use platform.AnalyzedMetadata directly -type analyzedMD struct { - RunImage *runImage `toml:"run-image,omitempty"` -} -type runImage struct { - Extend bool `toml:"extend,omitempty"` - Image string `toml:"image"` -} - func (l *LifecycleExecution) hasExtensionsForRun() bool { - var amd analyzedMD + var amd files.Analyzed if _, err := toml.DecodeFile(filepath.Join(l.tmpDir, "analyzed.toml"), &amd); err != nil { l.logger.Warnf("failed to parse analyzed.toml file, assuming no run image extensions: %s", err) return false @@ -867,12 +858,12 @@ func (l *LifecycleExecution) hasExtensionsForRun() bool { } func (l *LifecycleExecution) runImageAfterExtensions() string { - var amd analyzedMD + var amd files.Analyzed if _, err := toml.DecodeFile(filepath.Join(l.tmpDir, "analyzed.toml"), &amd); err != nil { l.logger.Warnf("failed to parse analyzed.toml file, assuming run image did not change: %s", err) return l.opts.RunImage } - if amd.RunImage == nil { + if amd.RunImage == nil || amd.RunImage.Image == "" { // this shouldn't be reachable l.logger.Warnf("found no run image in analyzed.toml file, assuming run image did not change...") return l.opts.RunImage diff --git a/internal/build/lifecycle_execution_test.go b/internal/build/lifecycle_execution_test.go index 0fd5e59b5..b5ae55c23 100644 --- a/internal/build/lifecycle_execution_test.go +++ b/internal/build/lifecycle_execution_test.go @@ -11,12 +11,11 @@ import ( "testing" "time" - "github.com/buildpacks/pack/pkg/cache" - "github.com/BurntSushi/toml" "github.com/apex/log" ifakes "github.com/buildpacks/imgutil/fakes" "github.com/buildpacks/lifecycle/api" + "github.com/buildpacks/lifecycle/platform/files" "github.com/docker/docker/api/types/container" "github.com/docker/docker/client" "github.com/google/go-containerregistry/pkg/name" @@ -24,10 +23,10 @@ import ( "github.com/sclevine/spec" "github.com/sclevine/spec/report" - "github.com/buildpacks/pack/internal/paths" - "github.com/buildpacks/pack/internal/build" "github.com/buildpacks/pack/internal/build/fakes" + "github.com/buildpacks/pack/internal/paths" + "github.com/buildpacks/pack/pkg/cache" "github.com/buildpacks/pack/pkg/dist" "github.com/buildpacks/pack/pkg/logging" h "github.com/buildpacks/pack/testhelpers" @@ -139,14 +138,7 @@ func testLifecycleExecution(t *testing.T, when spec.G, it spec.S) { _, err = os.Create(filepath.Join(tmpDir, "build", "some-dockerfile")) h.AssertNil(t, err) } - type runImage struct { - Extend bool `toml:"extend,omitempty"` - Image string `toml:"image"` - } - type analyzedMD struct { - RunImage *runImage `toml:"run-image,omitempty"` - } - amd := analyzedMD{RunImage: &runImage{ + amd := files.Analyzed{RunImage: &files.RunImage{ Extend: false, Image: "", }} diff --git a/internal/build/lifecycle_executor.go b/internal/build/lifecycle_executor.go index ecc862c3d..2f7dce541 100644 --- a/internal/build/lifecycle_executor.go +++ b/internal/build/lifecycle_executor.go @@ -6,15 +6,14 @@ import ( "os" "time" - "github.com/buildpacks/pack/pkg/cache" - "github.com/buildpacks/imgutil" "github.com/buildpacks/lifecycle/api" - "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/google/go-containerregistry/pkg/name" "github.com/buildpacks/pack/internal/builder" "github.com/buildpacks/pack/internal/container" + "github.com/buildpacks/pack/pkg/cache" "github.com/buildpacks/pack/pkg/dist" "github.com/buildpacks/pack/pkg/logging" ) @@ -74,7 +73,7 @@ type LifecycleOptions struct { LifecycleApis []string // optional - populated only if custom lifecycle image is downloaded, from that lifecycle's container's Labels. RunImage string FetchRunImage func(name string) error - ProjectMetadata platform.ProjectMetadata + ProjectMetadata files.ProjectMetadata ClearCache bool Publish bool TrustBuilder bool diff --git a/internal/builder/lifecycle.go b/internal/builder/lifecycle.go index 001d3ea10..1bc2c1e3c 100644 --- a/internal/builder/lifecycle.go +++ b/internal/builder/lifecycle.go @@ -14,7 +14,7 @@ import ( // A snapshot of the latest tested lifecycle version values const ( - DefaultLifecycleVersion = "0.17.0-rc.1" + DefaultLifecycleVersion = "0.17.0-rc.3" DefaultBuildpackAPIVersion = "0.2" ) diff --git a/internal/commands/inspect_image_test.go b/internal/commands/inspect_image_test.go index 5d219e3d0..a50189f18 100644 --- a/internal/commands/inspect_image_test.go +++ b/internal/commands/inspect_image_test.go @@ -5,7 +5,7 @@ import ( "errors" "testing" - "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/golang/mock/gomock" "github.com/heroku/color" "github.com/sclevine/spec" @@ -32,18 +32,18 @@ var ( expectedLocalImageInfo = &client.ImageInfo{ StackID: "local.image.stack", Buildpacks: nil, - Base: platform.RunImageForRebase{}, + Base: files.RunImageForRebase{}, BOM: nil, - Stack: platform.StackMetadata{}, + Stack: files.Stack{}, Processes: client.ProcessDetails{}, } expectedRemoteImageInfo = &client.ImageInfo{ StackID: "remote.image.stack", Buildpacks: nil, - Base: platform.RunImageForRebase{}, + Base: files.RunImageForRebase{}, BOM: nil, - Stack: platform.StackMetadata{}, + Stack: files.Stack{}, Processes: client.ProcessDetails{}, } @@ -51,9 +51,9 @@ var ( StackID: "local.image.stack", Buildpacks: nil, Extensions: nil, - Base: platform.RunImageForRebase{}, + Base: files.RunImageForRebase{}, BOM: nil, - Stack: platform.StackMetadata{}, + Stack: files.Stack{}, Processes: client.ProcessDetails{}, } @@ -61,9 +61,9 @@ var ( StackID: "remote.image.stack", Buildpacks: nil, Extensions: nil, - Base: platform.RunImageForRebase{}, + Base: files.RunImageForRebase{}, BOM: nil, - Stack: platform.StackMetadata{}, + Stack: files.Stack{}, Processes: client.ProcessDetails{}, } ) diff --git a/internal/inspectimage/info_display.go b/internal/inspectimage/info_display.go index 38c3078a4..f7b1e4056 100644 --- a/internal/inspectimage/info_display.go +++ b/internal/inspectimage/info_display.go @@ -3,7 +3,7 @@ package inspectimage import ( "github.com/buildpacks/lifecycle/buildpack" "github.com/buildpacks/lifecycle/launch" - "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/buildpacks/pack/internal/config" "github.com/buildpacks/pack/pkg/client" @@ -95,7 +95,7 @@ func getConfigMirrors(info *client.ImageInfo, imageMirrors []config.RunImage) [] return nil } -func displayBase(base platform.RunImageForRebase) BaseDisplay { +func displayBase(base files.RunImageForRebase) BaseDisplay { return BaseDisplay{ TopLayer: base.TopLayer, Reference: base.Reference, diff --git a/internal/inspectimage/writer/human_readable_test.go b/internal/inspectimage/writer/human_readable_test.go index 998e8adec..54369b79d 100644 --- a/internal/inspectimage/writer/human_readable_test.go +++ b/internal/inspectimage/writer/human_readable_test.go @@ -8,7 +8,7 @@ import ( "github.com/buildpacks/lifecycle/buildpack" "github.com/buildpacks/lifecycle/launch" - "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/heroku/color" "github.com/sclevine/spec" "github.com/sclevine/spec/report" @@ -171,12 +171,12 @@ Processes: {ID: "test.bp.two.remote", Version: "2.0.0", Homepage: "https://some-homepage-two"}, {ID: "test.bp.three.remote", Version: "3.0.0"}, }, - Base: platform.RunImageForRebase{ + Base: files.RunImageForRebase{ TopLayer: "some-remote-top-layer", Reference: "some-remote-run-image-reference", }, - Stack: platform.StackMetadata{ - RunImage: platform.RunImageForExport{ + Stack: files.Stack{ + RunImage: files.RunImageForExport{ Image: "some-remote-run-image", Mirrors: []string{"some-remote-mirror", "other-remote-mirror"}, }, @@ -227,12 +227,12 @@ Processes: {ID: "test.bp.two.local", Version: "2.0.0", Homepage: "https://some-homepage-two"}, {ID: "test.bp.three.local", Version: "3.0.0"}, }, - Base: platform.RunImageForRebase{ + Base: files.RunImageForRebase{ TopLayer: "some-local-top-layer", Reference: "some-local-run-image-reference", }, - Stack: platform.StackMetadata{ - RunImage: platform.RunImageForExport{ + Stack: files.Stack{ + RunImage: files.RunImageForExport{ Image: "some-local-run-image", Mirrors: []string{"some-local-mirror", "other-local-mirror"}, }, @@ -282,12 +282,12 @@ Processes: {ID: "test.bp.two.remote", Version: "2.0.0", Homepage: "https://some-homepage-two"}, {ID: "test.bp.three.remote", Version: "3.0.0"}, }, - Base: platform.RunImageForRebase{ + Base: files.RunImageForRebase{ TopLayer: "some-remote-top-layer", Reference: "some-remote-run-image-reference", }, - Stack: platform.StackMetadata{ - RunImage: platform.RunImageForExport{ + Stack: files.Stack{ + RunImage: files.RunImageForExport{ Image: "some-remote-run-image", Mirrors: []string{"some-remote-mirror", "other-remote-mirror"}, }, @@ -343,12 +343,12 @@ Processes: {ID: "test.bp.two.local", Version: "2.0.0", Homepage: "https://some-homepage-two"}, {ID: "test.bp.three.local", Version: "3.0.0"}, }, - Base: platform.RunImageForRebase{ + Base: files.RunImageForRebase{ TopLayer: "some-local-top-layer", Reference: "some-local-run-image-reference", }, - Stack: platform.StackMetadata{ - RunImage: platform.RunImageForExport{ + Stack: files.Stack{ + RunImage: files.RunImageForExport{ Image: "some-local-run-image", Mirrors: []string{"some-local-mirror", "other-local-mirror"}, }, @@ -565,7 +565,7 @@ Processes: when("there are no run images", func() { it.Before(func() { - remoteInfo.Stack = platform.StackMetadata{} + remoteInfo.Stack = files.Stack{} }) it("displays a message indicating missing run images", func() { sharedImageInfo := inspectimage.GeneralInfo{ @@ -636,7 +636,7 @@ Processes: when("there are no run images", func() { it.Before(func() { - remoteWithExtensionInfo.Stack = platform.StackMetadata{} + remoteWithExtensionInfo.Stack = files.Stack{} }) it("displays a message indicating missing run images", func() { sharedImageInfo := inspectimage.GeneralInfo{ diff --git a/internal/inspectimage/writer/json_test.go b/internal/inspectimage/writer/json_test.go index 5bd2890c2..b08e1a108 100644 --- a/internal/inspectimage/writer/json_test.go +++ b/internal/inspectimage/writer/json_test.go @@ -6,7 +6,7 @@ import ( "github.com/buildpacks/lifecycle/buildpack" "github.com/buildpacks/lifecycle/launch" - "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/heroku/color" "github.com/sclevine/spec" "github.com/sclevine/spec/report" @@ -178,12 +178,12 @@ func testJSON(t *testing.T, when spec.G, it spec.S) { {ID: "test.bp.one.remote", Version: "1.0.0", Homepage: "https://some-homepage-one"}, {ID: "test.bp.two.remote", Version: "2.0.0", Homepage: "https://some-homepage-two"}, }, - Base: platform.RunImageForRebase{ + Base: files.RunImageForRebase{ TopLayer: "some-remote-top-layer", Reference: "some-remote-run-image-reference", }, - Stack: platform.StackMetadata{ - RunImage: platform.RunImageForExport{ + Stack: files.Stack{ + RunImage: files.RunImageForExport{ Image: "some-remote-run-image", Mirrors: []string{"some-remote-mirror", "other-remote-mirror"}, }, @@ -233,12 +233,12 @@ func testJSON(t *testing.T, when spec.G, it spec.S) { {ID: "test.bp.one.local", Version: "1.0.0", Homepage: "https://some-homepage-one"}, {ID: "test.bp.two.local", Version: "2.0.0", Homepage: "https://some-homepage-two"}, }, - Base: platform.RunImageForRebase{ + Base: files.RunImageForRebase{ TopLayer: "some-local-top-layer", Reference: "some-local-run-image-reference", }, - Stack: platform.StackMetadata{ - RunImage: platform.RunImageForExport{ + Stack: files.Stack{ + RunImage: files.RunImageForExport{ Image: "some-local-run-image", Mirrors: []string{"some-local-mirror", "other-local-mirror"}, }, diff --git a/internal/inspectimage/writer/toml_test.go b/internal/inspectimage/writer/toml_test.go index 23961d63f..0e1406df6 100644 --- a/internal/inspectimage/writer/toml_test.go +++ b/internal/inspectimage/writer/toml_test.go @@ -6,7 +6,7 @@ import ( "github.com/buildpacks/lifecycle/buildpack" "github.com/buildpacks/lifecycle/launch" - "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/heroku/color" "github.com/sclevine/spec" "github.com/sclevine/spec/report" @@ -162,12 +162,12 @@ working-dir = "/other-test-work-dir" {ID: "test.bp.one.remote", Version: "1.0.0", Homepage: "https://some-homepage-one"}, {ID: "test.bp.two.remote", Version: "2.0.0", Homepage: "https://some-homepage-two"}, }, - Base: platform.RunImageForRebase{ + Base: files.RunImageForRebase{ TopLayer: "some-remote-top-layer", Reference: "some-remote-run-image-reference", }, - Stack: platform.StackMetadata{ - RunImage: platform.RunImageForExport{ + Stack: files.Stack{ + RunImage: files.RunImageForExport{ Image: "some-remote-run-image", Mirrors: []string{"some-remote-mirror", "other-remote-mirror"}, }, @@ -217,12 +217,12 @@ working-dir = "/other-test-work-dir" {ID: "test.bp.one.local", Version: "1.0.0", Homepage: "https://some-homepage-one"}, {ID: "test.bp.two.local", Version: "2.0.0", Homepage: "https://some-homepage-two"}, }, - Base: platform.RunImageForRebase{ + Base: files.RunImageForRebase{ TopLayer: "some-local-top-layer", Reference: "some-local-run-image-reference", }, - Stack: platform.StackMetadata{ - RunImage: platform.RunImageForExport{ + Stack: files.Stack{ + RunImage: files.RunImageForExport{ Image: "some-local-run-image", Mirrors: []string{"some-local-mirror", "other-local-mirror"}, }, diff --git a/internal/inspectimage/writer/yaml_test.go b/internal/inspectimage/writer/yaml_test.go index 86f57294b..3a422eb52 100644 --- a/internal/inspectimage/writer/yaml_test.go +++ b/internal/inspectimage/writer/yaml_test.go @@ -6,7 +6,7 @@ import ( "github.com/buildpacks/lifecycle/buildpack" "github.com/buildpacks/lifecycle/launch" - "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/heroku/color" "github.com/sclevine/spec" "github.com/sclevine/spec/report" @@ -132,12 +132,12 @@ remote_info: {ID: "test.bp.one.remote", Version: "1.0.0", Homepage: "https://some-homepage-one"}, {ID: "test.bp.two.remote", Version: "2.0.0", Homepage: "https://some-homepage-two"}, }, - Base: platform.RunImageForRebase{ + Base: files.RunImageForRebase{ TopLayer: "some-remote-top-layer", Reference: "some-remote-run-image-reference", }, - Stack: platform.StackMetadata{ - RunImage: platform.RunImageForExport{ + Stack: files.Stack{ + RunImage: files.RunImageForExport{ Image: "some-remote-run-image", Mirrors: []string{"some-remote-mirror", "other-remote-mirror"}, }, @@ -187,12 +187,12 @@ remote_info: {ID: "test.bp.one.local", Version: "1.0.0", Homepage: "https://some-homepage-one"}, {ID: "test.bp.two.local", Version: "2.0.0", Homepage: "https://some-homepage-two"}, }, - Base: platform.RunImageForRebase{ + Base: files.RunImageForRebase{ TopLayer: "some-local-top-layer", Reference: "some-local-run-image-reference", }, - Stack: platform.StackMetadata{ - RunImage: platform.RunImageForExport{ + Stack: files.Stack{ + RunImage: files.RunImageForExport{ Image: "some-local-run-image", Mirrors: []string{"some-local-mirror", "other-local-mirror"}, }, diff --git a/pkg/client/build.go b/pkg/client/build.go index b7b3c6fc0..9e5c3f295 100644 --- a/pkg/client/build.go +++ b/pkg/client/build.go @@ -12,17 +12,12 @@ import ( "strings" "time" - "github.com/buildpacks/pack/pkg/cache" - "github.com/Masterminds/semver" "github.com/buildpacks/imgutil" "github.com/buildpacks/imgutil/layout" "github.com/buildpacks/imgutil/local" "github.com/buildpacks/imgutil/remote" - "github.com/buildpacks/lifecycle/platform" - - "github.com/buildpacks/pack/internal/paths" - + "github.com/buildpacks/lifecycle/platform/files" "github.com/docker/docker/api/types" "github.com/docker/docker/volume/mounts" "github.com/google/go-containerregistry/pkg/name" @@ -33,12 +28,14 @@ import ( "github.com/buildpacks/pack/internal/builder" internalConfig "github.com/buildpacks/pack/internal/config" pname "github.com/buildpacks/pack/internal/name" + "github.com/buildpacks/pack/internal/paths" "github.com/buildpacks/pack/internal/stack" "github.com/buildpacks/pack/internal/stringset" "github.com/buildpacks/pack/internal/style" "github.com/buildpacks/pack/internal/termui" "github.com/buildpacks/pack/pkg/archive" "github.com/buildpacks/pack/pkg/buildpack" + "github.com/buildpacks/pack/pkg/cache" "github.com/buildpacks/pack/pkg/dist" "github.com/buildpacks/pack/pkg/image" "github.com/buildpacks/pack/pkg/logging" @@ -487,12 +484,12 @@ func (c *Client) Build(ctx context.Context, opts BuildOptions) error { return err } - projectMetadata := platform.ProjectMetadata{} + projectMetadata := files.ProjectMetadata{} if c.experimental { version := opts.ProjectDescriptor.Project.Version sourceURL := opts.ProjectDescriptor.Project.SourceURL if version != "" || sourceURL != "" { - projectMetadata.Source = &platform.ProjectSource{ + projectMetadata.Source = &files.ProjectSource{ Type: "project", Version: map[string]interface{}{"declared": version}, Metadata: map[string]interface{}{"url": sourceURL}, diff --git a/pkg/client/build_test.go b/pkg/client/build_test.go index 7952fee62..0fff061f4 100644 --- a/pkg/client/build_test.go +++ b/pkg/client/build_test.go @@ -21,7 +21,7 @@ import ( "github.com/buildpacks/imgutil/local" "github.com/buildpacks/imgutil/remote" "github.com/buildpacks/lifecycle/api" - "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" dockerclient "github.com/docker/docker/client" "github.com/google/go-containerregistry/pkg/name" "github.com/heroku/color" @@ -1865,7 +1865,7 @@ func testBuild(t *testing.T, when spec.G, it spec.S) { h.AssertNil(t, err) h.AssertNotNil(t, fakeLifecycle.Opts.ProjectMetadata.Source) - h.AssertEq(t, fakeLifecycle.Opts.ProjectMetadata.Source, &platform.ProjectSource{ + h.AssertEq(t, fakeLifecycle.Opts.ProjectMetadata.Source, &files.ProjectSource{ Type: "project", Version: map[string]interface{}{"declared": "1.2.3"}, Metadata: map[string]interface{}{"url": "https://example.com"}, diff --git a/pkg/client/docker.go b/pkg/client/docker.go index 0ae1b4880..f637066e1 100644 --- a/pkg/client/docker.go +++ b/pkg/client/docker.go @@ -6,12 +6,14 @@ import ( "github.com/docker/docker/api/types" containertypes "github.com/docker/docker/api/types/container" + "github.com/docker/docker/api/types/image" networktypes "github.com/docker/docker/api/types/network" specs "github.com/opencontainers/image-spec/specs-go/v1" ) // DockerClient is the subset of CommonAPIClient which required by this package type DockerClient interface { + ImageHistory(ctx context.Context, image string) ([]image.HistoryResponseItem, error) ImageInspectWithRaw(ctx context.Context, image string) (types.ImageInspect, []byte, error) ImageTag(ctx context.Context, image, ref string) error ImageLoad(ctx context.Context, input io.Reader, quiet bool) (types.ImageLoadResponse, error) diff --git a/pkg/client/download_sbom.go b/pkg/client/download_sbom.go index c0de29bf7..234dcea64 100644 --- a/pkg/client/download_sbom.go +++ b/pkg/client/download_sbom.go @@ -5,6 +5,7 @@ import ( "github.com/buildpacks/lifecycle/layers" "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/pkg/errors" "github.com/buildpacks/pack/pkg/dist" @@ -18,7 +19,7 @@ type DownloadSBOMOptions struct { // Deserialize just the subset of fields we need to avoid breaking changes type sbomMetadata struct { - BOM *platform.LayerMetadata `json:"sbom" toml:"sbom"` + BOM *files.LayerMetadata `json:"sbom" toml:"sbom"` } func (s *sbomMetadata) isMissing() bool { @@ -46,7 +47,7 @@ func (c *Client) DownloadSBOM(name string, options DownloadSBOMOptions) error { } var sbomMD sbomMetadata - if _, err := dist.GetLabel(img, platform.LayerMetadataLabel, &sbomMD); err != nil { + if _, err := dist.GetLabel(img, platform.LifecycleMetadataLabel, &sbomMD); err != nil { return err } diff --git a/pkg/client/inspect_image.go b/pkg/client/inspect_image.go index 573e255a4..e56ef4b6b 100644 --- a/pkg/client/inspect_image.go +++ b/pkg/client/inspect_image.go @@ -8,6 +8,7 @@ import ( "github.com/buildpacks/lifecycle/buildpack" "github.com/buildpacks/lifecycle/launch" "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/pkg/errors" "github.com/buildpacks/pack/pkg/dist" @@ -42,7 +43,7 @@ type ImageInfo struct { // the first 1 to k layers all belong to the run image, // the last k+1 to n layers are added by buildpacks. // the sum of all of these is our app image. - Base platform.RunImageForRebase + Base files.RunImageForRebase // BOM or Bill of materials, contains dependency and // version information provided by each buildpack. @@ -50,7 +51,7 @@ type ImageInfo struct { // Stack includes the run image name, and a list of image mirrors, // where the run image is hosted. - Stack platform.StackMetadata + Stack files.Stack // Processes lists all processes contributed by buildpacks. Processes ProcessDetails @@ -68,8 +69,8 @@ type ProcessDetails struct { // Deserialize just the subset of fields we need to avoid breaking changes type layersMetadata struct { - RunImage platform.RunImageForRebase `json:"runImage" toml:"run-image"` - Stack platform.StackMetadata `json:"stack" toml:"stack"` + RunImage files.RunImageForRebase `json:"runImage" toml:"run-image"` + Stack files.Stack `json:"stack" toml:"stack"` } const ( @@ -98,11 +99,11 @@ func (c *Client) InspectImage(name string, daemon bool) (*ImageInfo, error) { } var layersMd layersMetadata - if _, err := dist.GetLabel(img, platform.LayerMetadataLabel, &layersMd); err != nil { + if _, err := dist.GetLabel(img, platform.LifecycleMetadataLabel, &layersMd); err != nil { return nil, err } - var buildMD platform.BuildMetadata + var buildMD files.BuildMetadata if _, err := dist.GetLabel(img, platform.BuildMetadataLabel, &buildMD); err != nil { return nil, err } @@ -176,9 +177,9 @@ func (c *Client) InspectImage(name string, daemon bool) (*ImageInfo, error) { processDetails.OtherProcesses = append(processDetails.OtherProcesses, proc) } - var stackCompat platform.StackMetadata + var stackCompat files.Stack if layersMd.RunImage.Image != "" { - stackCompat = layersMd.RunImage.ToStackMetadata() + stackCompat = layersMd.RunImage.ToStack() } else { stackCompat = layersMd.Stack } diff --git a/pkg/client/inspect_image_test.go b/pkg/client/inspect_image_test.go index d3aa4a781..fe71947aa 100644 --- a/pkg/client/inspect_image_test.go +++ b/pkg/client/inspect_image_test.go @@ -9,7 +9,7 @@ import ( "github.com/buildpacks/imgutil/fakes" "github.com/buildpacks/lifecycle/launch" - "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/golang/mock/gomock" "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" @@ -228,15 +228,15 @@ func testInspectImage(t *testing.T, when spec.G, it spec.S) { info, err := subject.InspectImage("some/image", useDaemon) h.AssertNil(t, err) h.AssertEq(t, info.Stack, - platform.StackMetadata{RunImage: platform.RunImageForExport{Image: "is everything"}}) + files.Stack{RunImage: files.RunImageForExport{Image: "is everything"}}) }) it("returns the stack", func() { info, err := subject.InspectImage("some/image", useDaemon) h.AssertNil(t, err) h.AssertEq(t, info.Stack, - platform.StackMetadata{ - RunImage: platform.RunImageForExport{ + files.Stack{ + RunImage: files.RunImageForExport{ Image: "some-run-image", Mirrors: []string{ "some-mirror", @@ -251,8 +251,8 @@ func testInspectImage(t *testing.T, when spec.G, it spec.S) { infoWithExtension, err := subject.InspectImage("some/imageWithExtension", useDaemon) h.AssertNil(t, err) h.AssertEq(t, infoWithExtension.Stack, - platform.StackMetadata{ - RunImage: platform.RunImageForExport{ + files.Stack{ + RunImage: files.RunImageForExport{ Image: "some-run-image", Mirrors: []string{ "some-mirror", @@ -267,7 +267,7 @@ func testInspectImage(t *testing.T, when spec.G, it spec.S) { info, err := subject.InspectImage("some/image", useDaemon) h.AssertNil(t, err) h.AssertEq(t, info.Base, - platform.RunImageForRebase{ + files.RunImageForRebase{ TopLayer: "some-top-layer", Reference: "some-run-image-reference", }, @@ -278,7 +278,7 @@ func testInspectImage(t *testing.T, when spec.G, it spec.S) { infoWithExtension, err := subject.InspectImage("some/imageWithExtension", useDaemon) h.AssertNil(t, err) h.AssertEq(t, infoWithExtension.Base, - platform.RunImageForRebase{ + files.RunImageForRebase{ TopLayer: "some-top-layer", Reference: "some-run-image-reference", }, @@ -864,7 +864,7 @@ func testInspectImage(t *testing.T, when spec.G, it spec.S) { info, err := subject.InspectImage("old/image", true) h.AssertNil(t, err) h.AssertEq(t, info.Base, - platform.RunImageForRebase{ + files.RunImageForRebase{ TopLayer: "some-top-layer", Reference: "", }, diff --git a/pkg/client/rebase.go b/pkg/client/rebase.go index d23060339..168c72757 100644 --- a/pkg/client/rebase.go +++ b/pkg/client/rebase.go @@ -8,6 +8,7 @@ import ( "github.com/BurntSushi/toml" "github.com/buildpacks/lifecycle" "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/pkg/errors" "github.com/buildpacks/pack/internal/build" @@ -59,11 +60,11 @@ func (c *Client) Rebase(ctx context.Context, opts RebaseOptions) error { return err } - var md platform.LayersMetadataCompat - if ok, err := dist.GetLabel(appImage, platform.LayerMetadataLabel, &md); err != nil { + var md files.LayersMetadataCompat + if ok, err := dist.GetLabel(appImage, platform.LifecycleMetadataLabel, &md); err != nil { return err } else if !ok { - return errors.Errorf("could not find label %s on image", style.Symbol(platform.LayerMetadataLabel)) + return errors.Errorf("could not find label %s on image", style.Symbol(platform.LifecycleMetadataLabel)) } var runImageMD builder.RunImageMetadata if md.RunImage.Image != "" { diff --git a/pkg/client/rebase_test.go b/pkg/client/rebase_test.go index eccfdd1c6..86eff76de 100644 --- a/pkg/client/rebase_test.go +++ b/pkg/client/rebase_test.go @@ -80,15 +80,26 @@ func testRebase(t *testing.T, when spec.G, it spec.S) { h.AssertNilE(t, fakeCustomRunImage.Cleanup()) }) - it("uses the run image provided by the user", func() { - h.AssertNil(t, subject.Rebase(context.TODO(), + when("--force", func() { + it("uses the run image provided by the user", func() { + h.AssertNil(t, subject.Rebase(context.TODO(), + RebaseOptions{ + RunImage: "custom/run", + RepoName: "some/app", + Force: true, + })) + h.AssertEq(t, fakeAppImage.Base(), "custom/run") + lbl, _ := fakeAppImage.Label("io.buildpacks.lifecycle.metadata") + h.AssertContains(t, lbl, `"runImage":{"topLayer":"custom-base-top-layer-sha","reference":"custom-base-digest"`) + }) + }) + + it("errors", func() { + h.AssertError(t, subject.Rebase(context.TODO(), RebaseOptions{ RunImage: "custom/run", RepoName: "some/app", - })) - h.AssertEq(t, fakeAppImage.Base(), "custom/run") - lbl, _ := fakeAppImage.Label("io.buildpacks.lifecycle.metadata") - h.AssertContains(t, lbl, `"runImage":{"topLayer":"custom-base-top-layer-sha","reference":"custom-base-digest"`) + }), "new base image 'custom/run' not found in existing run image metadata") }) }) }) @@ -135,17 +146,19 @@ func testRebase(t *testing.T, when spec.G, it spec.S) { it.After(func() { h.AssertNilE(t, fakeLocalMirror.Cleanup()) }) - - it("chooses a matching local mirror first", func() { - h.AssertNil(t, subject.Rebase(context.TODO(), RebaseOptions{ - RepoName: "example.com/some/app", - AdditionalMirrors: map[string][]string{ - "some/run": {"example.com/some/local-run"}, - }, - })) - h.AssertEq(t, fakeAppImage.Base(), "example.com/some/local-run") - lbl, _ := fakeAppImage.Label("io.buildpacks.lifecycle.metadata") - h.AssertContains(t, lbl, `"runImage":{"topLayer":"local-mirror-top-layer-sha","reference":"local-mirror-digest"`) + when("--force", func() { + it("chooses a matching local mirror first", func() { + h.AssertNil(t, subject.Rebase(context.TODO(), RebaseOptions{ + RepoName: "example.com/some/app", + AdditionalMirrors: map[string][]string{ + "some/run": {"example.com/some/local-run"}, + }, + Force: true, + })) + h.AssertEq(t, fakeAppImage.Base(), "example.com/some/local-run") + lbl, _ := fakeAppImage.Label("io.buildpacks.lifecycle.metadata") + h.AssertContains(t, lbl, `"runImage":{"topLayer":"local-mirror-top-layer-sha","reference":"local-mirror-digest"`) + }) }) }) when("there is a label and it has a run image and no stack", func() { diff --git a/pkg/project/v02/metadata.go b/pkg/project/v02/metadata.go index 071323501..792ffb1a7 100644 --- a/pkg/project/v02/metadata.go +++ b/pkg/project/v02/metadata.go @@ -6,7 +6,7 @@ import ( "strings" "time" - "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5/plumbing" ) @@ -19,7 +19,7 @@ type TagInfo struct { TagTime time.Time } -func GitMetadata(appPath string) *platform.ProjectSource { +func GitMetadata(appPath string) *files.ProjectSource { repo, err := git.PlainOpen(appPath) if err != nil { return nil @@ -34,7 +34,7 @@ func GitMetadata(appPath string) *platform.ProjectSource { refs := parseGitRefs(repo, headRef, commitTagMap) remote := parseGitRemote(repo) - projectSource := &platform.ProjectSource{ + projectSource := &files.ProjectSource{ Type: "git", Version: map[string]interface{}{ "commit": headRef.Hash().String(), diff --git a/pkg/project/v02/metadata_test.go b/pkg/project/v02/metadata_test.go index 7aca0ed14..edfbdb5ca 100644 --- a/pkg/project/v02/metadata_test.go +++ b/pkg/project/v02/metadata_test.go @@ -9,7 +9,7 @@ import ( "testing" "time" - "github.com/buildpacks/lifecycle/platform" + "github.com/buildpacks/lifecycle/platform/files" "github.com/go-git/go-git/v5" "github.com/go-git/go-git/v5/config" "github.com/go-git/go-git/v5/plumbing" @@ -61,7 +61,7 @@ func testMetadata(t *testing.T, when spec.G, it spec.S) { createUnannotatedTag(t, repo, commits[len(commits)-1], "testTag") output := GitMetadata(repoPath) - expectedOutput := &platform.ProjectSource{ + expectedOutput := &files.ProjectSource{ Type: "git", Version: map[string]interface{}{ "commit": commits[len(commits)-1].String(),