diff --git a/.github/workflows/scriptTests.yml b/.github/workflows/scriptTests.yml index 1849e4cc5..916d25562 100644 --- a/.github/workflows/scriptTests.yml +++ b/.github/workflows/scriptTests.yml @@ -26,7 +26,7 @@ jobs: - os: "macos-latest" - - os: "macos-11" + - os: "macos-12" - os: "windows-latest" osSuffix: ".exe" diff --git a/Jenkinsfile b/Jenkinsfile index fb22a6cb4..1476f87f7 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.22.3' + def goRoot = tool 'go-1.22.5' 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 8f10541a1..dd4026cb5 100644 --- a/artifactory/cli.go +++ b/artifactory/cli.go @@ -1148,7 +1148,7 @@ func BuildDockerCreateCmd(c *cli.Context) error { return err } buildDockerCreateCommand := container.NewBuildDockerCreateCommand() - if err := buildDockerCreateCommand.SetImageNameWithDigest(imageNameWithDigestFile); err != nil { + if err = buildDockerCreateCommand.SetImageNameWithDigest(imageNameWithDigestFile); err != nil { return err } buildDockerCreateCommand.SetRepo(sourceRepo).SetServerDetails(artDetails).SetBuildConfiguration(buildConfiguration) diff --git a/build/deb_rpm/v2-jf/build-scripts/pack.sh b/build/deb_rpm/v2-jf/build-scripts/pack.sh index 7a02590aa..c08c3f0fc 100755 --- a/build/deb_rpm/v2-jf/build-scripts/pack.sh +++ b/build/deb_rpm/v2-jf/build-scripts/pack.sh @@ -2,10 +2,6 @@ # This file is responsible for building rpm and deb package for jfrog-cli installer -# This will contain hold the list of supported architectures which can be built by default. -# Although by passing a different --rpm-build-image or --rpm-build-image, artifacts of different architectures can be built -SUPPORTED_DEFAULT_ARCH_LIST="x86_64" - JFROG_CLI_HOME="$(cd "$(dirname "${BASH_SOURCE[0]}")/../" && pwd)" JFROG_CLI_PKG="$JFROG_CLI_HOME/pkg" JFROG_CLI_PREFIX="jfrog-cli" @@ -244,22 +240,6 @@ createPackage(){ esac } -setBuildImage(){ - local arch="$1" - - [ -n "${arch}" ] || errorExit "Architecture is not passed to setBuildImage method" - - case "$1" in - x86_64) - RPM_BUILD_IMAGE="centos:7" - DEB_BUILD_IMAGE="ubuntu:16.04" - ;; - *) - errorExit "Provided architecture is not supported : $arch. Supported list [ ${SUPPORTED_DEFAULT_ARCH_LIST} ]" - ;; - esac -} - main(){ while [[ $# -gt 0 ]]; do case "$1" in @@ -275,10 +255,6 @@ main(){ JFROG_CLI_VERSION="$2" shift 2 ;; - --arch) - setBuildImage "$2" - shift 2 - ;; --rpm-arch) JFROG_CLI_RPM_ARCH="$2" shift 2 @@ -322,11 +298,10 @@ main(){ esac done + : "${flavours:="rpm deb"}" : "${JFROG_CLI_RUN_TEST:="false"}" - : "${RPM_BUILD_IMAGE:="centos:8"}" - : "${RPM_SIGN_IMAGE:="centos:7"}" - : "${DEB_BUILD_IMAGE:="ubuntu:16.04"}" + : "${RPM_SIGN_IMAGE:="${RPM_BUILD_IMAGE}"}" : "${DEB_TEST_IMAGE:="${DEB_BUILD_IMAGE}"}" : "${RPM_TEST_IMAGE:="${RPM_BUILD_IMAGE}"}" : "${JFROG_CLI_RELEASE_VERSION:="1"}" diff --git a/build/deb_rpm/v2-jf/build-scripts/rpm-sign.sh b/build/deb_rpm/v2-jf/build-scripts/rpm-sign.sh index f76d1d0c7..05bb219a2 100755 --- a/build/deb_rpm/v2-jf/build-scripts/rpm-sign.sh +++ b/build/deb_rpm/v2-jf/build-scripts/rpm-sign.sh @@ -1,30 +1,48 @@ #!/bin/bash log(){ - echo "$1" + echo "$1" +} + +debug_info(){ + echo "=== DEBUG INFO ===" + echo "Current User: $(whoami)" + echo "GPG Version: $(gpg --version)" + echo "GPG_TTY: $GPG_TTY" + echo "TTY: $(tty)" + echo "Files in /root/.gnupg:" + ls -la /root/.gnupg + echo "Environment Variables:" + env + echo "===================" } -# Use the given key to configure the rpm macro. This is needed to sign an rpm. -# Arguments: -# - gpgKeyFile : key file location (in PEM format) to be used for signing the rpm -# The structure of the key content should be as follows, -# -----BEGIN PGP PUBLIC KEY BLOCK----- -# Version: GnuPG v1.4.7 (MingW32) -# ..... -# -----END PGP PUBLIC KEY BLOCK----- -# -----BEGIN PGP PRIVATE KEY BLOCK----- -# Version: GnuPG v1.4.7 (MingW32) -# ..... -# -----END PGP PRIVATE KEY BLOCK----- -# - keyID : id of the provided key rpmInitSigning(){ local gpgKeyFile="${KEY_FILE}" local keyID="${KEY_ID}" log "Initializing rpm sign..." - gpg --allow-secret-key-import --import "${gpgKeyFile}" && \ - gpg --export -a "${keyID}" > /tmp/tmpFile && \ + # Start the GPG agent + local gpg_agent_output + gpg_agent_output=$(gpg-agent --daemon --allow-preset-passphrase) + eval "$gpg_agent_output" + + # Set GPG_TTY if possible + local tty_value + if tty -s; then + tty_value=$(tty) + export GPG_TTY="$tty_value" + else + export GPG_TTY="/dev/null" + fi + + # Debug info + debug_info + + # Import the GPG key + gpg --batch --import "${gpgKeyFile}" || { echo "ERROR: Failed to import GPG key"; exit 1; } + gpg --batch --export -a "${keyID}" > /tmp/tmpFile || { echo "ERROR: Failed to export GPG key"; exit 1; } if rpm --import /tmp/tmpFile && rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n' | grep "${keyID}"; then echo "RPM signature initialization succeeded." else @@ -32,8 +50,7 @@ rpmInitSigning(){ exit 1 fi - rpmEditRpmMacro "${keyID}" || \ - { echo "ERROR: Configuring rpm macro failed!" >&2; exit 1; } + rpmEditRpmMacro "${keyID}" || { echo "ERROR: Configuring rpm macro failed!" >&2; exit 1; } } rpmEditRpmMacro(){ @@ -44,27 +61,21 @@ rpmEditRpmMacro(){ %_gpg_path /root/.gnupg %_gpg_name ${keyID} %_gpgbin /usr/bin/gpg +%_gpg_sign_cmd %{__gpg} gpg --batch --pinentry-mode loopback --passphrase-file /tmp/passphrase --detach-sign --armor --yes --no-secmem-warning -u %{_gpg_name} -o %{__signature_filename} %{__plaintext_filename} RPM_MACRO_CONTENT } -expect_script() { - cat << End-of-text #No white space between << and End-of-text -spawn rpm --resign $RPM_FILE_SIGNED -expect -exact "Enter pass phrase: " -send -- "$PASSPHRASE\r" -expect eof -exit -End-of-text - -} - sign_rpm() { echo "Signing RPM..." - cp -f "${RPM_FILE}" "${RPM_FILE_SIGNED}" || \ - { echo "ERROR: Copying ${RPM_FILE} to ${RPM_FILE_SIGNED} failed! " >&2; exit 1; } - expect_script | /usr/bin/expect -f - - cp -f "${RPM_FILE_SIGNED}" "${RPM_FILE}" || \ - { echo "ERROR: Copying ${RPM_FILE_SIGNED} to ${RPM_FILE} failed! " >&2; exit 1; } + echo "${PASSPHRASE}" > /tmp/passphrase + cp -f "${RPM_FILE}" "${RPM_FILE_SIGNED}" || { echo "ERROR: Copying ${RPM_FILE} to ${RPM_FILE_SIGNED} failed! " >&2; exit 1; } + + gpg --batch --pinentry-mode loopback --passphrase-file /tmp/passphrase --detach-sign --armor --yes --no-secmem-warning -u "${KEY_ID}" -o "${RPM_FILE_SIGNED}.asc" "${RPM_FILE_SIGNED}" || { echo "ERROR: GPG signing failed!"; exit 1; } + + rpm --addsign "${RPM_FILE_SIGNED}" || { echo "ERROR: RPM signing failed!"; exit 1; } + + cp -f "${RPM_FILE_SIGNED}" "${RPM_FILE}" || { echo "ERROR: Copying ${RPM_FILE_SIGNED} to ${RPM_FILE} failed! " >&2; exit 1; } + rm /tmp/passphrase } KEY_FILE="${1}" @@ -72,5 +83,6 @@ KEY_ID="${2}" export PASSPHRASE="${3}" RPM_FILE="${4}" RPM_FILE_SIGNED="/tmp/jfrog-cli-rpm-signed.rpm" + rpmInitSigning sign_rpm diff --git a/build/deb_rpm/v2/build-scripts/pack.sh b/build/deb_rpm/v2/build-scripts/pack.sh index 90e904962..0d48817dd 100755 --- a/build/deb_rpm/v2/build-scripts/pack.sh +++ b/build/deb_rpm/v2/build-scripts/pack.sh @@ -2,10 +2,6 @@ # This file is responsible for building rpm and deb package for jfrog-cli installer -# This will contain hold the list of supported architectures which can be built by default. -# Although by passing a different --rpm-build-image or --rpm-build-image, artifacts of different architectures can be built -SUPPORTED_DEFAULT_ARCH_LIST="x86_64" - JFROG_CLI_HOME="$(cd "$(dirname "${BASH_SOURCE[0]}")/../" && pwd)" JFROG_CLI_PKG="$JFROG_CLI_HOME/pkg" JFROG_CLI_PREFIX="jfrog-cli" @@ -46,11 +42,11 @@ errorExit() { } checkDockerAccess() { -if docker -v > /dev/null 2>&1 && docker ps > /dev/null 2>&1; then - log "Docker is available" "DEBUG" -else - errorExit "Must run as a user that can execute docker commands" -fi + if docker -v > /dev/null 2>&1 && docker ps > /dev/null 2>&1; then + log "Docker is available" "DEBUG" + else + errorExit "Must run as a user that can execute docker commands" + fi } exitWithUsage(){ @@ -63,7 +59,7 @@ createDEBPackage(){ local flavour="deb" # cleanup old files and containers - rm -f "${JFROG_CLI_PKG}/${JFROG_CLI_PREFIX}*${VERSION_FORMATTED}*.${flavour}" + rm -f "${JFROG_CLI_PKG}/${JFROG_CLI_PREFIX}*${VERSION_FORMATTED}*.${flavour}" docker rm -f "${RPM_BUILDER_NAME}" 2>/dev/null log "Building ${JFROG_CLI_PREFIX} ${flavour} ${JFROG_CLI_VERSION} on ${DEB_BUILD_IMAGE} image" @@ -244,22 +240,6 @@ createPackage(){ esac } -setBuildImage(){ - local arch="$1" - - [ -n "${arch}" ] || errorExit "Architecture is not passed to setBuildImage method" - - case "$1" in - x86_64) - RPM_BUILD_IMAGE="centos:7" - DEB_BUILD_IMAGE="ubuntu:16.04" - ;; - *) - errorExit "Provided architecture is not supported : $arch. Supported list [ ${SUPPORTED_DEFAULT_ARCH_LIST} ]" - ;; - esac -} - main(){ while [[ $# -gt 0 ]]; do case "$1" in @@ -275,10 +255,6 @@ main(){ JFROG_CLI_VERSION="$2" shift 2 ;; - --arch) - setBuildImage "$2" - shift 2 - ;; --rpm-arch) JFROG_CLI_RPM_ARCH="$2" shift 2 @@ -322,11 +298,10 @@ main(){ esac done + : "${flavours:="rpm deb"}" : "${JFROG_CLI_RUN_TEST:="false"}" - : "${RPM_BUILD_IMAGE:="centos:8"}" - : "${RPM_SIGN_IMAGE:="centos:7"}" - : "${DEB_BUILD_IMAGE:="ubuntu:16.04"}" + : "${RPM_SIGN_IMAGE:="${RPM_BUILD_IMAGE}"}" : "${DEB_TEST_IMAGE:="${DEB_BUILD_IMAGE}"}" : "${RPM_TEST_IMAGE:="${RPM_BUILD_IMAGE}"}" : "${JFROG_CLI_RELEASE_VERSION:="1"}" diff --git a/build/deb_rpm/v2/build-scripts/rpm-sign.sh b/build/deb_rpm/v2/build-scripts/rpm-sign.sh index f76d1d0c7..05bb219a2 100755 --- a/build/deb_rpm/v2/build-scripts/rpm-sign.sh +++ b/build/deb_rpm/v2/build-scripts/rpm-sign.sh @@ -1,30 +1,48 @@ #!/bin/bash log(){ - echo "$1" + echo "$1" +} + +debug_info(){ + echo "=== DEBUG INFO ===" + echo "Current User: $(whoami)" + echo "GPG Version: $(gpg --version)" + echo "GPG_TTY: $GPG_TTY" + echo "TTY: $(tty)" + echo "Files in /root/.gnupg:" + ls -la /root/.gnupg + echo "Environment Variables:" + env + echo "===================" } -# Use the given key to configure the rpm macro. This is needed to sign an rpm. -# Arguments: -# - gpgKeyFile : key file location (in PEM format) to be used for signing the rpm -# The structure of the key content should be as follows, -# -----BEGIN PGP PUBLIC KEY BLOCK----- -# Version: GnuPG v1.4.7 (MingW32) -# ..... -# -----END PGP PUBLIC KEY BLOCK----- -# -----BEGIN PGP PRIVATE KEY BLOCK----- -# Version: GnuPG v1.4.7 (MingW32) -# ..... -# -----END PGP PRIVATE KEY BLOCK----- -# - keyID : id of the provided key rpmInitSigning(){ local gpgKeyFile="${KEY_FILE}" local keyID="${KEY_ID}" log "Initializing rpm sign..." - gpg --allow-secret-key-import --import "${gpgKeyFile}" && \ - gpg --export -a "${keyID}" > /tmp/tmpFile && \ + # Start the GPG agent + local gpg_agent_output + gpg_agent_output=$(gpg-agent --daemon --allow-preset-passphrase) + eval "$gpg_agent_output" + + # Set GPG_TTY if possible + local tty_value + if tty -s; then + tty_value=$(tty) + export GPG_TTY="$tty_value" + else + export GPG_TTY="/dev/null" + fi + + # Debug info + debug_info + + # Import the GPG key + gpg --batch --import "${gpgKeyFile}" || { echo "ERROR: Failed to import GPG key"; exit 1; } + gpg --batch --export -a "${keyID}" > /tmp/tmpFile || { echo "ERROR: Failed to export GPG key"; exit 1; } if rpm --import /tmp/tmpFile && rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} --> %{summary}\n' | grep "${keyID}"; then echo "RPM signature initialization succeeded." else @@ -32,8 +50,7 @@ rpmInitSigning(){ exit 1 fi - rpmEditRpmMacro "${keyID}" || \ - { echo "ERROR: Configuring rpm macro failed!" >&2; exit 1; } + rpmEditRpmMacro "${keyID}" || { echo "ERROR: Configuring rpm macro failed!" >&2; exit 1; } } rpmEditRpmMacro(){ @@ -44,27 +61,21 @@ rpmEditRpmMacro(){ %_gpg_path /root/.gnupg %_gpg_name ${keyID} %_gpgbin /usr/bin/gpg +%_gpg_sign_cmd %{__gpg} gpg --batch --pinentry-mode loopback --passphrase-file /tmp/passphrase --detach-sign --armor --yes --no-secmem-warning -u %{_gpg_name} -o %{__signature_filename} %{__plaintext_filename} RPM_MACRO_CONTENT } -expect_script() { - cat << End-of-text #No white space between << and End-of-text -spawn rpm --resign $RPM_FILE_SIGNED -expect -exact "Enter pass phrase: " -send -- "$PASSPHRASE\r" -expect eof -exit -End-of-text - -} - sign_rpm() { echo "Signing RPM..." - cp -f "${RPM_FILE}" "${RPM_FILE_SIGNED}" || \ - { echo "ERROR: Copying ${RPM_FILE} to ${RPM_FILE_SIGNED} failed! " >&2; exit 1; } - expect_script | /usr/bin/expect -f - - cp -f "${RPM_FILE_SIGNED}" "${RPM_FILE}" || \ - { echo "ERROR: Copying ${RPM_FILE_SIGNED} to ${RPM_FILE} failed! " >&2; exit 1; } + echo "${PASSPHRASE}" > /tmp/passphrase + cp -f "${RPM_FILE}" "${RPM_FILE_SIGNED}" || { echo "ERROR: Copying ${RPM_FILE} to ${RPM_FILE_SIGNED} failed! " >&2; exit 1; } + + gpg --batch --pinentry-mode loopback --passphrase-file /tmp/passphrase --detach-sign --armor --yes --no-secmem-warning -u "${KEY_ID}" -o "${RPM_FILE_SIGNED}.asc" "${RPM_FILE_SIGNED}" || { echo "ERROR: GPG signing failed!"; exit 1; } + + rpm --addsign "${RPM_FILE_SIGNED}" || { echo "ERROR: RPM signing failed!"; exit 1; } + + cp -f "${RPM_FILE_SIGNED}" "${RPM_FILE}" || { echo "ERROR: Copying ${RPM_FILE_SIGNED} to ${RPM_FILE} failed! " >&2; exit 1; } + rm /tmp/passphrase } KEY_FILE="${1}" @@ -72,5 +83,6 @@ KEY_ID="${2}" export PASSPHRASE="${3}" RPM_FILE="${4}" RPM_FILE_SIGNED="/tmp/jfrog-cli-rpm-signed.rpm" + rpmInitSigning sign_rpm diff --git a/build/npm/v2-jf/package-lock.json b/build/npm/v2-jf/package-lock.json index 223365cdf..5de4ed2f7 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.59.1", + "version": "2.61.2", "lockfileVersion": 1 } diff --git a/build/npm/v2-jf/package.json b/build/npm/v2-jf/package.json index 2194ecbff..b66d58eac 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.59.1", + "version": "2.61.2", "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 f8ed54e53..18c54af7f 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.59.1", + "version": "2.61.2", "lockfileVersion": 2 } diff --git a/build/npm/v2/package.json b/build/npm/v2/package.json index 78f189567..c0478382b 100644 --- a/build/npm/v2/package.json +++ b/build/npm/v2/package.json @@ -1,6 +1,6 @@ { "name": "jfrog-cli-v2", - "version": "2.59.1", + "version": "2.61.2", "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/general/ai/cli.go b/general/ai/cli.go index 25a0de0db..b1dd74cfc 100644 --- a/general/ai/cli.go +++ b/general/ai/cli.go @@ -132,12 +132,16 @@ func sendRequestToCliAiServer(content interface{}, apiCommand ApiCommand) (respo return } if err = errorutils.CheckResponseStatus(resp, http.StatusOK); err != nil { - if resp.StatusCode == http.StatusInternalServerError { - err = errorutils.CheckErrorf("AI model Endpoint is not available.\n" + err.Error()) - } else if resp.StatusCode == http.StatusNotFound { - err = errorutils.CheckErrorf("CLI-AI app server is no available. Note that the this command is supported while inside JFrog's internal network only.\n" + err.Error()) + switch resp.StatusCode { + case http.StatusInternalServerError: + err = errorutils.CheckErrorf("AI model Endpoint is not available. Please try again later.") + case http.StatusNotFound: + err = errorutils.CheckErrorf("CLI-AI app server is not available. Note that the this command is supported while inside JFrog's internal network only.\n" + err.Error()) + case http.StatusNotAcceptable: + err = errorutils.CheckErrorf("CLI-AI app server is not available. Please try again later.") + default: + return } - return } if apiCommand == questionApi { defer func() { diff --git a/go.mod b/go.mod index 2ed7776b8..a18c80342 100644 --- a/go.mod +++ b/go.mod @@ -13,29 +13,30 @@ replace ( require ( github.com/agnivade/levenshtein v1.1.1 github.com/buger/jsonparser v1.1.1 - github.com/docker/docker v27.0.3+incompatible + github.com/docker/docker v27.1.1+incompatible github.com/gocarina/gocsv v0.0.0-20240520201108-78e41c74b4b1 github.com/jfrog/archiver/v3 v3.6.1 - github.com/jfrog/build-info-go v1.9.29 + github.com/jfrog/build-info-go v1.9.30 github.com/jfrog/gofrog v1.7.4 - github.com/jfrog/jfrog-cli-core/v2 v2.53.2 + github.com/jfrog/jfrog-cli-artifactory v0.1.1 + github.com/jfrog/jfrog-cli-core/v2 v2.53.4 github.com/jfrog/jfrog-cli-platform-services v1.3.0 - github.com/jfrog/jfrog-cli-security v1.5.1 - github.com/jfrog/jfrog-client-go v1.42.0 + github.com/jfrog/jfrog-cli-security v1.6.2 + github.com/jfrog/jfrog-client-go v1.43.0 github.com/jszwec/csvutil v1.10.0 github.com/stretchr/testify v1.9.0 github.com/testcontainers/testcontainers-go v0.32.0 github.com/urfave/cli v1.22.15 github.com/xeipuuv/gojsonschema v1.2.0 - golang.org/x/exp v0.0.0-20240707233637-46b078467d37 + golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 gopkg.in/yaml.v2 v2.4.0 ) 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.8.0 // indirect + github.com/BurntSushi/toml v1.4.0 // indirect + github.com/CycloneDX/cyclonedx-go v0.9.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect github.com/Microsoft/hcsshim v0.11.5 // indirect github.com/ProtonMail/go-crypto v1.0.0 // indirect @@ -84,7 +85,7 @@ require ( 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.9 // indirect - github.com/jfrog/froggit-go v1.16.0 // indirect + github.com/jfrog/froggit-go v1.16.1 // 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.9 // indirect @@ -123,6 +124,7 @@ require ( github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sagikazarmark/locafero v0.4.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect + github.com/secure-systems-lab/go-securesystemslib v0.8.0 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/shirou/gopsutil/v3 v3.23.12 // indirect github.com/shoenig/go-m1cpu v0.1.6 // indirect @@ -137,7 +139,7 @@ require ( github.com/tklauser/go-sysconf v0.3.12 // indirect github.com/tklauser/numcpus v0.6.1 // indirect github.com/ulikunitz/xz v0.5.12 // indirect - github.com/vbauerster/mpb/v7 v7.5.3 // indirect + github.com/vbauerster/mpb/v8 v8.7.4 // indirect github.com/xanzy/go-gitlab v0.95.2 // indirect github.com/xanzy/ssh-agent v0.3.3 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect @@ -168,12 +170,12 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -replace github.com/jfrog/jfrog-cli-core/v2 => github.com/RobiNino/jfrog-cli-core/v2 v2.0.0-20240722132942-e58d6f9edd9d +replace github.com/jfrog/jfrog-cli-core/v2 => github.com/jfrog/jfrog-cli-core/v2 v2.31.1-0.20240729065529-2b249c484570 -replace github.com/jfrog/jfrog-client-go => github.com/jfrog/jfrog-client-go v1.28.1-0.20240715172903-ac148cd34963 +replace github.com/jfrog/jfrog-client-go => github.com/jfrog/jfrog-client-go v1.28.1-0.20240728112256-a0d079c45259 -replace github.com/jfrog/jfrog-cli-security => github.com/RobiNino/jfrog-cli-security v0.0.0-20240718121027-deea2df64e96 +replace github.com/jfrog/jfrog-cli-security => github.com/jfrog/jfrog-cli-security v1.6.3-0.20240729081816-371509c205d6 -// replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go dev +// replace github.com/jfrog/build-info-go => github.com/eyalbe4/build-info-go v1.8.9-0.20240723132035-980d2c84b738 // replace github.com/jfrog/gofrog => github.com/jfrog/gofrog dev diff --git a/go.sum b/go.sum index a0ba13a6c..623093be0 100644 --- a/go.sum +++ b/go.sum @@ -604,11 +604,12 @@ github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h 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/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -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/CycloneDX/cyclonedx-go v0.9.0 h1:inaif7qD8bivyxp7XLgxUYtOXWtDez7+j72qKTMQTb8= +github.com/CycloneDX/cyclonedx-go v0.9.0/go.mod h1:NE/EWvzELOFlG6+ljX/QeMlVt9VKcTwu8u0ccsACEsw= github.com/JohnCGriffin/overflow v0.0.0-20211019200055-46fa312c352c/go.mod h1:X0CRv0ky0k6m906ixxpzmDRLvX58TFUKS2eePweuyxk= github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= @@ -618,10 +619,6 @@ github.com/Microsoft/hcsshim v0.11.5/go.mod h1:MV8xMfmECjl5HdO7U/3/hFVnkmSBjAjmA github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/ProtonMail/go-crypto v1.0.0 h1:LRuvITjQWX+WIfr930YHG2HNfjR1uOfyf5vE0kC2U78= github.com/ProtonMail/go-crypto v1.0.0/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= -github.com/RobiNino/jfrog-cli-core/v2 v2.0.0-20240722132942-e58d6f9edd9d h1:vJShUCGlNm2KCxyoXRVYorau6+prGuwyfxkNWh2gZI4= -github.com/RobiNino/jfrog-cli-core/v2 v2.0.0-20240722132942-e58d6f9edd9d/go.mod h1:PiBf1/9I1BeyGA2jxwOaQEOtxebIIMhAJSN94JeT5e4= -github.com/RobiNino/jfrog-cli-security v0.0.0-20240718121027-deea2df64e96 h1:cFdv1uOyMqK+X40OL8Tbhez4KF/r6lcNxZbQOkJaooU= -github.com/RobiNino/jfrog-cli-security v0.0.0-20240718121027-deea2df64e96/go.mod h1:wML37hIJVgj+MhOudDq3ixh87cHNABFgVaWiRduxfpQ= github.com/VividCortex/ewma v1.2.0 h1:f58SaIzcDXrSy3kWaHNvuJgJ3Nmz59Zji6XoJR/q1ow= github.com/VividCortex/ewma v1.2.0/go.mod h1:nz4BbCtbLyFDeC9SUHbtcT5644juEuWfUAUnGx7j5l4= github.com/acarl005/stripansi v0.0.0-20180116102854-5a71ef0e047d h1:licZJFw2RwpHMqeKTCYkitsPqHNxTmd4SNR5r94FGM8= @@ -714,8 +711,8 @@ github.com/dgryski/trifles v0.0.0-20200323201526-dd97f9abfb48 h1:fRzb/w+pyskVMQ+ github.com/dgryski/trifles v0.0.0-20200323201526-dd97f9abfb48/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v27.0.3+incompatible h1:aBGI9TeQ4MPlhquTQKq9XbK79rKFVwXNUAYz9aXyEBE= -github.com/docker/docker v27.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.1.1+incompatible h1:hO/M4MtV36kzKldqnA37IWhebRA+LnqqcqDja6kVaKY= +github.com/docker/docker v27.1.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -939,18 +936,24 @@ github.com/jedib0t/go-pretty/v6 v6.5.9 h1:ACteMBRrrmm1gMsXe9PSTOClQ63IXDUt03H5U+ github.com/jedib0t/go-pretty/v6 v6.5.9/go.mod h1:zbn98qrYlh95FIhwwsbIip0LYpwSG8SUOScs+v9/t0E= github.com/jfrog/archiver/v3 v3.6.1 h1:LOxnkw9pOn45DzCbZNFV6K0+6dCsQ0L8mR3ZcujO5eI= github.com/jfrog/archiver/v3 v3.6.1/go.mod h1:VgR+3WZS4N+i9FaDwLZbq+jeU4B4zctXL+gL4EMzfLw= -github.com/jfrog/build-info-go v1.9.29 h1:3vJ+kbk9PpU6wjisXi9c4qISNpYkISh/NmB5mq1ZlSY= -github.com/jfrog/build-info-go v1.9.29/go.mod h1:AzFJlN/yKfKuKcSBaGy5nNmKN1xzx6+XcRWAswCTLTA= -github.com/jfrog/froggit-go v1.16.0 h1:qNcerpWupkisdKf4BuofY/XdcUrQJHscSL7PGM6sETs= -github.com/jfrog/froggit-go v1.16.0/go.mod h1:TEJSzgiV+3D/GVGE8Y6j46ut1jrBLD1FL6WdMdKwwCE= +github.com/jfrog/build-info-go v1.9.30 h1:RmK3NuDGUoyCjCNJJBlHaCm4vWzO8BLjkuAkMzj6PGE= +github.com/jfrog/build-info-go v1.9.30/go.mod h1:fxSfpp+kQ8qln/0y7pgV3tg2exWe5OM1np5FF2LlSDg= +github.com/jfrog/froggit-go v1.16.1 h1:FBIM1qevX/ag9unfmpGzfmZ36D8ulOJ+DPTSFUk3l5U= +github.com/jfrog/froggit-go v1.16.1/go.mod h1:TEJSzgiV+3D/GVGE8Y6j46ut1jrBLD1FL6WdMdKwwCE= github.com/jfrog/gofrog v1.7.4 h1:on4AeWef5LJUhGCigSjTS4Ez3n9l8+NiZlXH6UYp05c= github.com/jfrog/gofrog v1.7.4/go.mod h1:jyGiCgiqSSR7k86hcUSu67XVvmvkkgWTmPsH25wI298= 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-artifactory v0.1.1 h1:3HfowB29TBEtr6BgAezdqTRVFhBFa5XasxARLh+1HDE= +github.com/jfrog/jfrog-cli-artifactory v0.1.1/go.mod h1:Jyv0OecV8k8JOT5C5m/UmS1KCsR1xkog1OjKJeDuMcY= +github.com/jfrog/jfrog-cli-core/v2 v2.31.1-0.20240729065529-2b249c484570 h1:QCb5JH90t7Xt+J2ewoA2FiEshSXmOrho8M03+UVS+QU= +github.com/jfrog/jfrog-cli-core/v2 v2.31.1-0.20240729065529-2b249c484570/go.mod h1:qF+g5F4ImRlyCYoFbeWtksaDGhneQSB27t2/6/H89Hc= github.com/jfrog/jfrog-cli-platform-services v1.3.0 h1:IblSDZFBjL7WLRi37Ni2DmHrXJJ6ysSMxx7t41AvyDA= github.com/jfrog/jfrog-cli-platform-services v1.3.0/go.mod h1:Ky4SDXuMeaiNP/5zMT1YSzIuXG+cNYYOl8BaEA7Awbc= -github.com/jfrog/jfrog-client-go v1.28.1-0.20240715172903-ac148cd34963 h1:dHK9xKrxxuVVSZPWj0fV39xdw/VeE0n9zz84PiscxXg= -github.com/jfrog/jfrog-client-go v1.28.1-0.20240715172903-ac148cd34963/go.mod h1:Y0PnOfoDwH8nJlFVapnzKJrCRZQciN5krTDY7vZxTZU= +github.com/jfrog/jfrog-cli-security v1.6.3-0.20240729081816-371509c205d6 h1:U61knfgV/WZ4ZOhEEKKlnXQ8Y1BlKVPyVjTaERymIk0= +github.com/jfrog/jfrog-cli-security v1.6.3-0.20240729081816-371509c205d6/go.mod h1:0m+jdJgsLF2QHl4f/t9JHuJ9E0Oqf9kK24UWsjAtvsE= +github.com/jfrog/jfrog-client-go v1.28.1-0.20240728112256-a0d079c45259 h1:+dTDe9rPt6eLTvrYum+3g7rZ33yF5R8kQuN3+b15XaQ= +github.com/jfrog/jfrog-client-go v1.28.1-0.20240728112256-a0d079c45259/go.mod h1:1RklAq1rNS3HmIsJ+BM3tEn9XHZuTAs37JtVUpefUk4= github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jszwec/csvutil v1.10.0 h1:upMDUxhQKqZ5ZDCs/wy+8Kib8rZR8I8lOR34yJkdqhI= @@ -1010,7 +1013,6 @@ github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D github.com/mattn/go-runewidth v0.0.6/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.7/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-runewidth v0.0.15 h1:UNAjwbU9l54TA3KzvqLGxwWjHmMgBUVhBiTjelZgg3U= github.com/mattn/go-runewidth v0.0.15/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= @@ -1095,6 +1097,8 @@ github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6ke 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/secure-systems-lab/go-securesystemslib v0.8.0 h1:mr5An6X45Kb2nddcFlbmfHkLguCE9laoZCUzEEpIZXA= +github.com/secure-systems-lab/go-securesystemslib v0.8.0/go.mod h1:UH2VZVuJfCYR8WgMlCU1uFsOUU+KeyrTWcSS73NBOzU= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 h1:n661drycOFuPLCN3Uc8sB6B/s6Z4t2xvBgU1htSHuq8= github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4= github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= @@ -1153,8 +1157,8 @@ github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc= github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14= github.com/urfave/cli v1.22.15 h1:nuqt+pdC/KqswQKhETJjo7pvn/k4xMUxgW6liI7XpnM= github.com/urfave/cli v1.22.15/go.mod h1:wSan1hmo5zeyLGBjRJbzRTNk8gwoYa2B9n4q9dmRIc0= -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/vbauerster/mpb/v8 v8.7.4 h1:p4f16iMfUt3PkAC73SCzAtgtSf8TYDqEbJUT3odPrPo= +github.com/vbauerster/mpb/v8 v8.7.4/go.mod h1:r1B5k2Ljj5KJFCekfihbiqyV4VaaRTANYmvWA2btufI= 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/go-gitlab v0.95.2 h1:4p0IirHqEp5f0baK/aQqr4TR57IsD+8e4fuyAA1yi88= @@ -1246,8 +1250,8 @@ golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20220827204233-334a2380cb91/go.mod h1:cyybsKvd6eL0RnXn6p/Grxp8F5bW7iYuBgsNCOHpMYE= -golang.org/x/exp v0.0.0-20240707233637-46b078467d37 h1:uLDX+AfeFCct3a2C7uIWBKMJIR3CJMhcgfrUAqjRK6w= -golang.org/x/exp v0.0.0-20240707233637-46b078467d37/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/image v0.0.0-20180708004352-c73c2afc3b81/go.mod h1:ux5Hcp/YLpHSI86hEcLt0YII63i6oz57MZXIpbrjZUs= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= @@ -1490,7 +1494,6 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220728004956-3c1f35247d10/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220829200755-d48e67d00261/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220909162455-aba9fc2a8ff2/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/main.go b/main.go index 7e431ce44..bc0769a03 100644 --- a/main.go +++ b/main.go @@ -12,6 +12,7 @@ import ( "github.com/jfrog/jfrog-cli-core/v2/utils/log" platformServicesCLI "github.com/jfrog/jfrog-cli-platform-services/cli" securityCLI "github.com/jfrog/jfrog-cli-security/cli" + artifactoryCLI "github.com/jfrog/jfrog-cli-artifactory/evidence/cli" "github.com/jfrog/jfrog-cli/artifactory" "github.com/jfrog/jfrog-cli/buildtools" "github.com/jfrog/jfrog-cli/completion" @@ -297,11 +298,16 @@ func getCommands() ([]cli.Command, error) { if err != nil { return nil, err } + artifactoryCmds, err := ConvertEmbeddedPlugin(artifactoryCLI.GetJfrogCliArtifactoryApp()) + if err != nil { + return nil, err + } platformServicesCmds, err := ConvertEmbeddedPlugin(platformServicesCLI.GetPlatformServicesApp()) if err != nil { return nil, err } allCommands := append(slices.Clone(cliNameSpaces), securityCmds...) + allCommands = append(allCommands, artifactoryCmds...) allCommands = append(allCommands, platformServicesCmds...) allCommands = append(allCommands, utils.GetPlugins()...) allCommands = append(allCommands, buildtools.GetCommands()...) diff --git a/plugins/commands/install.go b/plugins/commands/install.go index a45f3138d..7b5a55f94 100644 --- a/plugins/commands/install.go +++ b/plugins/commands/install.go @@ -170,6 +170,7 @@ func downloadPlugin(pluginsDir, pluginName, downloadUrl string, httpDetails http return } if progressMgr != nil { + progressMgr.SetHeadlineMsg("Downloading") progressMgr.InitProgressReaders() progressMgr.IncGeneralProgressTotalBy(1) defer func() { @@ -268,6 +269,6 @@ func downloadFromArtifactory(downloadDetails *httpclient.DownloadFileDetails, ht if err != nil { return } - log.Info("Downloading: " + downloadDetails.FileName) + log.Info("Downloading:", downloadDetails.FileName) return client.DownloadFileWithProgress(downloadDetails, "", httpDetails, false, false, progressMgr) } diff --git a/utils/cliutils/cli_consts.go b/utils/cliutils/cli_consts.go index 480a4e9c8..185d44058 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.59.1" + CliVersion = "2.61.2" ClientAgent = "jfrog-cli-go" // CLI base commands constants: diff --git a/utils/cliutils/utils.go b/utils/cliutils/utils.go index 5894d023a..630a4c525 100644 --- a/utils/cliutils/utils.go +++ b/utils/cliutils/utils.go @@ -257,7 +257,7 @@ func CreateBuildInfoSummaryReportString(success, failed int, sha256 string, err func CreateDownloadConfiguration(c *cli.Context) (downloadConfiguration *artifactoryUtils.DownloadConfiguration, err error) { downloadConfiguration = new(artifactoryUtils.DownloadConfiguration) - downloadConfiguration.MinSplitSize, err = getMinSplit(c, DownloadMinSplitKb) + downloadConfiguration.MinSplitSizeKb, err = getMinSplit(c, DownloadMinSplitKb) if err != nil { return nil, err }