Skip to content

enable-package-alias: true installs the alias but never activates it (JFROG_CLI_GHOST_FROG is never set) #343

Description

@wberry-godaddy

Describe the bug

With enable-package-alias: true, the action runs jf package-alias install and appends the alias directory to GITHUB_PATH, but it never sets the JFROG_CLI_GHOST_FROG environment variable. JFrog CLI's package-alias ("Ghost Frog") interception is opt-in and off by defaultDispatchIfAlias returns early unless JFROG_CLI_GHOST_FROG is set. So the documented behavior ("mvn, npm, go, etc. are transparently intercepted in subsequent steps") never happens: the go shim is on PATH, but with the gate off, go mod download runs the jf binary as a normal CLI (jf mod download) and fails.

This is independent of JFrog platform/auth configuration — it fails before any network call, purely because the interception gate is off.

Current behavior

In a step after the action:

  • jf package-alias status reports State: ENABLED, PATH: Configured [OK], and Package aliasing is active. You can now run: ... go build — i.e. it looks active.
  • echo "$JFROG_CLI_GHOST_FROG" → empty (the action never exported it).
  • go mod download
    'jf mod' is not a jf command. See --help
    ##[error]Process completed with exit code 1.
    

Reproduction steps

Minimal workflow — no JFrog instance or secrets required:

- uses: actions/setup-go@v6
  with: { go-version: "1.23" }
- uses: jfrog/setup-jfrog-cli@v5.1.0
  with:
    version: 2.111.0
    enable-package-alias: true
- run: jf package-alias status   # reports "active"
- run: go mod download           # 'jf mod' is not a jf command -> exit 1

Runnable, green-CI proofs (matrix over jf 2.100.0 / 2.111.0 / latest): https://github.com/wberry-godaddy/jfrog-cli-examples — see the 05-setup-action-gap workflow.

Expected behavior

With enable-package-alias: true, subsequent go/npm/… commands should actually be intercepted, as documented. The action should export JFROG_CLI_GHOST_FROG to GITHUB_ENV — the env-var counterpart to the GITHUB_PATH it already appends.

Suggested fix / consideration: exporting JFROG_CLI_GHOST_FROG=true activates interception for every go/npm/mvn call in later steps, which can break steps running commands that aren't backed by a configured resolver. Consider gating it behind an explicit input (e.g. package-alias-mode: true|audit|off) rather than enabling it unconditionally.

Secondary: the minimum-version gate for this feature is 2.93.0 (MIN_CLI_VERSION_PACKAGE_ALIAS), but jf package-alias first ships in JFrog CLI 2.100.0 (jfrog/jfrog-cli#3375). With version pinned to 2.93.0–2.99.x, jf package-alias install fails and the action only logs a warning, so the floor likely should be 2.100.0.

Versions

  • Setup JFrog CLI version: v5.1.0
  • JFrog CLI version: reproduced on 2.100.0, 2.111.0, and latest
  • Workflow operating system type and version: ubuntu-latest (GitHub-hosted)
  • JFrog Artifactory version: n/a (not needed to reproduce)
  • JFrog Xray version: n/a

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions