Skip to content

Update Fleet-maintained apps - #48714

Merged
allenhouchins merged 2 commits into
mainfrom
fma-2607040022
Jul 4, 2026
Merged

Update Fleet-maintained apps#48714
allenhouchins merged 2 commits into
mainfrom
fma-2607040022

Conversation

@fleet-release

@fleet-release fleet-release commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Automated ingestion of latest Fleet-maintained app data.

Summary by CodeRabbit

  • Chores
    • Refreshed release metadata for multiple maintained apps across macOS and Windows by updating versions, installer download links, and integrity checks so the latest installers are recognized.
  • New Features
    • Added an Egnyte Windows installer script that runs the MSI with detailed logging and treats reboot-required outcomes as successful, ensuring required follow-up behavior occurs on the next reboot.

Generated automatically with cmd/maintained-apps.

@claude claude Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Claude Code Review

This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.

Tip: disable this comment in your organization's Code Review settings.

@coderabbitai

coderabbitai Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

This pull request refreshes maintained-app metadata and Egnyte winget support. Most changes bump app versions in ee/maintained-apps/outputs, updating the version field, patched-query version checks, installer URLs, and SHA-256 values. A separate Egnyte change adds a winget install script path, introduces a new PowerShell installer script, and updates the Egnyte Windows manifest and script reference to use it.

Changes

Possibly related PRs

  • fleetdm/fleet#48682: Updates the same Egnyte Windows manifest versioning and patched-query pattern.
  • fleetdm/fleet#47971: Updates overlapping maintained-app output manifests with the same version/url/checksum refresh pattern.
  • fleetdm/fleet#47570: Updates the Spotify Windows maintained-app entry using the same manifest fields.
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (1 warning, 1 inconclusive)

Check name Status Explanation Resolution
Description check ⚠️ Warning The description is far too brief and does not follow the required template sections or checklist items. Add the template sections, starting with Related issue, then complete the checklist and Testing sections with relevant details.
Title check ❓ Inconclusive The title is related, but it is too generic to convey the main change clearly. Use a more specific title naming the main update, such as the app-data ingestion or the Egnyte script change.
✅ Passed checks (3 passed)
Check name Status Explanation
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-2607040022

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.

Egnyte's MSI has a LaunchCondition that fails with 1603 when reboot
suppression is requested (/norestart => REBOOT=ReallySuppress) unless
ED_UPDATE_ON_BOOT=1 is passed, which defers the CBFS driver update to
the next boot instead of forcing an immediate reboot.
@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Script Diff Results

ee/maintained-apps/outputs/acorn/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/alt-tab/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/aptakube/windows.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/boltai/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/codexbar/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/deezer/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/egnyte/windows.json

=== Install // 8959087b -> 07209af6 ===

--- /tmp/old.VsArzy	2026-07-04 01:28:06.411346185 +0000
+++ /tmp/new.qBM2D4	2026-07-04 01:28:06.411346185 +0000
@@ -1,14 +1,36 @@
+# Learn more about .msi install scripts:
+# http://fleetdm.com/learn-more-about/msi-install-scripts
+#
+# Egnyte's MSI has a LaunchCondition that fails (1603) when reboot
+# suppression is requested (/norestart => REBOOT=ReallySuppress) unless
+# ED_UPDATE_ON_BOOT=1 is also passed, which schedules the CBFS driver
+# update at next boot instead of forcing an immediate reboot.
+
 $logFile = "${env:TEMP}/fleet-install-software.log"
+$msiFilePath = "${env:INSTALLER_PATH}"
 
 try {
 
-$installProcess = Start-Process msiexec.exe `
-  -ArgumentList "/quiet /norestart /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `
-  -PassThru -Verb RunAs -Wait
+$processOptions = @{
+  FilePath = "msiexec.exe"
+  ArgumentList = "/i `"$msiFilePath`" /quiet /norestart ED_UPDATE_ON_BOOT=1 /lv `"$logFile`""
+  PassThru = $true
+  Wait = $true
+}
+
+$process = Start-Process @processOptions
+$exitCode = $process.ExitCode
+
+Write-Host "Install exit code: $exitCode"
+
+# MSI reboot-required success codes.
+if ($exitCode -eq 3010 -or $exitCode -eq 1641) { Exit 0 }
 
-Get-Content $logFile -Tail 500
+if ($exitCode -ne 0) {
+  Get-Content $logFile -Tail 500
+}
 
-Exit $installProcess.ExitCode
+Exit $exitCode
 
 } catch {
   Write-Host "Error: $_"

=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/free-download-manager/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/git/windows.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/home-assistant/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/jetbrains-toolbox/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/microsoft-teams/windows.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/mimestream/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/modern-csv/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/mountain-duck/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/netron/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/opera/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/proxyman/windows.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/pycharm/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/rustrover/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/spokenly/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/spotify/windows.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/superhuman/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/surfshark/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/vivaldi/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/warp/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/yacreader/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

ee/maintained-apps/outputs/zappy/darwin.json

=== Install Script (no changes) ===
=== Uninstall Script (no changes) ===

@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.

🧹 Nitpick comments (1)
ee/maintained-apps/inputs/winget/scripts/egnyte_install.ps1 (1)

29-33: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Get-Content failure could swallow the real exit code.

If $logFile isn't created (e.g., msiexec fails before writing the log), Get-Content throws inside the try block, which is caught by the outer catch and forces Exit 1 — losing the original $exitCode that would otherwise help diagnose the failure.

🛠️ Suggested fix
 if ($exitCode -ne 0) {
-  Get-Content $logFile -Tail 500
+  Get-Content $logFile -Tail 500 -ErrorAction SilentlyContinue
 }
🤖 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/inputs/winget/scripts/egnyte_install.ps1` around lines 29
- 33, The failure-handling block in egnyte_install.ps1 can mask the original
installer exit code if Get-Content throws because the log file does not exist.
Update the error-path logic around $exitCode and $logFile so the log tail is
only attempted when the file is present/readable, or any Get-Content failure is
handled locally without escaping to the outer catch. Keep the final Exit using
the original $exitCode from the installer flow, and make sure the behavior is
centered on the existing $exitCode, $logFile, and Get-Content logic.
🤖 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.

Nitpick comments:
In `@ee/maintained-apps/inputs/winget/scripts/egnyte_install.ps1`:
- Around line 29-33: The failure-handling block in egnyte_install.ps1 can mask
the original installer exit code if Get-Content throws because the log file does
not exist. Update the error-path logic around $exitCode and $logFile so the log
tail is only attempted when the file is present/readable, or any Get-Content
failure is handled locally without escaping to the outer catch. Keep the final
Exit using the original $exitCode from the installer flow, and make sure the
behavior is centered on the existing $exitCode, $logFile, and Get-Content logic.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: bd6629bc-f3c3-4097-91cc-cab263f34800

📥 Commits

Reviewing files that changed from the base of the PR and between 73c19dd and 19ea40a.

📒 Files selected for processing (3)
  • ee/maintained-apps/inputs/winget/egnyte.json
  • ee/maintained-apps/inputs/winget/scripts/egnyte_install.ps1
  • ee/maintained-apps/outputs/egnyte/windows.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • ee/maintained-apps/outputs/egnyte/windows.json

@allenhouchins
allenhouchins merged commit f221c94 into main Jul 4, 2026
13 checks passed
@allenhouchins
allenhouchins deleted the fma-2607040022 branch July 4, 2026 01:46
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