Skip to content

Provide one-command versioned installers through GitHub Releases #466

Description

Problem

The installation instructions require users to find a release, set AZUREAUTH_VERSION, and then download the installer from that tag. The syntax also differs between shells. For example, the documented macOS command does not work as written in Fish.

Fetching the installer from main would be shorter, but #96 intentionally moved away from that approach after installer changes caused regressions. The installer should continue to come from an immutable release.

GitHub's standard /releases/latest/download/... URLs are not currently usable because published releases are marked as prereleases, and the release assets contain platform packages but not the installer scripts.

Proposal

Publish version-baked installer scripts as release assets and use GitHub's latest-release redirects for the default installation path:

curl -fsSL https://github.com/AzureAD/microsoft-authentication-cli/releases/latest/download/install.sh | sh

Keep the existing version-pinned flow available for automation and reproducible environments.

This likely requires:

  • Publishing normal releases with prerelease: false, while retaining support for actual prerelease builds.
  • Generating install.sh, linux-install.sh, and install.ps1 release assets with the release version embedded.
  • Adding the generated installers to the release pipeline's asset list.
  • Verifying the latest-release URLs after the first release containing these assets.
  • Updating the installation documentation only after those URLs are live.

Benefits

  • One command works consistently from Bash, Zsh, and Fish.
  • The executed installer remains tied to an immutable release, preserving the safety goal from Detour installation script #96.
  • GitHub selects the latest stable release without shell-based JSON or Atom parsing.
  • Future prereleases are not installed automatically.

This is separate from the broader Homebrew packaging request in #463, although it would improve the installation experience in the meantime.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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