Skip to content

Update Fleet-maintained apps - #50622

Closed
fleet-release wants to merge 1 commit into
mainfrom
fma-2608051838
Closed

Update Fleet-maintained apps#50622
fleet-release wants to merge 1 commit into
mainfrom
fma-2608051838

Conversation

@fleet-release

@fleet-release fleet-release commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Automated ingestion of latest Fleet-maintained app data.

Summary by CodeRabbit

  • Updates
    • Updated macOS versions for CLion, Firefox Developer Edition, GitKraken, Grammarly Desktop, Hive, MacPacker, PDF Expert, WebStorm, and Zed.
    • Updated Windows versions for Postman, Tailscale, and Zed.
    • Refreshed download details and integrity verification for all updated applications.
    • Installation and uninstallation workflows remain unchanged.

Generated automatically with cmd/maintained-apps.
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Updated twelve Fleet-maintained application manifests. The changes update application versions, patch-version queries, installer URLs, and SHA-256 checksums for macOS and Windows packages. Installation, uninstallation, and existence-query logic remain unchanged where applicable.

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description states the purpose of the changes but omits the required issue reference, checklist confirmations, and testing information. Complete the required template sections, or remove non-applicable items and document the testing performed.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: updating Fleet-maintained app data.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fma-2608051838

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@ee/maintained-apps/outputs/clion/darwin.json`:
- Around line 9-12: Add artifact metadata verification for the manifest entries
at ee/maintained-apps/outputs/clion/darwin.json:9-12,
ee/maintained-apps/outputs/firefox@developer-edition/darwin.json:9-12,
ee/maintained-apps/outputs/gitkraken/darwin.json:9-12,
ee/maintained-apps/outputs/grammarly-desktop/darwin.json:9-12,
ee/maintained-apps/outputs/hive-app/darwin.json:9-12,
ee/maintained-apps/outputs/macpacker/darwin.json:9-12,
ee/maintained-apps/outputs/pdf-expert/darwin.json:9-12,
ee/maintained-apps/outputs/webstorm/darwin.json:9-12,
ee/maintained-apps/outputs/zed/darwin.json:9-12,
ee/maintained-apps/outputs/tailscale/windows.json:9-12, and
ee/maintained-apps/outputs/zed/windows.json:9-12. For each artifact, either add
a release-page or publisher metadata lookup that verifies the expected
application version and architecture, or record equivalent version and
architecture metadata in the manifest alongside the existing installer and hash
fields.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: f4f20bd8-54a6-4c1d-82fa-b79a673e8e23

📥 Commits

Reviewing files that changed from the base of the PR and between 92aaf1d and 6db0e57.

📒 Files selected for processing (12)
  • ee/maintained-apps/outputs/clion/darwin.json
  • ee/maintained-apps/outputs/firefox@developer-edition/darwin.json
  • ee/maintained-apps/outputs/gitkraken/darwin.json
  • ee/maintained-apps/outputs/grammarly-desktop/darwin.json
  • ee/maintained-apps/outputs/hive-app/darwin.json
  • ee/maintained-apps/outputs/macpacker/darwin.json
  • ee/maintained-apps/outputs/pdf-expert/darwin.json
  • ee/maintained-apps/outputs/postman/windows.json
  • ee/maintained-apps/outputs/tailscale/windows.json
  • ee/maintained-apps/outputs/webstorm/darwin.json
  • ee/maintained-apps/outputs/zed/darwin.json
  • ee/maintained-apps/outputs/zed/windows.json

Comment on lines +9 to +12
"installer_url": "https://download.jetbrains.com/cpp/CLion-2026.2.1-aarch64.dmg",
"install_script_ref": "402571cd",
"uninstall_script_ref": "9c00be7f",
"sha256": "9e4909f34adcd5b0291013194f4663650727864cc01b78b5a7d1a1414038813e",
"sha256": "5017110b817f95aa2128658e0cd069b16935be85c0585f6e01b4fadd6fc663d3",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

files=(
  'ee/maintained-apps/outputs/clion/darwin.json'
  'ee/maintained-apps/outputs/firefox@developer-edition/darwin.json'
  'ee/maintained-apps/outputs/gitkraken/darwin.json'
  'ee/maintained-apps/outputs/grammarly-desktop/darwin.json'
  'ee/maintained-apps/outputs/hive-app/darwin.json'
  'ee/maintained-apps/outputs/macpacker/darwin.json'
  'ee/maintained-apps/outputs/pdf-expert/darwin.json'
  'ee/maintained-apps/outputs/webstorm/darwin.json'
  'ee/maintained-apps/outputs/zed/darwin.json'
  'ee/maintained-apps/outputs/tailscale/windows.json'
  'ee/maintained-apps/outputs/zed/windows.json'
)

tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT

sha256() {
  if command -v sha256sum >/dev/null 2>&1; then
    sha256sum "$1" | awk '{print $1}'
  else
    shasum -a 256 "$1" | awk '{print $1}'
  fi
}

for manifest in "${files[@]}"; do
  jq -e '
    .versions[0]
    | (.version and .installer_url and .sha256)
    and (.installer_url | startswith("https://"))
    and (.sha256 | test("^[0-9a-f]{64}$"))
  ' "$manifest" >/dev/null

  url="$(jq -r '.versions[0].installer_url' "$manifest")"
  expected="$(jq -r '.versions[0].sha256' "$manifest")"
  version="$(jq -r '.versions[0].version' "$manifest")"
  artifact="$tmpdir/$(printf '%s' "$manifest" | tr '/@' '__').pkg"

  curl --fail --location --proto '=https' --proto-redir '=https' \
    --retry 3 --connect-timeout 20 --max-time 900 \
    "$url" -o "$artifact"

  actual="$(sha256 "$artifact")"
  if [[ "$actual" != "$expected" ]]; then
    printf 'checksum mismatch: %s\nexpected=%s\nactual=%s\n' \
      "$manifest" "$expected" "$actual" >&2
    exit 1
  fi

  printf 'verified checksum: %s version=%s\n' "$manifest" "$version"
  command -v file >/dev/null 2>&1 && file "$artifact"
done

Repository: fleetdm/fleet

Length of output: 10418


🏁 Script executed:

#!/usr/bin/env bash
set -euo pipefail

files=(
  'ee/maintained-apps/outputs/clion/darwin.json'
  'ee/maintained-apps/outputs/firefox@developer-edition/darwin.json'
  'ee/maintained-apps/outputs/gitkraken/darwin.json'
  'ee/maintained-apps/outputs/grammarly-desktop/darwin.json'
  'ee/maintained-apps/outputs/hive-app/darwin.json'
  'ee/maintained-apps/outputs/macpacker/darwin.json'
  'ee/maintained-apps/outputs/pdf-expert/darwin.json'
  'ee/maintained-apps/outputs/webstorm/darwin.json'
  'ee/maintained-apps/outputs/zed/darwin.json'
  'ee/maintained-apps/outputs/tailscale/windows.json'
  'ee/maintained-apps/outputs/zed/windows.json'
)

tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' EXIT

jq -n '
  . == {
    clion: {app:"CLion", major:"2026.2.1", arch:"arm64", ext:"dmg", version:"2026.2.1"},
    firefox_developer_edition: {app:"", major:"154.0b7", arch:"", ext:"dmg", version:"154.0b7"},
    gitkraken: {app:"GitKraken", major:"12.4.0", arch:"arm64", ext:"zip", version:"12.4.0"},
    grammarly_desktop: {app:"Grammarly", major:"1.181.2", arch:"", ext:"dmg", version:"1.181.2"},
    hive_app: {app:"Hive", major:"1.2.26", arch:"arm64", ext:"dmg", version:"1.2.26"},
    macpacker: {app:"MacPacker", major:"0.19.0", arch:"", ext:"zip", version:"0.19.0"},
    pdf_expert: {app:"PDF Expert", major:"1168", arch:"", ext:"zip", version:"3.12"},
    webstorm: {app:"WebStorm", major:"2026.2.1", arch:"arm64", ext:"dmg", version:"2026.2.1"},
    zed_darwin: {app:"Zed", major:"1.14.2", arch:"arm64", ext:"dmg", version:"1.14.2"},
    tailscale_windows: {app:"Tailscale", major:"1.102.2", arch:"amd64", ext:"msi", version:"1.102.2"},
    zed_windows: {app:"Zed", major:"1.14.2", arch:"x86_64", ext:"exe", version:"1.14.2"},
  }
' >/dev/null

idx=0
for manifest in "${files[@]}"; do
  idx=$((idx+1))
  url="$(jq -r '.versions[0].installer_url' "$manifest")"
  expected="$(jq -r '.versions[0].sha256' "$manifest")"
  version="$(jq -r '.versions[0].version' "$manifest")"
  app="$(jq -r '.versions[0].versionApp // empty' "$manifest")"
  architecture="$(jq -r '.versions[0].architecture // empty' "$manifest")"
  artifact="$tmpdir/${idx}_$(printf '%s' "$manifest" | tr '/@' '__')"

  set +e
  http_code="$(curl --silent --show-error --fail --location --proto '=https' --proto-redir '=https' \
    --retry 3 --connect-timeout 25 --max-time 900 \
    -o "$artifact" -w '%{http_code}\n' "$url")"
  status=$?
  set -e

  echo "${manifest} http=${http_code:-"curl=$status"} artifact=$artifact"
  echo "  manifest version=${version} app=${app:-<unset>} arch=${architecture:-<unset>}"
  echo "  manifest sha256=${expected}"

  if [[ "${`#expected`}" -ne 64 ]]; then
    echo "  sha256 length invalid"
    exit 1
  fi

  actual="$(sha256sum "$artifact" | awk '{print $1}')"
  echo "  downloaded sha256=${actual}"
  if [[ "$actual" != "$expected" ]]; then
    echo "  CHECKSUM_MISMATCH"
    exit 1
  fi

  case "${manifest##*/}" in
    darwin.json)
      if command -v hdiutil >/dev/null 2>&1; then
        if [[ "$artifact" == *.dmg ]]; then
          hdiutil attach -nobrowse -quiet -mountpoint "$tmpdir/mnt-$idx" "$artifact" || true
          if [[ -d "$tmpdir/mnt-$idx" ]]; then
            find "$tmpdir/mnt-$idx" -maxdepth 1 -type d -mindepth 1 | while read -r appdir; do
              echo "  mounted app=${appdir##*/}"
              if [[ -e "$appdir/Contents/Info.plist" ]]; then
                /usr/libexec/PlistBuddy -c 'Print CFBundleShortVersionString; Print CFBundleIdentifier; Print CFBundleVersion' "$appdir/Contents/Info.plist" 2>/dev/null || true
              fi
              if [[ -x "$appdir/Contents/MacOS/CLion" ]]; then "$appdir/Contents/MacOS/CLion" --version 2>&1 | sed "s/^/    /" | head -n 20 || true; fi
              if [[ -x "$appdir/Contents/MacOS/WebStorm" ]]; then "$appdir/Contents/MacOS/WebStorm" --version 2>&1 | sed "s/^/    /" | head -n 20 || true; fi
              if [[ -x "$appdir/Contents/MacOS/Zed" ]]; then "$appdir/Contents/MacOS/Zed" --version 2>&1 | sed "s/^/    /" | head -n 20 || true; fi
              if [[ -x "$appdir/Contents/MacOS/TextMate.app/Contents/MacOS/Grammarly" ]]; then "$appdir/Contents/MacOS/TextMate.app/Contents/MacOS/Grammarly" --version 2>&1 | sed "s/^/    /" | head -n 20 || true; fi
              if ! lipo "$appdir/Contents/MacOS/Grammarly" 2>/dev/null | grep -q "x86_64 arm64"; then true; fi
              if command -v otool >/dev/null 2>&1 && [[ -e "$appdir/Contents/MacOS/Grammarly" ]]; then otool -l "$appdir/Contents/MacOS/Grammarly" | grep -E 'arch|minos|flags' | sed "s/^/    /" | head -n 8 || true; fi
            done
            hdiutil detach -quiet "$tmpdir/mnt-$idx" 2>/dev/null || true
          fi
        elif [[ "$artifact" == *.zip ]]; then
          unzip -lo "$artifact" -d "$tmpdir/unzipped-$idx" >/dev/null 2>&1
          find "$tmpdir/unzipped-$idx" -maxdepth 2 -type f -executable -print | while read -r exe; do
            echo "  executable=${exe}"
            "$exe" --version 2>&1 | sed "s/^/    /" | head -n 15 || true
          done
          find "$tmpdir/unzipped-$idx" -maxdepth 2 -type f \( -iname 'Contents/Info.plist' -o -name Info.plist \) -print | while read -r pl; do
            echo "  plist=${pl}"
            /usr/libexec/PlistBuddy -c 'Print CFBundleShortVersionString; Print CFBundleIdentifier; Print CFBundleVersion' "$pl" 2>/dev/null || true
          done
        fi
      else
        echo "  hdiutil/unzip otool unavailable"
      fi
      ;;
    windows.json)
      echo "  windows platform: skipped mount inspection"
      echo "  file: $(file "$artifact")"
      ;;
  esac
  echo
