Skip to content

Add Logi Tune as a macOS FMA - #47399

Merged
allenhouchins merged 2 commits into
mainfrom
47314-new-fma-logi-tune
Jun 11, 2026
Merged

Add Logi Tune as a macOS FMA#47399
allenhouchins merged 2 commits into
mainfrom
47314-new-fma-logi-tune

Conversation

@allenhouchins

@allenhouchins allenhouchins commented Jun 11, 2026

Copy link
Copy Markdown
Member

Add support for Logi Tune: include a Homebrew input manifest and install/uninstall scripts, add a transformer to override the installer URL to Logitech's enterprise PKG (and set SHA256 to "no_check"), and register the app in outputs. Also add darwin output refs with version, installer URL and embedded script refs, update apps.json to list Logi Tune, and add a frontend icon component + PNG asset and icon map entry. The PKG override is used because the Homebrew DMG contains a GUI-only installer without a silent mode; version is still sourced from Homebrew.

Summary by CodeRabbit

Release Notes

  • New Features
    • Added Logi Tune application support on macOS, including installation, removal, and visual identification in the software catalog.

Add support for Logi Tune: include a Homebrew input manifest and install/uninstall scripts, add a transformer to override the installer URL to Logitech's enterprise PKG (and set SHA256 to "no_check"), and register the app in outputs. Also add darwin output refs with version, installer URL and embedded script refs, update apps.json to list Logi Tune, and add a frontend icon component + PNG asset and icon map entry. The PKG override is used because the Homebrew DMG contains a GUI-only installer without a silent mode; version is still sourced from Homebrew.
@allenhouchins allenhouchins linked an issue Jun 11, 2026 that may be closed by this pull request
fleet-release
fleet-release previously approved these changes Jun 11, 2026
@codecov

codecov Bot commented Jun 11, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 16.66667% with 5 lines in your changes missing coverage. Please review.
✅ Project coverage is 67.17%. Comparing base (a28d7a6) to head (ceb75cf).
⚠️ Report is 12 commits behind head on main.

Files with missing lines Patch % Lines
...ined-apps/ingesters/homebrew/external_refs/main.go 0.00% 4 Missing ⚠️
...d/pages/SoftwarePage/components/icons/LogiTune.tsx 50.00% 1 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff            @@
##             main   #47399    +/-   ##
========================================
  Coverage   67.17%   67.17%            
========================================
  Files        3249     3251     +2     
  Lines      227365   227574   +209     
  Branches    11709    11709            
========================================
+ Hits       152728   152879   +151     
- Misses      60873    60907    +34     
- Partials    13764    13788    +24     
Flag Coverage Δ
backend 68.81% <0.00%> (+<0.01%) ⬆️
frontend 57.80% <50.00%> (-0.01%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@allenhouchins
allenhouchins marked this pull request as ready for review June 11, 2026 14:18
Copilot AI review requested due to automatic review settings June 11, 2026 14:18
@allenhouchins
allenhouchins requested review from a team as code owners June 11, 2026 14:18
@fleet-release
fleet-release requested a review from eashaw June 11, 2026 14:18

Copilot AI 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.

Pull request overview

Adds a new Fleet-maintained app (FMA) for Logi Tune (macOS), including frontend icon support and maintained-app manifests/scripts, with a Homebrew ingest override to use Logitech’s enterprise PKG.

Changes:

  • Added Logi Tune icon component and mapped it in the software icon registry.
  • Added maintained-app Homebrew input manifest plus install/uninstall scripts, and registered Logi Tune in apps.json.
  • Added Homebrew external ref transformer to override the installer URL/SHA, and updated the macOS validator to tolerate expected version mismatches.

Reviewed changes

Copilot reviewed 9 out of 10 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
frontend/pages/SoftwarePage/components/icons/LogiTune.tsx Adds Logi Tune icon component (PNG embedded in SVG).
frontend/pages/SoftwarePage/components/icons/index.ts Registers Logi Tune icon + name-to-icon mapping.
ee/maintained-apps/outputs/logitune/darwin.json Adds generated macOS output manifest with installer URL, queries, and embedded scripts.
ee/maintained-apps/outputs/apps.json Registers Logi Tune in the published maintained-app list.
ee/maintained-apps/inputs/homebrew/scripts/logitune-uninstall.sh Adds uninstall script for Logi Tune.
ee/maintained-apps/inputs/homebrew/scripts/logitune-install.sh Adds install script for Logi Tune.
ee/maintained-apps/inputs/homebrew/logitune.json Adds the Homebrew input manifest for Logi Tune.
ee/maintained-apps/ingesters/homebrew/external_refs/main.go Overrides Homebrew DMG URL to Logitech PKG and sets SHA256 to no_check.
cmd/maintained-apps/validate/darwin.go Adds special-case validation behavior for Logi Tune version mismatches.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread ee/maintained-apps/inputs/homebrew/scripts/logitune-uninstall.sh
Comment thread ee/maintained-apps/outputs/logitune/darwin.json
@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

This PR introduces Logi Tune (com.logitech.logitune) as a macOS managed app in Fleet. The backend adds version validation that falls back to existence-only checks and overrides the installer URL to Logitech's enterprise PKG endpoint. Two shell scripts handle graceful app shutdown before installation and comprehensive cleanup during uninstallation. Configuration files define Logi Tune's metadata and wire it into the app catalog. A new frontend icon component displays the app in the software inventory UI.

Possibly related issues

  • fleetdm/fleet#47314: Implements the full Logi Tune FMA integration including input metadata, installer override, macOS scripts, and validation behavior as requested.

Possibly related PRs

  • fleetdm/fleet#47058: Both PRs add app-specific version-validation special-casing in cmd/maintained-apps/validate/darwin.go's appExists for specific macOS bundle IDs.
  • fleetdm/fleet#47014: Both PRs extend SOFTWARE_NAME_TO_ICON_MAP in frontend/pages/SoftwarePage/components/icons/index.ts with new app icon entries.
  • fleetdm/fleet#47360: Both PRs update the same icon map in frontend/pages/SoftwarePage/components/icons/index.ts to register app icons.
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is present and explains the feature; however, it does not follow the provided template structure and lacks required checklist items for validation, testing, and migration confirmation. Use the provided template with all applicable checklist items (changes files, input validation, testing, QA, etc.) to ensure completeness and consistency with repository standards.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: adding Logi Tune as a macOS Fleet Managed Application, which is the primary objective of the PR.
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.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch 47314-new-fma-logi-tune

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 and usage tips.

@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/inputs/homebrew/scripts/logitune-install.sh`:
- Around line 39-41: The current check uses osascript’s exit status instead of
its stdout boolean; change the conditional around the osascript call that checks
"application id \"com.logitech.logitune\" is running" so it captures and
inspects stdout (expecting "true" or "false") rather than relying on the process
exit code, e.g. assign the osascript output to a variable and only call
quit_application 'com.logitech.logitune' "$CONSOLE_USER" when that output equals
"true" (treat empty output as false and keep stderr redirected to /dev/null).
🪄 Autofix (Beta)

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

Run ID: 26ad07bd-4d05-4fd0-964e-59fcd3a04837

📥 Commits

Reviewing files that changed from the base of the PR and between a28d7a6 and ceb75cf.

⛔ Files ignored due to path filters (1)
  • website/assets/images/app-icon-logitune-60x60@2x.png is excluded by !**/*.png
📒 Files selected for processing (9)
  • cmd/maintained-apps/validate/darwin.go
  • ee/maintained-apps/ingesters/homebrew/external_refs/main.go
  • ee/maintained-apps/inputs/homebrew/logitune.json
  • ee/maintained-apps/inputs/homebrew/scripts/logitune-install.sh
  • ee/maintained-apps/inputs/homebrew/scripts/logitune-uninstall.sh
  • ee/maintained-apps/outputs/apps.json
  • ee/maintained-apps/outputs/logitune/darwin.json
  • frontend/pages/SoftwarePage/components/icons/LogiTune.tsx
  • frontend/pages/SoftwarePage/components/icons/index.ts

Comment thread ee/maintained-apps/inputs/homebrew/scripts/logitune-install.sh
@allenhouchins
allenhouchins merged commit 2899384 into main Jun 11, 2026
50 of 52 checks passed
@allenhouchins
allenhouchins deleted the 47314-new-fma-logi-tune branch June 11, 2026 15:49
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.

New FMA: Logi Tune

4 participants