Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions artifactory/cli/cli.go
Original file line number Diff line number Diff line change
Expand Up @@ -557,7 +557,7 @@ func dockerPromoteCmd(c *components.Context) error {
dockerPromoteCommand := container.NewDockerPromoteCommand()
dockerPromoteCommand.SetParams(params).SetServerDetails(artDetails)

if err = commands.Exec(dockerPromoteCommand); err != nil {
if err = commands.ExecWithPackageManager(dockerPromoteCommand, "docker"); err != nil {
return err
}

Expand Down Expand Up @@ -656,7 +656,7 @@ func containerPushCmd(c *components.Context, containerManagerType containerutils
if err != nil {
return
}
err = commands.Exec(dockerPushCommand)
err = commands.ExecWithPackageManager(dockerPushCommand, containerManagerType.String())
result := dockerPushCommand.Result()

// Cleanup.
Expand Down Expand Up @@ -736,7 +736,7 @@ func containerPullCmd(c *components.Context, containerManagerType containerutils
if err != nil {
return err
}
if err = commands.Exec(dockerPullCommand); err != nil {
if err = commands.ExecWithPackageManager(dockerPullCommand, containerManagerType.String()); err != nil {
return err
}
if outputFormat == coreformat.None {
Expand Down Expand Up @@ -804,7 +804,7 @@ func BuildDockerCreateCmd(c *components.Context) error {
return err
}
buildDockerCreateCommand.SetRepo(sourceRepo).SetServerDetails(artDetails).SetBuildConfiguration(buildConfiguration)
return commands.Exec(buildDockerCreateCommand)
return commands.ExecWithPackageManager(buildDockerCreateCommand, "docker")
}

func ocStartBuildCmd(c *components.Context) error {
Expand Down Expand Up @@ -851,7 +851,7 @@ func ocStartBuildCmd(c *components.Context) error {
coreutils.RemoveFlagFromCommand(&filteredOcArgs, flagIndex, valueIndex)

ocCmd := oc.NewOcStartBuildCommand().SetOcArgs(filteredOcArgs).SetRepo(repo).SetServerId(serverId).SetBuildConfiguration(buildConfiguration)
return commands.Exec(ocCmd)
return commands.ExecWithPackageManager(ocCmd, "docker")
}

func nugetDepsTreeCmd(c *components.Context) error {
Expand Down
17 changes: 7 additions & 10 deletions artifactory/commands/npm/common.go
Original file line number Diff line number Diff line change
Expand Up @@ -50,20 +50,17 @@ func (ca *CommonArgs) SetUseNative(useNpmRc bool) *CommonArgs {
// then falls back to the deprecated --run-native flag for backward compatibility.
// Returns: useNative flag, filtered args (with --run-native removed if present), error
func CheckIsNativeAndFetchFilteredArgs(args []string) (useNative bool, filteredArgs []string, err error) {
filteredArgs = args
// Check JFROG_RUN_NATIVE environment variable first (preferred method)
useNative = flexpack.IsFlexPackEnabled()
if useNative {
log.Info("Running npm in native mode (JFROG_RUN_NATIVE=true)")
return
}

// Check deprecated --run-native flag for backward compatibility
// Always strip --run-native from args so it never reaches the npm binary,
// regardless of whether native mode is triggered by env var or flag.
filteredArgs, useNativeFlag, err := coreutils.ExtractUseNativeFromArgs(args)
if err != nil {
return false, args, err
}
if useNativeFlag {

if flexpack.IsFlexPackEnabled() {
log.Info("Running npm in native mode (JFROG_RUN_NATIVE=true)")
useNative = true
} else if useNativeFlag {
log.Warn("The --run-native flag is deprecated. Please use JFROG_RUN_NATIVE=true environment variable instead.")
log.Info("Running npm in native mode")
useNative = true
Expand Down
42 changes: 25 additions & 17 deletions artifactory/commands/npm/npmcommand.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,17 +129,32 @@ func (nc *NpmCommand) SetDisableCVSCheck(disable bool) *NpmCommand {
}

func (nc *NpmCommand) Init() error {
// Read config file.
log.Debug("Preparing to read the config file", nc.configFilePath)
vConfig, err := project.ReadConfigFile(nc.configFilePath, project.YAML)
if err != nil {
return err
if nc.configFilePath != "" {
log.Debug("Preparing to read the config file", nc.configFilePath)
vConfig, err := project.ReadConfigFile(nc.configFilePath, project.YAML)
if err != nil {
return err
}

repoConfig, err := nc.getRepoConfig(vConfig)
if err != nil {
return err
}
nc.SetRepoConfig(repoConfig)
} else if nc.UseNative() {
// No config file + native mode — CLI layer set useNative and stripped --run-native already.
// Only strip --server-id (not a valid npm flag) and resolve server details.
filteredArgs, serverID, err := coreutils.ExtractServerIdFromCommand(nc.npmArgs)
if err != nil {
return err
}
nc.npmArgs = filteredArgs
nc.serverDetails, err = config.GetSpecificConfig(serverID, true, false)
if err != nil {
return err
}
}

repoConfig, err := nc.getRepoConfig(vConfig)
if err != nil {
return err
}
_, _, _, filteredNpmArgs, buildConfiguration, err := commandUtils.ExtractNpmOptionsFromArgs(nc.npmArgs)
if err != nil {
return err
Expand All @@ -149,7 +164,7 @@ func (nc *NpmCommand) Init() error {
if err != nil {
return err
}
nc.SetRepoConfig(repoConfig).SetArgs(filteredNpmArgs).SetBuildConfiguration(buildConfiguration)
nc.SetArgs(filteredNpmArgs).SetBuildConfiguration(buildConfiguration)
nc.SetDisableCVSCheck(disableCVSCheck)
return nil
}
Expand Down Expand Up @@ -199,13 +214,6 @@ func (nc *NpmCommand) PreparePrerequisites(repo string) error {
return err
}
log.Debug("Working directory set to:", nc.workingDirectory)

// Check for native mode (env var or deprecated flag)
useNative, _, err := CheckIsNativeAndFetchFilteredArgs(nc.npmArgs)
if err != nil {
return err
}
nc.SetUseNative(useNative)
nc.installHandler = NewNpmInstallStrategy(nc.UseNative(), nc)

return nc.installHandler.PrepareInstallPrerequisites(repo)
Expand Down
19 changes: 13 additions & 6 deletions artifactory/commands/npm/publish.go
Original file line number Diff line number Diff line change
Expand Up @@ -129,11 +129,6 @@ func (npc *NpmPublishCommand) Init() error {
if err != nil {
return err
}
// Check for native mode (env var or deprecated flag)
useNative, filteredNpmArgs, err := CheckIsNativeAndFetchFilteredArgs(filteredNpmArgs)
if err != nil {
return err
}
filteredNpmArgs, tag, err := coreutils.ExtractTagFromArgs(filteredNpmArgs)
if err != nil {
return err
Expand All @@ -154,8 +149,20 @@ func (npc *NpmPublishCommand) Init() error {
return errorutils.CheckError(err)
}
npc.SetBuildConfiguration(buildConfiguration).SetRepo(deployerParams.TargetRepo()).SetNpmArgs(filteredNpmArgs).SetServerDetails(rtDetails)
} else if npc.UseNative() {
// No config file + native mode: CLI layer already set useNative and stripped --run-native.
// Extract --server-id for metrics reporting and strip it from args.
filteredNpmArgs, serverID, err := coreutils.ExtractServerIdFromCommand(filteredNpmArgs)
if err != nil {
return err
}
rtDetails, err := config.GetSpecificConfig(serverID, true, false)
if err != nil {
return err
}
npc.SetBuildConfiguration(buildConfiguration).SetNpmArgs(filteredNpmArgs).SetServerDetails(rtDetails)
}
npc.SetDetailedSummary(detailedSummary).SetXrayScan(xrayScan).SetScanOutputFormat(scanOutputFormat).SetDistTag(tag).SetUseNative(useNative)
npc.SetDetailedSummary(detailedSummary).SetXrayScan(xrayScan).SetScanOutputFormat(scanOutputFormat).SetDistTag(tag)
return nil
}

Expand Down
4 changes: 2 additions & 2 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ require (
github.com/jedib0t/go-pretty/v6 v6.7.10
github.com/jfrog/build-info-go v1.13.1-0.20260528065004-80409c046540
github.com/jfrog/gofrog v1.7.6
github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260601130310-8d52a530da18
github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260609101026-df3091b39d06
github.com/jfrog/jfrog-cli-evidence v0.9.0
github.com/jfrog/jfrog-client-go v1.55.1-0.20260508101905-a17af78a38d7
github.com/pkg/errors v0.9.1
Expand Down Expand Up @@ -200,7 +200,7 @@ require (

// replace github.com/jfrog/build-info-go => github.com/jfrog/build-info-go v1.13.1-0.20260520105053-3d9532efc2f6

// replace github.com/jfrog/jfrog-cli-core/v2 => github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260520104800-3fa62a50e049
// replace github.com/jfrog/jfrog-cli-core/v2 => github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260604085947-7c110b77b4b4

// replace github.com/gfleury/go-bitbucket-v1 => github.com/gfleury/go-bitbucket-v1 v0.0.0-20230825095122-9bc1711434ab

Expand Down
4 changes: 2 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -384,8 +384,8 @@ github.com/jfrog/froggit-go v1.21.1 h1:I/XUOO6GQ1d/rmBlM361F8T654C3ohIWrpw23xNL9
github.com/jfrog/froggit-go v1.21.1/go.mod h1:umBiakJB0CSPFfe0AHVaC3n9xsmUT7NGkDCny3bRchI=
github.com/jfrog/gofrog v1.7.6 h1:QmfAiRzVyaI7JYGsB7cxfAJePAZTzFz0gRWZSE27c6s=
github.com/jfrog/gofrog v1.7.6/go.mod h1:ntr1txqNOZtHplmaNd7rS4f8jpA5Apx8em70oYEe7+4=
github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260601130310-8d52a530da18 h1:tPv7XscDFAZaijVwMQNb+HmuucUMYQdjuA5frdGzhF0=
github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260601130310-8d52a530da18/go.mod h1:9R90mhbczGXwW5EGlDs7F08ejQU/xdoDhYHMvzBiqgE=
github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260609101026-df3091b39d06 h1:A8hWKHyvqzGXfWmh+8lXv3waAkim4xiucBfGhl7ZOeQ=
github.com/jfrog/jfrog-cli-core/v2 v2.60.1-0.20260609101026-df3091b39d06/go.mod h1:9R90mhbczGXwW5EGlDs7F08ejQU/xdoDhYHMvzBiqgE=
github.com/jfrog/jfrog-cli-evidence v0.9.0 h1:i9DhkQUxSZkhpp5oGR+N+SVAaqWDiUylbJcoDhM91uQ=
github.com/jfrog/jfrog-cli-evidence v0.9.0/go.mod h1:R9faPfyQESBmKrdZCmHvlpmYSHmffswjNnFeT3RMq8I=
github.com/jfrog/jfrog-client-go v1.55.1-0.20260508101905-a17af78a38d7 h1:o8fk4yWLqNMldarXyh/4NbmdbYbuM+lKYobdJK7shqM=
Expand Down
Loading