done

Repository: fleetdm/fleet

Length of output: 4608


Add artifact metadata checks before merge.

The hash values match the downloaded files, but the static manifests do not prove each artifact contains the expected application version and architecture. Add a release-page or publisher metadata lookup for these artifacts, or record that metadata in the manifest.

📍 Affects 11 files
  • ee/maintained-apps/outputs/clion/darwin.json#L9-L12 (this comment)
  • ee/maintained-apps/outputs/firefox@developer-edition/darwin.json#L9-L12
  • ee/maintained-apps/outputs/gitkraken/darwin.json#L9-L12
  • ee/maintained-apps/outputs/grammarly-desktop/darwin.json#L9-L12
  • ee/maintained-apps/outputs/hive-app/darwin.json#L9-L12
  • ee/maintained-apps/outputs/macpacker/darwin.json#L9-L12
  • ee/maintained-apps/outputs/pdf-expert/darwin.json#L9-L12
  • ee/maintained-apps/outputs/webstorm/darwin.json#L9-L12
  • ee/maintained-apps/outputs/zed/darwin.json#L9-L12
  • ee/maintained-apps/outputs/tailscale/windows.json#L9-L12
  • ee/maintained-apps/outputs/zed/windows.json#L9-L12
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@ee/maintained-apps/outputs/clion/darwin.json` around lines 9 - 12, Add
artifact metadata verification for the manifest entries at
ee/maintained-apps/outputs/clion/darwin.json:9-12,
ee/maintained-apps/outputs/firefox@developer-edition/darwin.json:9-12,
ee/maintained-apps/outputs/gitkraken/darwin.json:9-12,
ee/maintained-apps/outputs/grammarly-desktop/darwin.json:9-12,
ee/maintained-apps/outputs/hive-app/darwin.json:9-12,
ee/maintained-apps/outputs/macpacker/darwin.json:9-12,
ee/maintained-apps/outputs/pdf-expert/darwin.json:9-12,
ee/maintained-apps/outputs/webstorm/darwin.json:9-12,
ee/maintained-apps/outputs/zed/darwin.json:9-12,
ee/maintained-apps/outputs/tailscale/windows.json:9-12, and
ee/maintained-apps/outputs/zed/windows.json:9-12. For each artifact, either add
a release-page or publisher metadata lookup that verifies the expected
application version and architecture, or record equivalent version and
architecture metadata in the manifest alongside the existing installer and hash
fields.

@github-actions

github-actions Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Closing in favor of #50626.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants