diff --git a/.github/workflows/pythonTests.yml b/.github/workflows/pythonTests.yml index 692f261bc..04b02e24d 100644 --- a/.github/workflows/pythonTests.yml +++ b/.github/workflows/pythonTests.yml @@ -29,7 +29,7 @@ jobs: go-version: 1.20.x # Due to a bug in Python 3.12.0 we temporary use version 3.11.5 - name: Setup Python3 - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: "3.11.5" - name: Setup Pipenv diff --git a/Jenkinsfile b/Jenkinsfile index b17de8cce..fee148bc0 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -31,7 +31,7 @@ node("docker") { repo = 'jfrog-cli' sh 'rm -rf temp' sh 'mkdir temp' - def goRoot = tool 'go-1.20.10' + def goRoot = tool 'go-1.20.14' env.GOROOT="$goRoot" env.PATH+=":${goRoot}/bin:/tmp/node-${nodeVersion}-linux-x64/bin" env.GO111MODULE="on" diff --git a/artifactory/cli.go b/artifactory/cli.go index ef9ce9081..324b5ffe4 100644 --- a/artifactory/cli.go +++ b/artifactory/cli.go @@ -267,6 +267,7 @@ func GetCommands() []cli.Command { }, { Name: "build-scan", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.BuildScanLegacy), Aliases: []string{"bs"}, Usage: buildscan.GetDescription(), @@ -323,6 +324,7 @@ func GetCommands() []cli.Command { }, { Name: "mvn-config", + Hidden: true, Aliases: []string{"mvnc"}, Flags: cliutils.GetCommandFlags(cliutils.MvnConfig), Usage: mvnconfig.GetDescription(), @@ -335,6 +337,7 @@ func GetCommands() []cli.Command { }, { Name: "mvn", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.Mvn), Usage: mvndoc.GetDescription(), HelpName: corecommon.CreateUsage("rt mvn", mvndoc.GetDescription(), mvndoc.Usage), @@ -348,6 +351,7 @@ func GetCommands() []cli.Command { }, { Name: "gradle-config", + Hidden: true, Aliases: []string{"gradlec"}, Flags: cliutils.GetCommandFlags(cliutils.GradleConfig), Usage: gradleconfig.GetDescription(), @@ -360,6 +364,7 @@ func GetCommands() []cli.Command { }, { Name: "gradle", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.Gradle), Usage: gradledoc.GetDescription(), HelpName: corecommon.CreateUsage("rt gradle", gradledoc.GetDescription(), gradledoc.Usage), @@ -384,6 +389,7 @@ func GetCommands() []cli.Command { }, { Name: "docker-push", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.ContainerPush), Aliases: []string{"dp"}, Usage: dockerpush.GetDescription(), @@ -397,6 +403,7 @@ func GetCommands() []cli.Command { }, { Name: "docker-pull", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.ContainerPull), Aliases: []string{"dpl"}, Usage: dockerpull.GetDescription(), @@ -458,6 +465,7 @@ func GetCommands() []cli.Command { }, { Name: "npm-config", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.NpmConfig), Aliases: []string{"npmc"}, Usage: npmconfig.GetDescription(), @@ -470,6 +478,7 @@ func GetCommands() []cli.Command { }, { Name: "npm-install", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.NpmInstallCi), Aliases: []string{"npmi"}, Usage: npminstall.GetDescription(), @@ -484,6 +493,7 @@ func GetCommands() []cli.Command { }, { Name: "npm-ci", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.NpmInstallCi), Aliases: []string{"npmci"}, Usage: npmci.GetDescription(), @@ -498,6 +508,7 @@ func GetCommands() []cli.Command { }, { Name: "npm-publish", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.NpmPublish), Aliases: []string{"npmp"}, Usage: npmpublish.GetDescription(), @@ -511,6 +522,7 @@ func GetCommands() []cli.Command { }, { Name: "yarn-config", + Hidden: true, Aliases: []string{"yarnc"}, Flags: cliutils.GetCommandFlags(cliutils.YarnConfig), Usage: yarnconfig.GetDescription(), @@ -523,6 +535,7 @@ func GetCommands() []cli.Command { }, { Name: "yarn", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.Yarn), Usage: yarndocs.GetDescription(), HelpName: corecommon.CreateUsage("rt yarn", yarndocs.GetDescription(), yarndocs.Usage), @@ -535,6 +548,7 @@ func GetCommands() []cli.Command { }, { Name: "nuget-config", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.NugetConfig), Aliases: []string{"nugetc"}, Usage: nugetconfig.GetDescription(), @@ -547,6 +561,7 @@ func GetCommands() []cli.Command { }, { Name: "nuget", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.Nuget), Usage: nugetdocs.GetDescription(), HelpName: corecommon.CreateUsage("rt nuget", nugetdocs.GetDescription(), nugetdocs.Usage), @@ -569,6 +584,7 @@ func GetCommands() []cli.Command { }, { Name: "dotnet-config", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.DotnetConfig), Aliases: []string{"dotnetc"}, Usage: dotnetconfig.GetDescription(), @@ -581,6 +597,7 @@ func GetCommands() []cli.Command { }, { Name: "dotnet", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.Dotnet), Usage: dotnetdocs.GetDescription(), HelpName: corecommon.CreateUsage("rt dotnet", dotnetdocs.GetDescription(), dotnetdocs.Usage), @@ -594,6 +611,7 @@ func GetCommands() []cli.Command { }, { Name: "go-config", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.GoConfig), Usage: goconfig.GetDescription(), HelpName: corecommon.CreateUsage("rt go-config", goconfig.GetDescription(), goconfig.Usage), @@ -605,6 +623,7 @@ func GetCommands() []cli.Command { }, { Name: "go-publish", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.GoPublish), Aliases: []string{"gp"}, Usage: gopublish.GetDescription(), @@ -618,6 +637,7 @@ func GetCommands() []cli.Command { }, { Name: "go", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.Go), Aliases: []string{"go"}, Usage: gocommand.GetDescription(), @@ -654,6 +674,7 @@ func GetCommands() []cli.Command { }, { Name: "pip-config", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.PipConfig), Aliases: []string{"pipc"}, Usage: pipconfig.GetDescription(), @@ -666,6 +687,7 @@ func GetCommands() []cli.Command { }, { Name: "pip-install", + Hidden: true, Flags: cliutils.GetCommandFlags(cliutils.PipInstall), Aliases: []string{"pipi"}, Usage: pipinstall.GetDescription(), diff --git a/artifactory_test.go b/artifactory_test.go index bbcd133c9..def0d586c 100644 --- a/artifactory_test.go +++ b/artifactory_test.go @@ -26,6 +26,7 @@ import ( biutils "github.com/jfrog/build-info-go/utils" "github.com/buger/jsonparser" + "github.com/jfrog/archiver/v3" gofrogio "github.com/jfrog/gofrog/io" "github.com/jfrog/gofrog/version" "github.com/jfrog/jfrog-cli-core/v2/artifactory/commands/generic" @@ -59,7 +60,6 @@ import ( "github.com/jfrog/jfrog-client-go/utils/io/httputils" "github.com/jfrog/jfrog-client-go/utils/log" clientTestUtils "github.com/jfrog/jfrog-client-go/utils/tests" - "github.com/mholt/archiver/v3" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -1805,7 +1805,7 @@ func checkIfServerIsUp(port, proxyScheme string, useClientCerts bool) error { func TestXrayScanBuild(t *testing.T) { initArtifactoryTest(t, "") - xrayServerPort := xray.StartXrayMockServer() + xrayServerPort := xray.StartXrayMockServer(t) serverUrl := "--url=http://localhost:" + strconv.Itoa(xrayServerPort) artifactoryCommandExecutor := coretests.NewJfrogCli(execMain, "jfrog rt", serverUrl+getArtifactoryTestCredentials()) assert.NoError(t, artifactoryCommandExecutor.Exec("build-scan", xray.CleanScanBuildName, "3")) @@ -4204,6 +4204,35 @@ func TestUploadZipAndCheckDeploymentViewWithArchive(t *testing.T) { } +func TestUploadEmptyArchiveWithEmptyArchiveEnv(t *testing.T) { + initArtifactoryTest(t, "") + + // Create tmp dir + assert.NoError(t, os.Mkdir(tests.Out, 0755)) + wd, err := os.Getwd() + assert.NoError(t, err) + defer cleanArtifactoryTest() + chdirCallback := clientTestUtils.ChangeDirWithCallback(t, wd, tests.Out) + defer chdirCallback() + + // Create file and a zip + zipName := "test.zip" + + setEnvCallBack := clientTestUtils.SetEnvWithCallbackAndAssert(t, services.JfrogCliUploadEmptyArchiveEnv, "true") + defer setEnvCallBack() + + // Upload & download zip file + assert.NoError(t, artifactoryCli.Exec("upload", "*", path.Join(tests.RtRepo1, zipName), "--exclusions", "**", "--archive", "zip")) + assert.NoError(t, artifactoryCli.Exec("download", path.Join(tests.RtRepo1, zipName))) + + // Check that the zip file uploaded and it's empty + assert.FileExists(t, zipName) + r, err := zip.OpenReader(zipName) + assert.NoError(t, err) + defer func() { assert.NoError(t, r.Close()) }() + assert.Empty(t, r.File) +} + func TestUploadDetailedSummary(t *testing.T) { initArtifactoryTest(t, "") uploadCmd := generic.NewUploadCommand() diff --git a/build/npm/v2-jf/package-lock.json b/build/npm/v2-jf/package-lock.json index 0fcbf29be..0438ddcc0 100644 --- a/build/npm/v2-jf/package-lock.json +++ b/build/npm/v2-jf/package-lock.json @@ -1,5 +1,5 @@ { "name": "jfrog-cli-v2-jf", - "version": "2.52.10", + "version": "2.53.0", "lockfileVersion": 1 } diff --git a/build/npm/v2-jf/package.json b/build/npm/v2-jf/package.json index 1c8214687..a2388ae63 100644 --- a/build/npm/v2-jf/package.json +++ b/build/npm/v2-jf/package.json @@ -1,6 +1,6 @@ { "name": "jfrog-cli-v2-jf", - "version": "2.52.10", + "version": "2.53.0", "description": "🐸 Command-line interface for JFrog Artifactory, Xray, Distribution, Pipelines and Mission Control 🐸", "homepage": "https://github.com/jfrog/jfrog-cli", "preferGlobal": true, diff --git a/build/npm/v2/package-lock.json b/build/npm/v2/package-lock.json index 8e7416344..2552e561c 100644 --- a/build/npm/v2/package-lock.json +++ b/build/npm/v2/package-lock.json @@ -1,5 +1,5 @@ { "name": "jfrog-cli-v2", - "version": "2.52.10", + "version": "2.53.0", "lockfileVersion": 2 } diff --git a/build/npm/v2/package.json b/build/npm/v2/package.json index 6f9c756dc..99470a609 100644 --- a/build/npm/v2/package.json +++ b/build/npm/v2/package.json @@ -1,6 +1,6 @@ { "name": "jfrog-cli-v2", - "version": "2.52.10", + "version": "2.53.0", "description": "🐸 Command-line interface for JFrog Artifactory, Xray, Distribution, Pipelines and Mission Control 🐸", "homepage": "https://github.com/jfrog/jfrog-cli", "preferGlobal": true, diff --git a/buildtools/cli.go b/buildtools/cli.go index 019b5425c..334ec2181 100644 --- a/buildtools/cli.go +++ b/buildtools/cli.go @@ -50,6 +50,7 @@ import ( "github.com/jfrog/jfrog-cli/docs/buildtools/pipenvconfig" "github.com/jfrog/jfrog-cli/docs/buildtools/pipenvinstall" "github.com/jfrog/jfrog-cli/docs/buildtools/pipinstall" + "github.com/jfrog/jfrog-cli/docs/buildtools/pnpmconfig" "github.com/jfrog/jfrog-cli/docs/buildtools/poetry" "github.com/jfrog/jfrog-cli/docs/buildtools/poetryconfig" yarndocs "github.com/jfrog/jfrog-cli/docs/buildtools/yarn" @@ -330,6 +331,19 @@ func GetCommands() []cli.Command { return npmGenericCmd(c, cmdName, false) }, }, + { + Name: "pnpm-config", + Flags: cliutils.GetCommandFlags(cliutils.PnpmConfig), + Aliases: []string{"pnpmc"}, + Usage: pnpmconfig.GetDescription(), + HelpName: corecommon.CreateUsage("pnpm-config", pnpmconfig.GetDescription(), pnpmconfig.Usage), + ArgsUsage: common.CreateEnvVars(), + BashComplete: corecommon.CreateBashCompletionFunc(), + Category: buildToolsCategory, + Action: func(c *cli.Context) error { + return cliutils.CreateConfigCmd(c, project.Pnpm) + }, + }, { Name: "docker", Flags: cliutils.GetCommandFlags(cliutils.Docker), diff --git a/docs/artifactory/upload/help.go b/docs/artifactory/upload/help.go index 30a24766d..32be5afcb 100644 --- a/docs/artifactory/upload/help.go +++ b/docs/artifactory/upload/help.go @@ -5,7 +5,7 @@ import "github.com/jfrog/jfrog-cli/docs/common" var Usage = []string{"rt u [command options] ", "rt u --spec= [command options]"} -var EnvVar = []string{common.JfrogCliMinChecksumDeploySizeKb, common.JfrogCliFailNoOp} +var EnvVar = []string{common.JfrogCliMinChecksumDeploySizeKb, common.JfrogCliFailNoOp, common.JfrogCliUploadEmptyArchive} func GetDescription() string { return "Upload files." diff --git a/docs/buildtools/pnpmconfig/help.go b/docs/buildtools/pnpmconfig/help.go new file mode 100644 index 000000000..214dc232e --- /dev/null +++ b/docs/buildtools/pnpmconfig/help.go @@ -0,0 +1,7 @@ +package pnpmconfig + +var Usage = []string{"pnpm-config [command options]"} + +func GetDescription() string { + return "Generate pnpm configuration." +} diff --git a/docs/common/env.go b/docs/common/env.go index 105b74148..9a4a3fd13 100644 --- a/docs/common/env.go +++ b/docs/common/env.go @@ -1,6 +1,7 @@ package common import ( + "github.com/jfrog/jfrog-client-go/artifactory/services" "strings" "github.com/jfrog/jfrog-cli-core/v2/utils/coreutils" @@ -80,6 +81,10 @@ const ( Set to true if you'd like the command to return exit code 2 in case of no files are affected. Support by the following commands: copy, delete, delete-props, set-props, download, move, search and upload` + JfrogCliUploadEmptyArchive = ` ` + services.JfrogCliUploadEmptyArchiveEnv + ` + [Default: false] + Set to true if you'd like to upload an empty archive when '--archive' is set but all files were excluded by exclusions pattern. ` + JfrogCliEncryptionKey = ` JFROG_CLI_ENCRYPTION_KEY If provided, encrypt the sensitive data stored in the config with the provided key. Must be exactly 32 characters.` @@ -119,6 +124,7 @@ func GetGlobalEnvVars() string { JfrogCliReleasesRepo, JfrogCliDependenciesDir, JfrogCliMinChecksumDeploySizeKb, + JfrogCliUploadEmptyArchive, JfrogCliBuildUrl, JfrogCliEnvExclude, JfrogCliFailNoOp, diff --git a/docs/scan/audit/help.go b/docs/scan/audit/help.go deleted file mode 100644 index c18e6e4dc..000000000 --- a/docs/scan/audit/help.go +++ /dev/null @@ -1,7 +0,0 @@ -package audit - -var Usage = []string{"audit [command options]"} - -func GetDescription() string { - return "Audit your local project's dependencies by generating a dependency tree and scanning it with Xray." -} diff --git a/docs/scan/auditgo/help.go b/docs/scan/auditgo/help.go deleted file mode 100644 index 3e9d62446..000000000 --- a/docs/scan/auditgo/help.go +++ /dev/null @@ -1,7 +0,0 @@ -package auditgo - -var Usage = []string{"audit-go [command options]"} - -func GetDescription() string { - return "Execute an audit Go command, using the configured Xray details." -} diff --git a/docs/scan/auditgradle/help.go b/docs/scan/auditgradle/help.go deleted file mode 100644 index 8ace28ca1..000000000 --- a/docs/scan/auditgradle/help.go +++ /dev/null @@ -1,7 +0,0 @@ -package auditgradle - -var Usage = []string{"audit-gradle [command options]"} - -func GetDescription() string { - return "Execute an audit Gradle command, using the configured Xray details." -} diff --git a/docs/scan/auditmvn/help.go b/docs/scan/auditmvn/help.go deleted file mode 100644 index e6c5f2962..000000000 --- a/docs/scan/auditmvn/help.go +++ /dev/null @@ -1,7 +0,0 @@ -package auditmvn - -var Usage = []string{"audit-mvn [command options]"} - -func GetDescription() string { - return "Execute an audit Maven command, using the configured Xray details." -} diff --git a/docs/scan/auditnpm/help.go b/docs/scan/auditnpm/help.go deleted file mode 100644 index 4dcf405a8..000000000 --- a/docs/scan/auditnpm/help.go +++ /dev/null @@ -1,7 +0,0 @@ -package auditnpm - -var Usage = []string{"audit-npm [command options]"} - -func GetDescription() string { - return "Execute an audit Npm command, using the configured Xray details." -} diff --git a/docs/scan/auditpip/help.go b/docs/scan/auditpip/help.go deleted file mode 100644 index 94731bdf6..000000000 --- a/docs/scan/auditpip/help.go +++ /dev/null @@ -1,7 +0,0 @@ -package auditpip - -var Usage = []string{"audit-pip [command options]"} - -func GetDescription() string { - return "Execute an audit Pip command, using the configured Xray details." -} diff --git a/docs/scan/auditpipenv/help.go b/docs/scan/auditpipenv/help.go deleted file mode 100644 index 9fae12c35..000000000 --- a/docs/scan/auditpipenv/help.go +++ /dev/null @@ -1,7 +0,0 @@ -package auditpipenv - -var Usage = []string{"audit-pipenv [command options]"} - -func GetDescription() string { - return "Execute an audit Pipenv command, using the configured Xray details." -} diff --git a/docs/scan/buildscan/help.go b/docs/scan/buildscan/help.go deleted file mode 100644 index 1a487a28e..000000000 --- a/docs/scan/buildscan/help.go +++ /dev/null @@ -1,15 +0,0 @@ -package buildscan - -var Usage = []string{"bs [command options] "} - -func GetDescription() string { - return "Scan a published build-info with Xray." -} - -func GetArguments() string { - return ` build name - Build name. - - build number - Build number.` -} diff --git a/docs/scan/curation/help.go b/docs/scan/curation/help.go deleted file mode 100644 index 6727c7bbb..000000000 --- a/docs/scan/curation/help.go +++ /dev/null @@ -1,7 +0,0 @@ -package curation - -var Usage = []string{"curation-audit [command options]"} - -func GetDescription() string { - return "Audit your project dependencies for their curation status." -} diff --git a/docs/scan/scan/help.go b/docs/scan/scan/help.go deleted file mode 100644 index 13e9936a5..000000000 --- a/docs/scan/scan/help.go +++ /dev/null @@ -1,15 +0,0 @@ -package scan - -var Usage = []string{"scan [command options] ", - "scan [command options] --spec= "} - -func GetDescription() string { - return "Scan files located on the local file-system with Xray." -} - -func GetArguments() string { - return ` source pattern - Specifies the local file system path of the files to be scanned. - You can specify multiple files by using wildcards, Ant pattern or a regular expression. - If you have specified that you are using regular expressions, then the first one used in the argument must be enclosed in parenthesis.` -} diff --git a/go.mod b/go.mod index 2a25c9d11..2f5f8962c 100644 --- a/go.mod +++ b/go.mod @@ -7,19 +7,19 @@ require ( github.com/buger/jsonparser v1.1.1 github.com/go-git/go-git/v5 v5.11.0 github.com/gocarina/gocsv v0.0.0-20231116093920-b87c2d0e983a - github.com/jfrog/build-info-go v1.9.21 - github.com/jfrog/gofrog v1.5.1 - github.com/jfrog/jfrog-cli-core/v2 v2.47.11 - github.com/jfrog/jfrog-cli-security v0.0.0-20240122124933-edf9cb4ca3ac - github.com/jfrog/jfrog-client-go v1.36.0 - github.com/jszwec/csvutil v1.9.0 - github.com/mholt/archiver/v3 v3.5.1 + github.com/jfrog/archiver/v3 v3.6.0 + github.com/jfrog/build-info-go v1.9.23 + github.com/jfrog/gofrog v1.6.0 + github.com/jfrog/jfrog-cli-core/v2 v2.48.1 + github.com/jfrog/jfrog-cli-security v1.0.3 + github.com/jfrog/jfrog-client-go v1.37.1 + github.com/jszwec/csvutil v1.10.0 github.com/stretchr/testify v1.8.4 github.com/testcontainers/testcontainers-go v0.23.0 github.com/urfave/cli v1.22.14 github.com/xeipuuv/gojsonschema v1.2.0 - golang.org/x/exp v0.0.0-20240119083558-1b970713d09a - golang.org/x/term v0.16.0 + golang.org/x/exp v0.0.0-20240213143201-ec583247a57a + golang.org/x/term v0.17.0 gopkg.in/yaml.v2 v2.4.0 ) @@ -27,7 +27,7 @@ require ( dario.cat/mergo v1.0.0 // indirect github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect github.com/BurntSushi/toml v1.3.2 // indirect - github.com/CycloneDX/cyclonedx-go v0.7.2 // indirect + github.com/CycloneDX/cyclonedx-go v0.8.0 // indirect github.com/Microsoft/go-winio v0.6.1 // indirect github.com/Microsoft/hcsshim v0.11.4 // indirect github.com/ProtonMail/go-crypto v1.0.0 // indirect @@ -37,7 +37,7 @@ require ( github.com/c-bata/go-prompt v0.2.5 // indirect github.com/cenkalti/backoff/v4 v4.2.1 // indirect github.com/chzyer/readline v1.5.1 // indirect - github.com/cloudflare/circl v1.3.3 // indirect + github.com/cloudflare/circl v1.3.7 // indirect github.com/containerd/containerd v1.7.11 // indirect github.com/containerd/log v0.1.0 // indirect github.com/cpuguy83/dockercfg v0.3.1 // indirect @@ -59,12 +59,11 @@ require ( github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect github.com/golang/protobuf v1.5.3 // indirect github.com/golang/snappy v0.0.4 // indirect - github.com/google/uuid v1.5.0 // indirect + github.com/google/uuid v1.6.0 // indirect github.com/gookit/color v1.5.4 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 // indirect - github.com/jedib0t/go-pretty/v6 v6.5.3 // indirect - github.com/jfrog/archiver/v3 v3.6.0 // indirect + github.com/jedib0t/go-pretty/v6 v6.5.4 // indirect github.com/jfrog/jfrog-apps-config v1.0.1 // indirect github.com/kevinburke/ssh_config v1.2.0 // indirect github.com/klauspost/compress v1.17.4 // indirect @@ -85,7 +84,7 @@ require ( github.com/nwaples/rardecode v1.1.3 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.0-rc5 // indirect - github.com/opencontainers/runc v1.1.5 // indirect + github.com/opencontainers/runc v1.1.12 // indirect github.com/owenrumney/go-sarif/v2 v2.3.0 // indirect github.com/pelletier/go-toml/v2 v2.1.0 // indirect github.com/pierrec/lz4/v4 v4.1.21 // indirect @@ -116,13 +115,13 @@ require ( github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 // indirect go.uber.org/atomic v1.9.0 // indirect go.uber.org/multierr v1.9.0 // indirect - golang.org/x/crypto v0.18.0 // indirect - golang.org/x/mod v0.14.0 // indirect - golang.org/x/net v0.20.0 // indirect + golang.org/x/crypto v0.19.0 // indirect + golang.org/x/mod v0.15.0 // indirect + golang.org/x/net v0.21.0 // indirect golang.org/x/sync v0.6.0 // indirect - golang.org/x/sys v0.16.0 // indirect + golang.org/x/sys v0.17.0 // indirect golang.org/x/text v0.14.0 // indirect - golang.org/x/tools v0.17.0 // indirect + golang.org/x/tools v0.18.0 // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect google.golang.org/grpc v1.59.0 // indirect google.golang.org/protobuf v1.31.0 // indirect @@ -131,11 +130,11 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -// replace github.com/jfrog/jfrog-cli-core/v2 => github.com/jfrog/jfrog-cli-core/v2 v2.31.1-0.20240122141213-a1db3c179c7e +// replace github.com/jfrog/jfrog-cli-core/v2 => github.com/jfrog/jfrog-cli-core/v2 v2.31.1-0.20240218115031-cc5c8b521695 -// replace github.com/jfrog/jfrog-client-go => github.com/jfrog/jfrog-client-go v1.28.1-0.20240122123649-74f725715bbe +// replace github.com/jfrog/jfrog-client-go => github.com/jfrog/jfrog-client-go v1.28.1-0.20240218093454-1c352a93c23d -// replace github.com/jfrog/jfrog-cli-security => github.com/jfrog/jfrog-cli-security v0.0.0-20240122124933-edf9cb4ca3ac +// replace github.com/jfrog/jfrog-cli-security => github.com/jfrog/jfrog-cli-security v1.0.2-0.20240215122147-517c589b5ada // replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go v1.8.9-0.20231220102935-c8776c613ad8 diff --git a/go.sum b/go.sum index 2d978b28b..77db2b40a 100644 --- a/go.sum +++ b/go.sum @@ -3,11 +3,10 @@ dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= 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/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= -github.com/CycloneDX/cyclonedx-go v0.7.2 h1:kKQ0t1dPOlugSIYVOMiMtFqeXI2wp/f5DBIdfux8gnQ= -github.com/CycloneDX/cyclonedx-go v0.7.2/go.mod h1:K2bA+324+Og0X84fA8HhN2X066K7Bxz4rpMQ4ZhjtSk= +github.com/CycloneDX/cyclonedx-go v0.8.0 h1:FyWVj6x6hoJrui5uRQdYZcSievw3Z32Z88uYzG/0D6M= +github.com/CycloneDX/cyclonedx-go v0.8.0/go.mod h1:K2bA+324+Og0X84fA8HhN2X066K7Bxz4rpMQ4ZhjtSk= 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= @@ -21,7 +20,6 @@ github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d h1:licZJFw2RwpH github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d/go.mod h1:asat636LX7Bqt5lYEZ27JNDcqxfjdBQuJ/MM4CN/Lzo= github.com/agnivade/levenshtein v1.1.1 h1:QY8M92nrzkmr798gCo3kmMyqXFzdQVpxLlGPRBij0P8= github.com/agnivade/levenshtein v1.1.1/go.mod h1:veldBMzWxcCG2ZvUTKD2kJNRdCk5hVbJomOvKkmgYbo= -github.com/andybalholm/brotli v1.0.1/go.mod h1:loMXtMfwqflxFJPmdbJO0a3KNoPuLBgiu3qAvBg8x/Y= github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1U3M= github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= @@ -37,7 +35,6 @@ github.com/c-bata/go-prompt v0.2.5 h1:3zg6PecEywxNn0xiqcXHD96fkbxghD+gdB2tbsYfl+ github.com/c-bata/go-prompt v0.2.5/go.mod h1:vFnjEGDIIA/Lib7giyE4E9c50Lvl8j0S+7FVlAwDAVw= github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM= github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= github.com/chzyer/logex v1.2.1 h1:XHDu3E6q+gdHgsdTPH6ImJMIp436vR6MPtH8gP05QzM= github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= @@ -47,22 +44,18 @@ github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObk github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/chzyer/test v1.0.0 h1:p3BQDXSxOhOG0P9z6/hGnII4LGiEPOYBhs8asl/fC04= github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= -github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= -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/cloudflare/circl v1.3.7 h1:qlCDlTPz2n9fu58M0Nh1J/JzcFpfgkFHHX3O35r5vcU= +github.com/cloudflare/circl v1.3.7/go.mod h1:sRTcRWXGLrKw6yIGJ+l7amYJFfAXbZG0kBSc8r4zxgA= github.com/containerd/containerd v1.7.11 h1:lfGKw3eU35sjV0aG2eYZTiwFEY1pCzxdzicHP3SZILw= github.com/containerd/containerd v1.7.11/go.mod h1:5UluHxHTX2rdvYuZ5OJTC5m/KJNs0Zs9wVoJm9zf5ZE= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= -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 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= -github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/cyphar/filepath-securejoin v0.2.4 h1:Ugdm7cg7i6ZK6x3xDF1oEu1nfkyfH53EtKeQYTC3kyg= github.com/cyphar/filepath-securejoin v0.2.4/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -77,7 +70,6 @@ github.com/docker/docker v24.0.7+incompatible h1:Wo6l37AuwP3JaMnZa226lzVXGA3F9Ig github.com/docker/docker v24.0.7+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= 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/dsnet/compress v0.0.2-0.20210315054119-f66993602bf5 h1:iFaUwBSo5Svw6L7HYpRu/0lE3e0BaElwnNO1qkNQxBY= @@ -88,7 +80,6 @@ github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ= github.com/forPelevin/gomoji v1.1.8 h1:JElzDdt0TyiUlecy6PfITDL6eGvIaxqYH1V52zrd0qQ= github.com/forPelevin/gomoji v1.1.8/go.mod h1:8+Z3KNGkdslmeGZBC3tCrwMrcPy5GRzAD+gL9NAwMXg= -github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= @@ -102,8 +93,6 @@ github.com/go-git/go-git/v5 v5.11.0 h1:XIZc1p+8YzypNr34itUfSvYJcv+eYdTnTvOZ2vD3c github.com/go-git/go-git/v5 v5.11.0/go.mod h1:6GFcX2P3NM7FPBfpePbpLd21XxsgdAt+lKqXmCUiUCY= github.com/gocarina/gocsv v0.0.0-20231116093920-b87c2d0e983a h1:RYfmiM0zluBJOiPDJseKLEN4BapJ42uSi9SZBQ2YyiA= github.com/gocarina/gocsv v0.0.0-20231116093920-b87c2d0e983a/go.mod h1:5YoVOkjYAQumqlV356Hj3xeYh4BdZuLE0/nRkf2NKkI= -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.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= @@ -115,55 +104,50 @@ github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaW github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= 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/golang/snappy v0.0.2/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -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.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/uuid v1.5.0 h1:1p67kYwdtXjb0gL0BPiP1Av9wiZPo5A8z2cWkTZ+eyU= -github.com/google/uuid v1.5.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gookit/color v1.5.4 h1:FZmqs7XOyGgCAxmWyPslpiok1k05wmY3SJTytgvYFs0= github.com/gookit/color v1.5.4/go.mod h1:pZJOeOS8DM43rXbp4AZo1n9zCU2qjpcRko0b6/QJi9w= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= -github.com/jedib0t/go-pretty/v6 v6.5.3 h1:GIXn6Er/anHTkVUoufs7ptEvxdD6KIhR7Axa2wYCPF0= -github.com/jedib0t/go-pretty/v6 v6.5.3/go.mod h1:5LQIxa52oJ/DlDSLv0HEkWOFMDGoWkJb9ss5KqPpJBg= +github.com/jedib0t/go-pretty/v6 v6.5.4 h1:gOGo0613MoqUcf0xCj+h/V3sHDaZasfv152G6/5l91s= +github.com/jedib0t/go-pretty/v6 v6.5.4/go.mod h1:5LQIxa52oJ/DlDSLv0HEkWOFMDGoWkJb9ss5KqPpJBg= github.com/jfrog/archiver/v3 v3.6.0 h1:OVZ50vudkIQmKMgA8mmFF9S0gA47lcag22N13iV3F1w= github.com/jfrog/archiver/v3 v3.6.0/go.mod h1:fCAof46C3rAXgZurS8kNRNdSVMKBbZs+bNNhPYxLldI= -github.com/jfrog/build-info-go v1.9.21 h1:bcD0SEC2lEilhjE+aDB3xlvA8zsr4Kw/bFzvr9Tcj9I= -github.com/jfrog/build-info-go v1.9.21/go.mod h1:Vxv6zmx4e1NWsx40OHaDWCCYDeYAq2yXzpJ4nsDChbE= -github.com/jfrog/gofrog v1.5.1 h1:2AXL8hHu1jJFMIoCqTp2OyRUfEqEp4nC7J8fwn6KtwE= -github.com/jfrog/gofrog v1.5.1/go.mod h1:SZ1EPJUruxrVGndOzHd+LTiwWYKMlHqhKD+eu+v5Hqg= +github.com/jfrog/build-info-go v1.9.23 h1:+TwUIBEJwRvz9skR8xBfY5ti8Vl4Z6iMCkFbkclnEN0= +github.com/jfrog/build-info-go v1.9.23/go.mod h1:QHcKuesY4MrBVBuEwwBz4uIsX6mwYuMEDV09ng4AvAU= +github.com/jfrog/gofrog v1.6.0 h1:jOwb37nHY2PnxePNFJ6e6279Pgkr3di05SbQQw47Mq8= +github.com/jfrog/gofrog v1.6.0/go.mod h1:SZ1EPJUruxrVGndOzHd+LTiwWYKMlHqhKD+eu+v5Hqg= github.com/jfrog/jfrog-apps-config v1.0.1 h1:mtv6k7g8A8BVhlHGlSveapqf4mJfonwvXYLipdsOFMY= github.com/jfrog/jfrog-apps-config v1.0.1/go.mod h1:8AIIr1oY9JuH5dylz2S6f8Ym2MaadPLR6noCBO4C22w= -github.com/jfrog/jfrog-cli-core/v2 v2.47.11 h1:2oHyITZjnjuuwU/LEVedlA3NkJz3PbaXdBT2Y1kt21o= -github.com/jfrog/jfrog-cli-core/v2 v2.47.11/go.mod h1:RVn4pIkR5fPUnr8gFXt61ou3pCNrrDdRQUpcolP4lhw= -github.com/jfrog/jfrog-cli-security v0.0.0-20240122124933-edf9cb4ca3ac h1:tNn3TQXaIJZ9Fu5jiVB9lWpJAKkEGWNjz/6WzHhHePI= -github.com/jfrog/jfrog-cli-security v0.0.0-20240122124933-edf9cb4ca3ac/go.mod h1:X4rz1639L8vWKJgpLxpO3ddkIW7KaCaQjbwani7FPf4= -github.com/jfrog/jfrog-client-go v1.36.0 h1:iODLDjYSlK7rLH8/lEmAFHwYsboeBfaqxXybz6waraE= -github.com/jfrog/jfrog-client-go v1.36.0/go.mod h1:y1WF6eiZ7V2DortiwjpMEicEH6NIJH+hOXI5QI2W3NU= -github.com/jszwec/csvutil v1.9.0 h1:iTmq9G1P0e+AUq/MkFg6tetJ+1BH3fOX8Xi0RAcwiGc= -github.com/jszwec/csvutil v1.9.0/go.mod h1:/E4ONrmGkwmWsk9ae9jpXnv9QT8pLHEPcCirMFhxG9I= +github.com/jfrog/jfrog-cli-core/v2 v2.48.1 h1:rRqI82btSFKFStGd7uEiheeBAuEjrw+ZZbE1abaKUBU= +github.com/jfrog/jfrog-cli-core/v2 v2.48.1/go.mod h1:9aZHtR9x7s9VUa5AalOjJkxMMPSgxXgQ5hdU3vzMwcs= +github.com/jfrog/jfrog-cli-security v1.0.3 h1:TUfPmMEavLZzxvHJSzuXg1m9OQolGL/atE8cRbuPvls= +github.com/jfrog/jfrog-cli-security v1.0.3/go.mod h1:NHmNHYlF6g4QSDyTQ3yUM57+WXZQfqskc2C1Mxj/FQY= +github.com/jfrog/jfrog-client-go v1.37.1 h1:BqIWGPajC5vhUo5dcQ9KEJr0EVANr/O4cfEqRYvzvRg= +github.com/jfrog/jfrog-client-go v1.37.1/go.mod h1:y+zeO0LeT2uHoHs4/fXHrm5dfF02bg6Dw3cNJxgJ5LY= +github.com/jszwec/csvutil v1.10.0 h1:upMDUxhQKqZ5ZDCs/wy+8Kib8rZR8I8lOR34yJkdqhI= +github.com/jszwec/csvutil v1.10.0/go.mod h1:/E4ONrmGkwmWsk9ae9jpXnv9QT8pLHEPcCirMFhxG9I= 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= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A= -github.com/klauspost/compress v1.11.4/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= github.com/klauspost/compress v1.17.4 h1:Ej5ixsIri7BrIjBkRZLTo6ghwrEtHFk7ijlczPW4fZ4= github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= github.com/klauspost/cpuid v1.2.0/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid/v2 v2.2.3 h1:sxCkb+qR91z4vsqw4vGGZlDgPz3G7gjaLyK3V8y70BU= github.com/klauspost/cpuid/v2 v2.2.3/go.mod h1:RVVoqg1df56z8g3pUjL/3lE5UfnlrJX8tyFgg4nqhuY= -github.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/klauspost/pgzip v1.2.6 h1:8RXeL5crjEUFnR2/Sn6GJNWtSQ3Dk8pq4CL3jvdDyjU= github.com/klauspost/pgzip v1.2.6/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= @@ -189,23 +173,18 @@ github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZ github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-tty v0.0.3 h1:5OfyWorkyO7xP52Mq7tB36ajHDG5OHrmBGIS/DtakQI= github.com/mattn/go-tty v0.0.3/go.mod h1:ihxohKRERHTVzN+aSVRwACLCeqIoZAWpoICkkvrWyR0= -github.com/mholt/archiver/v3 v3.5.1 h1:rDjOBX9JSF5BvoJGvjqK479aL70qh9DIpZCl+k7Clwo= -github.com/mholt/archiver/v3 v3.5.1/go.mod h1:e3dqJ7H78uzsRSEACH1joayhuSyhnonssnDhppzS1L4= github.com/minio/sha256-simd v1.0.1 h1:6kaan5IFmwTNynnKKpDHe6FWHohJOHhCPchzK49dzMM= github.com/minio/sha256-simd v1.0.1/go.mod h1:Pz6AKMiUdngCLpeTL/RJY1M9rUuPMYujV5xJjtbRSN8= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= github.com/moby/patternmatcher v0.6.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.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/nwaples/rardecode v1.1.0/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0= github.com/nwaples/rardecode v1.1.3 h1:cWCaZwfM5H7nAD6PyEdcVnczzV8i/JtotnyW/dD9lEc= github.com/nwaples/rardecode v1.1.3/go.mod h1:5DzqNKiOdpKKBH87u8VlvAnPZMXcGRhxWkRpHbbfGS0= github.com/onsi/gomega v1.27.10 h1:naR28SdDFlqrG6kScpT8VWpu1xWY5nJRCF3XaYyBjhI= @@ -213,16 +192,13 @@ 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-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI= github.com/opencontainers/image-spec v1.1.0-rc5/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.12 h1:BOIssBaW1La0/qbNZHXOOa71dZfZEQOzW7dqQf3phss= +github.com/opencontainers/runc v1.1.12/go.mod h1:S+lQwSfncpBha7XTy/5lBwWgm5+y5Ma/O44Ekby9FK8= github.com/owenrumney/go-sarif v1.1.1/go.mod h1:dNDiPlF04ESR/6fHlPyq7gHKmrM0sHUvAGjsoh8ZH0U= github.com/owenrumney/go-sarif/v2 v2.3.0 h1:wP5yEpI53zr0v5cBmagXzLbHZp9Oylyo3AJDpfLBITs= github.com/owenrumney/go-sarif/v2 v2.3.0/go.mod h1:MSqMMx9WqlBSY7pXoOZWgEsVB4FDNfhcaXDA1j6Sr+w= github.com/pelletier/go-toml/v2 v2.1.0 h1:FnwAJ4oYMvbT/34k9zzHuZNrhlz48GB3/s6at6/MHO4= github.com/pelletier/go-toml/v2 v2.1.0/go.mod h1:tJU2Z3ZkXwnxa4DPO899bsyIoywizdUvyaeZurnPPDc= -github.com/pierrec/lz4/v4 v4.1.2/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pierrec/lz4/v4 v4.1.21 h1:yOVMLb6qSIDP67pl/5F7RepeKYu/VmTyEXvuMI5d9mQ= github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= @@ -240,19 +216,15 @@ github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ github.com/rivo/uniseg v0.4.3 h1:utMvzDsuh3suAEnhH0RdHmoPbU648o6CvXxTx4SBMOw= github.com/rivo/uniseg v0.4.3/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= -github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= github.com/sergi/go-diff v1.1.0 h1:we8PVUC3FE2uYfodKH/nBHMSetSfHDR6scGdBi+erh0= github.com/sergi/go-diff v1.1.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.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/skeema/knownhosts v1.2.1 h1:SHWdIUa82uGZz+F+47k8SY4QhhI291cXCpopT1lK2AQ= @@ -280,21 +252,16 @@ github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcU github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/terminalstatic/go-xsd-validate v0.1.5 h1:RqpJnf6HGE2CB/lZB1A8BYguk8uRtcvYAPLCF15qguo= github.com/testcontainers/testcontainers-go v0.23.0 h1:ERYTSikX01QczBLPZpqsETTBO7lInqEP349phDOVJVs= github.com/testcontainers/testcontainers-go v0.23.0/go.mod h1:3gzuZfb7T9qfcH2pHpV4RLlWrPjeWNQah6XlYQ32c4I= github.com/ulikunitz/xz v0.5.8/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= -github.com/ulikunitz/xz v0.5.9/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8= github.com/ulikunitz/xz v0.5.11/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= -github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.14 h1:ebbhrRiGK2i4naQJr+1Xj92HXZCrK7MsyTS/ob3HnAk= github.com/urfave/cli v1.22.14/go.mod h1:X0eDS6pD6Exaclxm99NJ3FiCDRED7vIHpx2mDOHLvkA= github.com/vbauerster/mpb/v7 v7.5.3 h1:BkGfmb6nMrrBQDFECR/Q7RkKCw7ylMetCb4079CGs4w= github.com/vbauerster/mpb/v7 v7.5.3/go.mod h1:i+h4QY6lmLvBNK2ah1fSreiw3ajskRlBp9AhY/PnuOE= -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/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= github.com/xanzy/ssh-agent v0.3.3 h1:+/15pJfg/RsTxqYcX6fHqOXZwwMP+2VyYWJeWM2qQFM= @@ -325,31 +292,30 @@ golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.3.1-0.20221117191849-2c476679df9a/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= golang.org/x/crypto v0.7.0/go.mod h1:pYwdfH91IfpZVANVyUOhSIPZaFoJGxTFbZhFTx+dXZU= -golang.org/x/crypto v0.18.0 h1:PGVlW0xEltQnzFZ55hkuX5+KLyrMYhHld1YHO4AKcdc= -golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= -golang.org/x/exp v0.0.0-20240119083558-1b970713d09a h1:Q8/wZp0KX97QFTc2ywcOE0YRjZPVIx+MXInMzdvQqcA= -golang.org/x/exp v0.0.0-20240119083558-1b970713d09a/go.mod h1:idGWGoKP1toJGkd5/ig9ZLuPcZBC3ewk7SzmH0uou08= +golang.org/x/crypto v0.19.0 h1:ENy+Az/9Y1vSrlrvBSyna3PITt4tiZLf7sgCjZBX7Wo= +golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= +golang.org/x/exp v0.0.0-20240213143201-ec583247a57a h1:HinSgX1tJRX3KsL//Gxynpw5CTOAIPhgL4W8PNiIpVE= +golang.org/x/exp v0.0.0-20240213143201-ec583247a57a/go.mod h1:CxmFvTBINI24O/j8iY7H1xHzx2i4OsyguNBmN/uPtqc= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.14.0 h1:dGoOF9QVLYng8IHTm7BAyWqCqSheQ5pYWGhzW00YJr0= -golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.15.0 h1:SernR4v+D55NyBH2QiEQrlBAnj1ECL6AGrA5+dPaMY8= +golang.org/x/mod v0.15.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= 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-20200301022130-244492dfa37a/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-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= -golang.org/x/net v0.20.0 h1:aCL9BSgETF1k+blQaYUBx9hJ9LOGP3gAVemcZlf1Kpo= -golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= +golang.org/x/net v0.21.0 h1:AQyQV4dYCvJ7vGmJyKki9+PBdyvhkSd8EIx/qb0AYv4= +golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -361,10 +327,8 @@ golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5h 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-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191008105621-543471e840be/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-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -376,9 +340,6 @@ golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/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-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-20220310020820-b874c991c1a5/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-20220704084225-05e143d24a9e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -391,15 +352,15 @@ golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= -golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.17.0 h1:25cE3gD+tdBA7lp7QfhuV+rJiE9YXTcS3VG1SqssI/Y= +golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= -golang.org/x/term v0.16.0 h1:m+B6fahuftsE9qjo0VWp2FW0mB3MTJvR0BaMQrq0pmE= -golang.org/x/term v0.16.0/go.mod h1:yn7UURbUtPyrVJPGPq404EukNFxcm/foM+bV/bfcDsY= +golang.org/x/term v0.17.0 h1:mkTF7LCd6WGJNL3K1Ad7kwxNfYAW6a8a8QqtMblp/4U= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= @@ -418,8 +379,8 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= -golang.org/x/tools v0.17.0 h1:FvmRgNOcs3kOa+T20R1uhfP9F6HgG2mfxDv1vrx1Htc= -golang.org/x/tools v0.17.0/go.mod h1:xsh6VxdV005rRVaS6SSAf9oiAqljS7UZUacMZ8Bnsps= +golang.org/x/tools v0.18.0 h1:k8NLag8AGHnn+PHbl7g43CtqZAwG60vZkLqgyZgIHgQ= +golang.org/x/tools v0.18.0/go.mod h1:GL7B4CwcLLeo59yx/9UWWuNOW1n3VZ4f5axWfML7Lcg= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -431,7 +392,6 @@ google.golang.org/grpc v1.59.0 h1:Z5Iec2pjwb+LEOqzpB2MR12/eKFhDPhuqW91O+4bwUk= google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= 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.31.0 h1:g0LDEJHgrBl9N9r17Ru3sqWhkIx2NB67okBHPwC7hs8= google.golang.org/protobuf v1.31.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/lifecycle/cli.go b/lifecycle/cli.go index e4b29edbd..a27268cb8 100644 --- a/lifecycle/cli.go +++ b/lifecycle/cli.go @@ -16,6 +16,7 @@ import ( "github.com/jfrog/jfrog-client-go/utils" "github.com/jfrog/jfrog-client-go/utils/errorutils" "github.com/urfave/cli" + "strings" ) const lcCategory = "Lifecycle" @@ -119,7 +120,8 @@ func promote(c *cli.Context) error { createCmd := lifecycle.NewReleaseBundlePromoteCommand().SetServerDetails(lcDetails).SetReleaseBundleName(c.Args().Get(0)). SetReleaseBundleVersion(c.Args().Get(1)).SetEnvironment(c.Args().Get(2)).SetSigningKeyName(c.String(cliutils.SigningKey)). - SetSync(c.Bool(cliutils.Sync)).SetReleaseBundleProject(cliutils.GetProject(c)).SetOverwrite(c.Bool(cliutils.Overwrite)) + SetSync(c.Bool(cliutils.Sync)).SetReleaseBundleProject(cliutils.GetProject(c)). + SetIncludeReposPatterns(splitRepos(c, cliutils.IncludeRepos)).SetExcludeReposPatterns(splitRepos(c, cliutils.ExcludeRepos)) return commands.Exec(createCmd) } @@ -186,3 +188,10 @@ func PlatformToLifecycleUrls(lcDetails *coreConfig.ServerDetails) { lcDetails.LifecycleUrl = utils.AddTrailingSlashIfNeeded(lcDetails.Url) + "lifecycle/" lcDetails.Url = "" } + +func splitRepos(c *cli.Context, reposOptionKey string) []string { + if c.IsSet(reposOptionKey) { + return strings.Split(c.String(reposOptionKey), ";") + } + return nil +} diff --git a/lifecycle_test.go b/lifecycle_test.go index 1519f0197..b25d75646 100644 --- a/lifecycle_test.go +++ b/lifecycle_test.go @@ -15,8 +15,8 @@ import ( "github.com/jfrog/jfrog-client-go/lifecycle" "github.com/jfrog/jfrog-client-go/lifecycle/services" clientUtils "github.com/jfrog/jfrog-client-go/utils" - "github.com/jfrog/jfrog-client-go/utils/distribution" "github.com/jfrog/jfrog-client-go/utils/errorutils" + clientTestUtils "github.com/jfrog/jfrog-client-go/utils/tests" "github.com/stretchr/testify/assert" "net/http" "os" @@ -42,7 +42,8 @@ var ( ) func TestLifecycle(t *testing.T) { - initLifecycleTest(t) + cleanHomeDir := initLifecycleTest(t) + defer cleanHomeDir() defer cleanLifecycleTests(t) lcManager := getLcServiceManager(t) @@ -54,7 +55,8 @@ func TestLifecycle(t *testing.T) { createRb(t, buildsSpec12, cliutils.Builds, tests.LcRbName1, number1, true) defer deleteReleaseBundle(t, lcManager, tests.LcRbName1, number1) - // Create release bundle from builds asynchronously and assert status. + // Create release bundle from a build asynchronously and assert status. + // This build has dependencies which are included in the release bundle. createRb(t, buildsSpec3, cliutils.Builds, tests.LcRbName2, number2, false) defer deleteReleaseBundle(t, lcManager, tests.LcRbName2, number2) assertStatusCompleted(t, lcManager, tests.LcRbName2, number2, "") @@ -63,27 +65,35 @@ func TestLifecycle(t *testing.T) { createRb(t, releaseBundlesSpec, cliutils.ReleaseBundles, tests.LcRbName3, number3, true) defer deleteReleaseBundle(t, lcManager, tests.LcRbName3, number3) - // Promote the last release bundle. + // Promote the last release bundle to prod repo 1. promoteRb(t, lcManager, number3) - // Verify the artifacts of both the initial release bundles made it to the prod repo. - searchProdSpec, err := tests.CreateSpec(tests.SearchAllProdRepo) - assert.NoError(t, err) - inttestutils.VerifyExistInArtifactory(tests.GetExpectedLifecycleArtifacts(), searchProdSpec, serverDetails, t) + // Assert the artifacts of both the initial release bundles made it to prod repo 1. + assertExpectedArtifacts(t, tests.SearchAllProdRepo1, tests.GetExpectedLifecycleArtifacts()) + // Assert no artifacts were promoted to prod repo 2. + assertExpectedArtifacts(t, tests.SearchAllProdRepo2, []string{}) + + // TODO Temporarily disabling till distribution on testing suite is stable. + /* + distributeRb(t) + defer remoteDeleteReleaseBundle(t, lcManager, tests.LcRbName3, number3) - distributeRb(t) - defer remoteDeleteReleaseBundle(t, lcManager, tests.LcRbName3, number3) + // Verify the artifacts were distributed correctly by the provided path mappings. + assertExpectedArtifacts(t, tests.SearchAllDevRepo, tests.GetExpectedLifecycleDistributedArtifacts()) + */ - // Verify the artifacts were distributed correctly by the provided path mappings. - searchDevSpec, err := tests.CreateSpec(tests.SearchAllDevRepo) +} + +func assertExpectedArtifacts(t *testing.T, specFileName string, expected []string) { + searchProdSpec, err := tests.CreateSpec(specFileName) assert.NoError(t, err) - inttestutils.VerifyExistInArtifactory(tests.GetExpectedLifecycleDistributedArtifacts(), searchDevSpec, serverDetails, t) + inttestutils.VerifyExistInArtifactory(expected, searchProdSpec, serverDetails, t) } func uploadBuilds(t *testing.T) func() { - uploadBuild(t, tests.UploadDevSpecA, tests.LcBuildName1, number1) - uploadBuild(t, tests.UploadDevSpecB, tests.LcBuildName2, number2) - uploadBuild(t, tests.UploadDevSpecC, tests.LcBuildName3, number3) + uploadBuild(t, tests.UploadDevSpecA, tests.LcBuildName1, number1, false) + uploadBuild(t, tests.UploadDevSpecB, tests.LcBuildName2, number2, false) + uploadBuild(t, tests.UploadDevSpecC, tests.LcBuildName3, number3, true) return func() { inttestutils.DeleteBuild(serverDetails.ArtifactoryUrl, tests.LcBuildName1, artHttpDetails) inttestutils.DeleteBuild(serverDetails.ArtifactoryUrl, tests.LcBuildName2, artHttpDetails) @@ -108,6 +118,7 @@ func createRb(t *testing.T, specName, sourceOption, rbName, rbVersion string, sy assert.NoError(t, lcCli.Exec(argsAndOptions...)) } +/* func distributeRb(t *testing.T) { distributionRulesPath := filepath.Join(tests.GetTestResourcesPath(), "distribution", tests.DistributionRules) assert.NoError(t, lcCli.Exec( @@ -119,6 +130,7 @@ func distributeRb(t *testing.T) { // Wait after distribution before asserting. Can be removed once distribute supports sync. time.Sleep(5 * time.Second) } +*/ func getOption(option, value string) string { return fmt.Sprintf("--%s=%s", option, value) @@ -127,7 +139,7 @@ func getOption(option, value string) string { func promoteRb(t *testing.T, lcManager *lifecycle.LifecycleServicesManager, rbVersion string) { output := lcCli.RunCliCmdWithOutput(t, "rbp", tests.LcRbName3, rbVersion, prodEnvironment, getOption(cliutils.SigningKey, gpgKeyPairName), - getOption(cliutils.Overwrite, "true"), + getOption(cliutils.IncludeRepos, tests.RtProdRepo1), "--project=default") var promotionResp services.RbPromotionResp if !assert.NoError(t, json.Unmarshal([]byte(output), &promotionResp)) { @@ -192,11 +204,12 @@ func deleteReleaseBundle(t *testing.T, lcManager *lifecycle.LifecycleServicesMan ReleaseBundleVersion: rbVersion, } - assert.NoError(t, lcManager.DeleteReleaseBundle(rbDetails, services.ReleaseBundleQueryParams{Async: false})) + assert.NoError(t, lcManager.DeleteReleaseBundle(rbDetails, services.CommonOptionalQueryParams{Async: false})) // Wait after remote deleting. Can be removed once remote deleting supports sync. time.Sleep(5 * time.Second) } +/* func remoteDeleteReleaseBundle(t *testing.T, lcManager *lifecycle.LifecycleServicesManager, rbName, rbVersion string) { params := distribution.NewDistributeReleaseBundleParams(rbName, rbVersion) rules := &distribution.DistributionCommonParams{ @@ -210,15 +223,22 @@ func remoteDeleteReleaseBundle(t *testing.T, lcManager *lifecycle.LifecycleServi // Wait after remote deleting. Can be removed once remote deleting supports sync. time.Sleep(5 * time.Second) } +*/ -func uploadBuild(t *testing.T, specFileName, buildName, buildNumber string) { +func uploadBuild(t *testing.T, specFileName, buildName, buildNumber string, uploadAsDependencies bool) { specFile, err := tests.CreateSpec(specFileName) assert.NoError(t, err) - runRt(t, "upload", "--spec="+specFile, "--build-name="+buildName, "--build-number="+buildNumber) + + if uploadAsDependencies { + runRt(t, "upload", "--spec="+specFile) + assert.NoError(t, lcCli.WithoutCredentials().Exec("rt", "bad", buildName, buildNumber, tests.RtDevRepo+"/c*.in", "--from-rt")) + } else { + runRt(t, "upload", "--spec="+specFile, "--build-name="+buildName, "--build-number="+buildNumber) + } runRt(t, "build-publish", buildName, buildNumber) } -func initLifecycleTest(t *testing.T) { +func initLifecycleTest(t *testing.T) (cleanHomeDir func()) { if !*tests.TestLifecycle { t.Skip("Skipping lifecycle test. To run release bundle test add the '-test.lc=true' option.") } @@ -227,6 +247,13 @@ func initLifecycleTest(t *testing.T) { if !isLifecycleSupported(t) { t.Skip("Skipping lifecycle test because the functionality is not enabled on the provided JPD.") } + + // Populate cli config with 'default' server. + oldHomeDir, newHomeDir := prepareHomeDir(t) + return func() { + clientTestUtils.SetEnvAndAssert(t, coreutils.HomeDir, oldHomeDir) + clientTestUtils.RemoveAllAndAssert(t, newHomeDir) + } } func isLifecycleSupported(t *testing.T) (skip bool) { @@ -264,7 +291,8 @@ func CleanLifecycleTests() { func cleanLifecycleTests(t *testing.T) { deleteFilesFromRepo(t, tests.RtDevRepo) - deleteFilesFromRepo(t, tests.RtProdRepo) + deleteFilesFromRepo(t, tests.RtProdRepo1) + deleteFilesFromRepo(t, tests.RtProdRepo2) tests.CleanFileSystem() } diff --git a/plugins/commands/install.go b/plugins/commands/install.go index 913d043a4..72f6ffe70 100644 --- a/plugins/commands/install.go +++ b/plugins/commands/install.go @@ -6,8 +6,8 @@ import ( "path/filepath" "strings" + "github.com/jfrog/archiver/v3" ioutils "github.com/jfrog/jfrog-client-go/utils/io" - "github.com/mholt/archiver/v3" "github.com/jfrog/jfrog-cli-core/v2/utils/config" "github.com/jfrog/jfrog-cli-core/v2/utils/plugins" diff --git a/testdata/filespecs/search_all_prod_repo.json b/testdata/filespecs/search_all_prod_repo.json deleted file mode 100644 index 2930acf50..000000000 --- a/testdata/filespecs/search_all_prod_repo.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "files": [ - { - "pattern": "${PROD_REPO}/*" - } - ] -} \ No newline at end of file diff --git a/testdata/filespecs/search_all_prod_repo1.json b/testdata/filespecs/search_all_prod_repo1.json new file mode 100644 index 000000000..78bf1ac12 --- /dev/null +++ b/testdata/filespecs/search_all_prod_repo1.json @@ -0,0 +1,7 @@ +{ + "files": [ + { + "pattern": "${PROD_REPO1}/*" + } + ] +} \ No newline at end of file diff --git a/testdata/filespecs/search_all_prod_repo2.json b/testdata/filespecs/search_all_prod_repo2.json new file mode 100644 index 000000000..07f4ed213 --- /dev/null +++ b/testdata/filespecs/search_all_prod_repo2.json @@ -0,0 +1,7 @@ +{ + "files": [ + { + "pattern": "${PROD_REPO2}/*" + } + ] +} \ No newline at end of file diff --git a/testdata/lifecycle/builds-spec-3.json b/testdata/lifecycle/builds-spec-3.json index b188d7eb6..a93474ff6 100644 --- a/testdata/lifecycle/builds-spec-3.json +++ b/testdata/lifecycle/builds-spec-3.json @@ -2,7 +2,8 @@ "builds": [ { "name": "${LC_BUILD_NAME3}", - "number": "" + "number": "", + "includeDependencies": true } ] } diff --git a/testdata/prod_repo_repository_config.json b/testdata/prod_repo1_repository_config.json similarity index 75% rename from testdata/prod_repo_repository_config.json rename to testdata/prod_repo1_repository_config.json index 6187c443e..8a21e0d1a 100644 --- a/testdata/prod_repo_repository_config.json +++ b/testdata/prod_repo1_repository_config.json @@ -1,5 +1,5 @@ { - "key": "${PROD_REPO}", + "key": "${PROD_REPO1}", "rclass": "local", "packageType": "generic", "environments":["PROD"] diff --git a/testdata/prod_repo2_repository_config.json b/testdata/prod_repo2_repository_config.json new file mode 100644 index 000000000..76aba6ecd --- /dev/null +++ b/testdata/prod_repo2_repository_config.json @@ -0,0 +1,6 @@ +{ + "key": "${PROD_REPO2}", + "rclass": "local", + "packageType": "generic", + "environments":["PROD"] +} diff --git a/utils/cliutils/cli_consts.go b/utils/cliutils/cli_consts.go index a142f81f3..557459b22 100644 --- a/utils/cliutils/cli_consts.go +++ b/utils/cliutils/cli_consts.go @@ -4,7 +4,7 @@ import "time" const ( // General CLI constants - CliVersion = "2.52.10" + CliVersion = "2.53.0" ClientAgent = "jfrog-cli-go" // CLI base commands constants: diff --git a/utils/cliutils/commandsflags.go b/utils/cliutils/commandsflags.go index 30a9b2b5f..a5fe38b87 100644 --- a/utils/cliutils/commandsflags.go +++ b/utils/cliutils/commandsflags.go @@ -51,6 +51,7 @@ const ( Npm = "npm" NpmInstallCi = "npm-install-ci" NpmPublish = "npm-publish" + PnpmConfig = "pnpm-config" YarnConfig = "yarn-config" Yarn = "yarn" NugetConfig = "nuget-config" @@ -103,21 +104,6 @@ const ( JpdAdd = "jpd-add" JpdDelete = "jpd-delete" - // Xray's Commands Keys - XrCurl = "xr-curl" - CurationAudit = "curation-audit" - Audit = "audit" - AuditMvn = "audit-maven" - AuditGradle = "audit-gradle" - AuditNpm = "audit-npm" - AuditGo = "audit-go" - AuditPip = "audit-pip" - AuditPipenv = "audit-pipenv" - DockerScan = "docker scan" - XrScan = "xr-scan" - BuildScan = "build-scan" - OfflineUpdate = "offline-update" - // Config commands keys AddConfig = "config-add" EditConfig = "config-edit" @@ -585,12 +571,13 @@ const ( lcReleaseBundles = lifecyclePrefix + ReleaseBundles SigningKey = "signing-key" lcSigningKey = lifecyclePrefix + SigningKey - lcOverwrite = lifecyclePrefix + Overwrite PathMappingPattern = "mapping-pattern" lcPathMappingPattern = lifecyclePrefix + PathMappingPattern PathMappingTarget = "mapping-target" lcPathMappingTarget = lifecyclePrefix + PathMappingTarget lcDryRun = lifecyclePrefix + dryRun + lcIncludeRepos = lifecyclePrefix + IncludeRepos + lcExcludeRepos = lifecyclePrefix + ExcludeRepos ) var flagsMap = map[string]cli.Flag{ @@ -666,7 +653,7 @@ var flagsMap = map[string]cli.Flag{ }, specVars: cli.StringFlag{ Name: specVars, - Usage: "[Optional] List of variables in the form of \"key1=value1;key2=value2;...\" to be replaced in the File Spec. In the File Spec, the variables should be used as follows: ${key1}.` `", + Usage: "[Optional] List of variables in the form of \"key1=value1;key2=value2;...\" (wrapped by quotes) to be replaced in the File Spec. In the File Spec, the variables should be used as follows: ${key1}.` `", }, buildName: cli.StringFlag{ Name: buildName, @@ -1172,7 +1159,7 @@ var flagsMap = map[string]cli.Flag{ }, vars: cli.StringFlag{ Name: vars, - Usage: "[Optional] List of variables in the form of \"key1=value1;key2=value2;...\" to be replaced in the template. In the template, the variables should be used as follows: ${key1}.` `", + Usage: "[Optional] List of variables in the form of \"key1=value1;key2=value2;...\" (wrapped by quotes) to be replaced in the template. In the template, the variables should be used as follows: ${key1}.` `", }, rtAtcGroups: cli.StringFlag{ Name: Groups, @@ -1651,10 +1638,6 @@ var flagsMap = map[string]cli.Flag{ Name: SigningKey, Usage: "[Mandatory] The GPG/RSA key-pair name given in Artifactory.` `", }, - lcOverwrite: cli.BoolFlag{ - Name: Overwrite, - Usage: "[Default: false] Set to true to replace artifacts with the same name but a different checksum if such already exist at the promotion targets. By default, the promotion is stopped in a case of such conflict.` `", - }, lcPathMappingPattern: cli.StringFlag{ Name: PathMappingPattern, Usage: "[Optional] Specify along with '" + PathMappingTarget + "' to distribute artifacts to a different path on the edge node. You can use wildcards to specify multiple artifacts.` `", @@ -1673,6 +1656,15 @@ var flagsMap = map[string]cli.Flag{ Usage: "Default: false] [npm] when set, the Contextual Analysis scan also uses the code of the project dependencies to determine the applicability of the vulnerability.", Hidden: true, }, + lcIncludeRepos: cli.StringFlag{ + Name: IncludeRepos, + Usage: "[Optional] A list of semicolon-separated repositories to include in the promotion. If this property is left undefined, all repositories (except those specifically excluded) are included in the promotion. " + + "If one or more repositories are specifically included, all other repositories are excluded.` `", + }, + lcExcludeRepos: cli.StringFlag{ + Name: ExcludeRepos, + Usage: "[Optional] A list of semicolon-separated repositories to exclude from the promotion.` `", + }, atcProject: cli.StringFlag{ Name: Project, Usage: "[Optional] The project for which this token is created. Enter the project name on which you want to apply this token.` `", @@ -1857,6 +1849,9 @@ var commandFlags = map[string][]string{ NpmPublish: { buildName, buildNumber, module, Project, npmDetailedSummary, xrayScan, xrOutput, }, + PnpmConfig: { + global, serverIdResolve, repoResolve, + }, YarnConfig: { global, serverIdResolve, repoResolve, }, @@ -1999,7 +1994,7 @@ var commandFlags = map[string][]string{ lcUrl, user, password, accessToken, serverId, lcSigningKey, lcSync, lcProject, lcBuilds, lcReleaseBundles, }, ReleaseBundlePromote: { - lcUrl, user, password, accessToken, serverId, lcSigningKey, lcSync, lcProject, lcOverwrite, + lcUrl, user, password, accessToken, serverId, lcSigningKey, lcSync, lcProject, lcIncludeRepos, lcExcludeRepos, }, ReleaseBundleDistribute: { lcUrl, user, password, accessToken, serverId, lcDryRun, DistRules, site, city, countryCodes, diff --git a/utils/tests/consts.go b/utils/tests/consts.go index 160ef87a3..8067a71dd 100644 --- a/utils/tests/consts.go +++ b/utils/tests/consts.go @@ -92,7 +92,8 @@ const ( SearchAllNpm = "search_all_npm.json" SearchAllRepo1 = "search_all_repo1.json" SearchAllDevRepo = "search_all_dev_repo.json" - SearchAllProdRepo = "search_all_prod_repo.json" + SearchAllProdRepo1 = "search_all_prod_repo1.json" + SearchAllProdRepo2 = "search_all_prod_repo2.json" SearchDistRepoByInSuffix = "search_dist_repo_by_in_suffix.json" SearchRepo1ByInSuffix = "search_repo1_by_in_suffix.json" GoPublishRepoExcludes = "go_publish_repo_excludes.json" @@ -150,7 +151,8 @@ const ( DockerVirtualRepositoryConfig = "docker_virtual_repository_config.json" XrayEndpoint = "xray/" DevRepoRepositoryConfig = "dev_repo_repository_config.json" - ProdRepoRepositoryConfig = "prod_repo_repository_config.json" + ProdRepo1RepositoryConfig = "prod_repo1_repository_config.json" + ProdRepo2RepositoryConfig = "prod_repo2_repository_config.json" UploadDevSpecA = "upload_dev_spec_a.json" UploadDevSpecB = "upload_dev_spec_b.json" UploadDevSpecC = "upload_dev_spec_c.json" @@ -187,8 +189,9 @@ var ( RtRepo2 = "cli-rt2" RtVirtualRepo = "cli-rt-virtual" // Repositories that are assigned to an environment. - RtDevRepo = "cli-rt-dev" - RtProdRepo = "cli-rt-prod" + RtDevRepo = "cli-rt-dev" + RtProdRepo1 = "cli-rt-prod1" + RtProdRepo2 = "cli-rt-prod2" // These are not actual repositories. These patterns are meant to be used in both Repo1 and Repo2. RtRepo1And2 = "cli-rt*" RtRepo1And2Placeholder = "cli-rt(*)" @@ -2088,15 +2091,15 @@ func GetTransferExpectedRepoSnapshot() []string { func GetExpectedLifecycleArtifacts() []string { return []string{ - RtProdRepo + "/a1.in", - RtProdRepo + "/a2.in", - RtProdRepo + "/a3.in", - RtProdRepo + "/b1.in", - RtProdRepo + "/b2.in", - RtProdRepo + "/b3.in", - RtProdRepo + "/c1.in", - RtProdRepo + "/c2.in", - RtProdRepo + "/c3.in", + RtProdRepo1 + "/a1.in", + RtProdRepo1 + "/a2.in", + RtProdRepo1 + "/a3.in", + RtProdRepo1 + "/b1.in", + RtProdRepo1 + "/b2.in", + RtProdRepo1 + "/b3.in", + RtProdRepo1 + "/c1.in", + RtProdRepo1 + "/c2.in", + RtProdRepo1 + "/c3.in", } } diff --git a/utils/tests/utils.go b/utils/tests/utils.go index d113ddcff..5037e5bac 100644 --- a/utils/tests/utils.go +++ b/utils/tests/utils.go @@ -7,6 +7,7 @@ import ( "errors" "flag" "fmt" + "github.com/jfrog/jfrog-client-go/utils/tests" "io" "math/rand" "os" @@ -36,7 +37,6 @@ import ( clientutils "github.com/jfrog/jfrog-client-go/utils" "github.com/jfrog/jfrog-client-go/utils/io/fileutils" "github.com/jfrog/jfrog-client-go/utils/log" - "github.com/jfrog/jfrog-client-go/utils/tests" "github.com/stretchr/testify/assert" ) @@ -274,7 +274,8 @@ var reposConfigMap = map[*string]string{ &DockerRemoteRepo: DockerRemoteRepositoryConfig, &DockerVirtualRepo: DockerVirtualRepositoryConfig, &RtDevRepo: DevRepoRepositoryConfig, - &RtProdRepo: ProdRepoRepositoryConfig, + &RtProdRepo1: ProdRepo1RepositoryConfig, + &RtProdRepo2: ProdRepo2RepositoryConfig, } var CreatedNonVirtualRepositories map[*string]string @@ -324,7 +325,7 @@ func GetNonVirtualRepositories() map[*string]string { TestXray: {&NpmRemoteRepo, &NugetRemoteRepo, &YarnRemoteRepo, &GradleRemoteRepo, &MvnRemoteRepo, &GoRepo, &GoRemoteRepo, &PypiRemoteRepo}, TestAccess: {&RtRepo1}, TestTransfer: {&RtRepo1, &RtRepo2, &MvnRepo1, &MvnRemoteRepo, &DockerRemoteRepo}, - TestLifecycle: {&RtDevRepo, &RtProdRepo}, + TestLifecycle: {&RtDevRepo, &RtProdRepo1, &RtProdRepo2}, } return getNeededRepositories(nonVirtualReposMap) } @@ -442,7 +443,8 @@ func getSubstitutionMap() map[string]string { "${RB_NAME1}": LcRbName1, "${RB_NAME2}": LcRbName2, "${DEV_REPO}": RtDevRepo, - "${PROD_REPO}": RtProdRepo, + "${PROD_REPO1}": RtProdRepo1, + "${PROD_REPO2}": RtProdRepo2, } } @@ -492,7 +494,8 @@ func AddTimestampToGlobalVars() { RtRepo2 += uniqueSuffix RtVirtualRepo += uniqueSuffix RtDevRepo += uniqueSuffix - RtProdRepo += uniqueSuffix + RtProdRepo1 += uniqueSuffix + RtProdRepo2 += uniqueSuffix // Builds/bundles/images BundleName += uniqueSuffix