Skip to content

Add macOS Fleet-maintained apps (N) - #47537

Merged
allenhouchins merged 4 commits into
mainfrom
new-mac-fmas-n
Jun 13, 2026
Merged

Add macOS Fleet-maintained apps (N)#47537
allenhouchins merged 4 commits into
mainfrom
new-mac-fmas-n

Conversation

@allenhouchins

@allenhouchins allenhouchins commented Jun 12, 2026

Copy link
Copy Markdown
Member

Adds 25 Fleet-maintained app(s) whose cask token starts with 'N': inputs, outputs, app icons (TSX + website PNG), and the matching index.ts and apps.json entries.

Summary by CodeRabbit

  • New Features
    • Added support for 24 new apps (Nagstamon, Name Mangler, NAPS2, NDI Tools, NeoFinder, Netiquette, NetNewsWire, Netron, NetSpot, Nextcloud Talk Desktop, Nightfall, Nitro PDF Pro, Nocturnal, NordLayer, NoSQL Workbench, NotchNook, Notepad.exe, Notesnook, NotesOllama, Noun Project, Novabench, Nucleo, Numi, NVIDIA GeForce NOW) with install/uninstall/version metadata.
  • UI Changes
    • Added icons and name→icon mappings for the new applications and expanded the software icon registry.
  • Updates
    • Expanded and reordered the maintained apps listing to include the new entries.

Adds 25 Fleet-maintained app(s) whose cask token starts with 'N':
inputs, outputs, app icons (TSX + website PNG), and the matching
index.ts and apps.json entries. Split out from #47121.
@codecov

codecov Bot commented Jun 12, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 50.00000% with 24 lines in your changes missing coverage. Please review.
✅ Project coverage is 67.18%. Comparing base (9279a99) to head (b3f2ed2).
⚠️ Report is 6 commits behind head on main.

Files with missing lines Patch % Lines
.../pages/SoftwarePage/components/icons/Nagstamon.tsx 50.00% 1 Missing ⚠️
...ages/SoftwarePage/components/icons/NameMangler.tsx 50.00% 1 Missing ⚠️
...tend/pages/SoftwarePage/components/icons/Naps2.tsx 50.00% 1 Missing ⚠️
...d/pages/SoftwarePage/components/icons/NdiTools.tsx 50.00% 1 Missing ⚠️
.../pages/SoftwarePage/components/icons/Neofinder.tsx 50.00% 1 Missing ⚠️
...pages/SoftwarePage/components/icons/Netiquette.tsx 50.00% 1 Missing ⚠️
...ages/SoftwarePage/components/icons/Netnewswire.tsx 50.00% 1 Missing ⚠️
...end/pages/SoftwarePage/components/icons/Netron.tsx 50.00% 1 Missing ⚠️
...nd/pages/SoftwarePage/components/icons/Netspot.tsx 50.00% 1 Missing ⚠️
...es/SoftwarePage/components/icons/NextcloudTalk.tsx 50.00% 1 Missing ⚠️
... and 14 more
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #47537      +/-   ##
==========================================
- Coverage   67.18%   67.18%   -0.01%     
==========================================
  Files        3548     3616      +68     
  Lines      228890   229077     +187     
  Branches    11909    11928      +19     
==========================================
+ Hits       153782   153900     +118     
- Misses      61263    61333      +70     
+ Partials    13845    13844       -1     
Flag Coverage Δ
frontend 57.97% <50.00%> (+0.02%) ⬆️

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.

Delete Native Access maintained-app metadata and UI icon. Removed ee/maintained-apps/inputs/homebrew/native-access.json and ee/maintained-apps/outputs/native-access/darwin.json (including installer/uninstaller script refs), removed the Native Access entry from ee/maintained-apps/outputs/apps.json, and removed the frontend NativeAccess.tsx icon component and its export from the icons index.
@allenhouchins
allenhouchins marked this pull request as ready for review June 13, 2026 01:45
@allenhouchins
allenhouchins requested a review from a team as a code owner June 13, 2026 01:45
Copilot AI review requested due to automatic review settings June 13, 2026 01:45
@fleet-release
fleet-release requested a review from eashaw June 13, 2026 01:45
fleet-release
fleet-release previously approved these changes Jun 13, 2026

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

This PR expands Fleet’s Fleet-maintained apps catalog for macOS (Homebrew casks starting with “N”) by adding the corresponding maintained-app input metadata, generated output manifests (including install/uninstall scripts), and frontend Software page icons + icon mapping entries.

Changes:

  • Added new macOS Fleet-maintained app input definitions under ee/maintained-apps/inputs/homebrew/ and generated output manifests under ee/maintained-apps/outputs/.
  • Added new Software page icon components and wired them into SOFTWARE_NAME_TO_ICON_MAP.
  • Appended the new apps to ee/maintained-apps/outputs/apps.json for catalog discovery.

Reviewed changes

Copilot reviewed 74 out of 99 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
frontend/pages/SoftwarePage/components/icons/Numi.tsx Adds the Numi icon component (embedded base64 PNG in SVG).
frontend/pages/SoftwarePage/components/icons/NounProject.tsx Adds the Noun Project icon component.
frontend/pages/SoftwarePage/components/icons/Notesollama.tsx Adds the NotesOllama icon component.
frontend/pages/SoftwarePage/components/icons/Notesnook.tsx Adds the Notesnook icon component.
frontend/pages/SoftwarePage/components/icons/Nordlayer.tsx Adds the NordLayer icon component.
frontend/pages/SoftwarePage/components/icons/Netiquette.tsx Adds the Netiquette icon component.
frontend/pages/SoftwarePage/components/icons/index.ts Imports new icons and maps new software names to those icons.
ee/maintained-apps/outputs/nvidia-geforce-now/darwin.json New generated manifest + scripts for NVIDIA GeForce NOW (macOS).
ee/maintained-apps/outputs/numi/darwin.json New generated manifest + scripts for Numi (macOS).
ee/maintained-apps/outputs/nucleo/darwin.json New generated manifest + scripts for Nucleo (macOS).
ee/maintained-apps/outputs/novabench/darwin.json New generated manifest + scripts for Novabench (macOS).
ee/maintained-apps/outputs/noun-project/darwin.json New generated manifest + scripts for Noun Project (macOS).
ee/maintained-apps/outputs/notesollama/darwin.json New generated manifest + scripts for NotesOllama (macOS).
ee/maintained-apps/outputs/notesnook/darwin.json New generated manifest + scripts for Notesnook (macOS).
ee/maintained-apps/outputs/notepadexe/darwin.json New generated manifest + scripts for Notepad.exe (macOS).
ee/maintained-apps/outputs/notchnook/darwin.json New generated manifest + scripts for NotchNook (macOS).
ee/maintained-apps/outputs/nosql-workbench/darwin.json New generated manifest + scripts for NoSQL Workbench (macOS).
ee/maintained-apps/outputs/nordlayer/darwin.json New generated manifest + scripts for NordLayer (macOS).
ee/maintained-apps/outputs/nocturnal/darwin.json New generated manifest + scripts for Nocturnal (macOS).
ee/maintained-apps/outputs/nitro-pdf-pro/darwin.json New generated manifest + scripts for Nitro PDF Pro (macOS).
ee/maintained-apps/outputs/nightfall/darwin.json New generated manifest + scripts for Nightfall (macOS).
ee/maintained-apps/outputs/nextcloud-talk/darwin.json New generated manifest + scripts for Nextcloud Talk Desktop (macOS).
ee/maintained-apps/outputs/netspot/darwin.json New generated manifest + scripts for NetSpot (macOS).
ee/maintained-apps/outputs/netron/darwin.json New generated manifest + scripts for Netron (macOS).
ee/maintained-apps/outputs/netnewswire/darwin.json New generated manifest + scripts for NetNewsWire (macOS).
ee/maintained-apps/outputs/netiquette/darwin.json New generated manifest + scripts for Netiquette (macOS).
ee/maintained-apps/outputs/neofinder/darwin.json New generated manifest + scripts for NeoFinder (macOS).
ee/maintained-apps/outputs/ndi-tools/darwin.json New generated manifest + scripts for NDI Tools (macOS).
ee/maintained-apps/outputs/naps2/darwin.json New generated manifest + scripts for NAPS2 (macOS).
ee/maintained-apps/outputs/name-mangler/darwin.json New generated manifest + scripts for Name Mangler (macOS).
ee/maintained-apps/outputs/nagstamon/darwin.json New generated manifest + scripts for Nagstamon (macOS).
ee/maintained-apps/outputs/apps.json Adds catalog entries for the new “N” macOS apps.
ee/maintained-apps/inputs/homebrew/nvidia-geforce-now.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/numi.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/nucleo.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/novabench.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/noun-project.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/notesollama.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/notesnook.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/notepadexe.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/notchnook.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/nosql-workbench.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/nordlayer.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/nocturnal.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/nitro-pdf-pro.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/nightfall.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/nextcloud-talk.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/netspot.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/netron.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/netnewswire.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/netiquette.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/neofinder.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/ndi-tools.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/naps2.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/name-mangler.json New maintained-app input metadata.
ee/maintained-apps/inputs/homebrew/nagstamon.json New maintained-app input metadata.

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

Comment thread ee/maintained-apps/outputs/nordlayer/darwin.json
Comment thread ee/maintained-apps/outputs/naps2/darwin.json
Comment thread ee/maintained-apps/outputs/ndi-tools/darwin.json
Comment thread ee/maintained-apps/outputs/nvidia-geforce-now/darwin.json
Comment thread ee/maintained-apps/outputs/notesollama/darwin.json
Comment thread ee/maintained-apps/outputs/apps.json Outdated
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@coderabbitai

coderabbitai Bot commented Jun 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3d767c76-66e4-4737-9eff-4940d755be57

📥 Commits

Reviewing files that changed from the base of the PR and between a254fd1 and b3f2ed2.

📒 Files selected for processing (1)
  • ee/maintained-apps/outputs/apps.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • ee/maintained-apps/outputs/apps.json

Walkthrough

This PR adds 25 new macOS managed applications beginning with "N" to Fleet's maintained-apps catalog. It includes input metadata definitions for each app (name, unique identifier, token, installer format), generated macOS version manifests with embedded installation and uninstallation bash scripts, consolidated entries in the main apps registry, React icon components for the UI, and wiring of those components into the software page's icon registry mapping.

Possibly related PRs

  • fleetdm/fleet#47182: Both PRs modify frontend/pages/SoftwarePage/components/icons/index.ts by expanding SOFTWARE_NAME_TO_ICON_MAP and the icon import list (this PR adds N* entries; #47182 added W* entries).
  • fleetdm/fleet#47062: Also updates the frontend icon registry (SOFTWARE_NAME_TO_ICON_MAP) with new icon mappings (this PR adds many N* mappings; #47062 adds capcut: CapCut).
  • fleetdm/fleet#47316: Similar maintained-apps changes: adds app definitions and updates apps.json and the icon registry mapping (this PR for N* apps; #47316 for K* apps).
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description provides a clear summary of what was added, but does not follow the provided template structure with its required checklist sections. Use the provided description template and complete all applicable checklist items. At minimum, confirm changes file status, testing approach, and any other relevant sections from the template.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically describes the main change: adding 25 macOS Fleet-maintained applications whose names start with 'N'.
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.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch new-mac-fmas-n

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: 11

🤖 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/apps.json`:
- Around line 4373-4378: The description strings for two new app entries are
grammatically awkward; update the "NDI Tools" entry (name: "NDI Tools",
unique_identifier: "com.newtek.Application-Mac-NDI-ScanConverter", slug:
"ndi-tools/darwin") to a clearer user-facing sentence such as "NDI Tools is a
set of tools and plugins for NDI." and likewise find the second new app entry
around the other insertion (the app block at lines 4541-4546) and rewrite its
description to proper grammar/concise wording, replacing the current awkward
phrase with a corrected sentence.

In `@ee/maintained-apps/outputs/naps2/darwin.json`:
- Line 20: The remove_receipt_files function computes FULL_INSTALL_LOCATION but
the pkgutil --only-files pipeline still prefixes file paths with
"/${INSTALL_LOCATION}/" (and not ${FULL_INSTALL_LOCATION}), causing wrong paths;
update the two places inside remove_receipt_files where you run pkgutil
--only-files --files and pkgutil --only-dirs --files to prefix with
${FULL_INSTALL_LOCATION}/ (matching the echoed commands and the later use),
ensuring you use the same variable and normalize slashes the same way as
FULL_INSTALL_LOCATION was constructed (keep the sed replacement that collapses
// to /).

In `@ee/maintained-apps/outputs/ndi-tools/darwin.json`:
- Line 19: The script's remove_launchctl_service() always runs launchctl list
"${service}" unprivileged, so when should_sudo="true" the probe can miss system
daemons; change the probe to use the same privilege level as the removal attempt
— i.e. when should_sudo=="true" run sudo launchctl list "${service}" (and use
sudo launchctl remove for removal), and when should_sudo=="false" run the
unprivileged launchctl list/remove; update the logic in remove_launchctl_service
to perform the privileged probe before deciding to skip removal and to match
sudo usage for both list and remove operations.

In `@ee/maintained-apps/outputs/neofinder/darwin.json`:
- Line 19: The script currently renames the live app to a backup (sudo mv
\"$APPDIR/NeoFinder.app\" \"$TMPDIR/NeoFinder.app.bkp\") before attempting a
fallible staging/copy (unzip and sudo cp -R), which can leave the system without
a working app on failure; modify the install flow around the unzip/unpack and cp
steps so you stage the new bundle into TMPDIR first and only perform the mv swap
after the unzip/cp succeeds, or add guaranteed rollback on any failure by
restoring \"$TMPDIR/NeoFinder.app.bkp\" back to \"$APPDIR/NeoFinder.app\" in
every error path (ensure cleanup of the .bkp on success); update the logic
around unzip, the sudo cp -R command, and the swap step in the same script
(functions/variables involved: unzip, sudo cp -R, sudo mv, TMPDIR, APPDIR, and
the backup filename) to implement staging-first-or-restore-on-failure behavior.

In `@ee/maintained-apps/outputs/nextcloud-talk/darwin.json`:
- Line 20: The uninstall script assumes a GUI user exists; fix by
short-circuiting the trash logic when there is no non-root console user: check
the LOGGED_IN_USER value (from scutil) and if it's empty or equals "root" or
"loginwindow" then make trash a no-op (either return early inside the trash()
function or skip calling trash) so moves into /Users/$LOGGED_IN_USER/.Trash are
avoided; update the trash guard in the Nextcloud Talk darwin.json (trash
function / LOGGED_IN_USER usage) and apply the same console-user guard before
calling trash in the other listed darwin.json outputs (nightfall, nitro-pdf-pro,
nordlayer, nosql-workbench).

In `@ee/maintained-apps/outputs/nordlayer/darwin.json`:
- Around line 19-20: The quit helpers (quit_application and
quit_and_track_application) rely on pgrep -f "$bundle_id" which can misidentify
bundle identifiers; update both functions to poll osascript -e "application id
\"${bundle_id}\" is running" in the SECONDS loop and treat the app as exited
when that returns anything other than "true" (or when timeout occurs), replacing
the pgrep-based checks and preserving the existing timeout logic and messaging.

In `@ee/maintained-apps/outputs/notchnook/darwin.json`:
- Line 20: The installer lacks atomic update and fail-fast semantics: enable
strict error handling (e.g., set -euo pipefail) at the top of the script,
validate that the extracted bundle exists in $TMPDIR (check the NotchNook.app
path after unzip) before moving the current app, and change the install sequence
so you either copy the new bundle to a temporary location and only then move it
into place (or move the existing app to a .bkp only after a successful copy),
and on any copy failure restore the original backup; update the unzip/copy/move
logic around the unzip call and the sudo cp/mv steps and ensure error
propagation to avoid leaving the app removed (apply the same pattern to the
other installers that use this flow).

In `@ee/maintained-apps/outputs/notesollama/darwin.json`:
- Line 19: The quit_application call is using the app name instead of the bundle
identifier so osascript's "application id" check fails; update the invocation at
the end (quit_application 'NotesOllama') to pass the bundle identifier used
elsewhere (app.smallest.NotesOllama) so quit_application, its osascript checks
and pgrep-based running detection operate against the correct bundle id.

In `@ee/maintained-apps/outputs/noun-project/darwin.json`:
- Around line 9-13: The manifests for the noun-project and novabench outputs
currently disable integrity checks by setting the sha256 field to "no_check";
update each manifest entry by computing and pinning the actual SHA-256 digest of
the versioned installer referenced by installer_url (replace the "sha256":
"no_check" value with the computed hex SHA-256), ensure the checksum matches the
downloaded .dmg you will ship, and keep the installer_url and script refs
unchanged.

In `@ee/maintained-apps/outputs/nvidia-geforce-now/darwin.json`:
- Around line 9-13: The manifest currently disables installer integrity checks
by setting sha256: "no_check"; update the darwin.json for the NVIDIA GeForce Now
app to pin a concrete SHA-256 checksum for the installer located at
installer_url ("https://download.nvidia.com/gfnpc/GeForceNOW-release.dmg") —
download the referenced DMG (or obtain its immutable/versioned URL if
available), compute its SHA-256, replace "no_check" with that hash, and if
possible update installer_url to a versioned/immutable URL while keeping
install_script_ref and uninstall_script_ref unchanged.
- Line 19: The rmdir call uses single quotes so the tilde won't expand; change
the removal to use the resolved user home (use LOGGED_IN_USER or expand ~) so
the path becomes /Users/$LOGGED_IN_USER/Movies/NVIDIA (or otherwise expand the
tilde) — update the sudo rmdir '~/Movies/NVIDIA' line to construct the correct
path using LOGGED_IN_USER (or perform tilde expansion) to reliably remove the
intended directory; keep the surrounding sudo usage and error handling
consistent with other removal lines.
🪄 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: 9fea0075-1101-490e-8c79-1663e824550a

📥 Commits

Reviewing files that changed from the base of the PR and between 9279a99 and a254fd1.

⛔ Files ignored due to path filters (25)
  • website/assets/images/app-icon-nagstamon-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-name-mangler-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-naps2-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-native-access-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-ndi-tools-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-neofinder-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-netiquette-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-netnewswire-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-netron-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-netspot-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-nextcloud-talk-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-nightfall-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-nitro-pdf-pro-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-nocturnal-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-nordlayer-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-nosql-workbench-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-notchnook-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-notepadexe-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-notesnook-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-notesollama-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-noun-project-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-novabench-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-nucleo-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-numi-60x60@2x.png is excluded by !**/*.png
  • website/assets/images/app-icon-nvidia-geforce-now-60x60@2x.png is excluded by !**/*.png
📒 Files selected for processing (74)
  • ee/maintained-apps/inputs/homebrew/nagstamon.json
  • ee/maintained-apps/inputs/homebrew/name-mangler.json
  • ee/maintained-apps/inputs/homebrew/naps2.json
  • ee/maintained-apps/inputs/homebrew/ndi-tools.json
  • ee/maintained-apps/inputs/homebrew/neofinder.json
  • ee/maintained-apps/inputs/homebrew/netiquette.json
  • ee/maintained-apps/inputs/homebrew/netnewswire.json
  • ee/maintained-apps/inputs/homebrew/netron.json
  • ee/maintained-apps/inputs/homebrew/netspot.json
  • ee/maintained-apps/inputs/homebrew/nextcloud-talk.json
  • ee/maintained-apps/inputs/homebrew/nightfall.json
  • ee/maintained-apps/inputs/homebrew/nitro-pdf-pro.json
  • ee/maintained-apps/inputs/homebrew/nocturnal.json
  • ee/maintained-apps/inputs/homebrew/nordlayer.json
  • ee/maintained-apps/inputs/homebrew/nosql-workbench.json
  • ee/maintained-apps/inputs/homebrew/notchnook.json
  • ee/maintained-apps/inputs/homebrew/notepadexe.json
  • ee/maintained-apps/inputs/homebrew/notesnook.json
  • ee/maintained-apps/inputs/homebrew/notesollama.json
  • ee/maintained-apps/inputs/homebrew/noun-project.json
  • ee/maintained-apps/inputs/homebrew/novabench.json
  • ee/maintained-apps/inputs/homebrew/nucleo.json
  • ee/maintained-apps/inputs/homebrew/numi.json
  • ee/maintained-apps/inputs/homebrew/nvidia-geforce-now.json
  • ee/maintained-apps/outputs/apps.json
  • ee/maintained-apps/outputs/nagstamon/darwin.json
  • ee/maintained-apps/outputs/name-mangler/darwin.json
  • ee/maintained-apps/outputs/naps2/darwin.json
  • ee/maintained-apps/outputs/ndi-tools/darwin.json
  • ee/maintained-apps/outputs/neofinder/darwin.json
  • ee/maintained-apps/outputs/netiquette/darwin.json
  • ee/maintained-apps/outputs/netnewswire/darwin.json
  • ee/maintained-apps/outputs/netron/darwin.json
  • ee/maintained-apps/outputs/netspot/darwin.json
  • ee/maintained-apps/outputs/nextcloud-talk/darwin.json
  • ee/maintained-apps/outputs/nightfall/darwin.json
  • ee/maintained-apps/outputs/nitro-pdf-pro/darwin.json
  • ee/maintained-apps/outputs/nocturnal/darwin.json
  • ee/maintained-apps/outputs/nordlayer/darwin.json
  • ee/maintained-apps/outputs/nosql-workbench/darwin.json
  • ee/maintained-apps/outputs/notchnook/darwin.json
  • ee/maintained-apps/outputs/notepadexe/darwin.json
  • ee/maintained-apps/outputs/notesnook/darwin.json
  • ee/maintained-apps/outputs/notesollama/darwin.json
  • ee/maintained-apps/outputs/noun-project/darwin.json
  • ee/maintained-apps/outputs/novabench/darwin.json
  • ee/maintained-apps/outputs/nucleo/darwin.json
  • ee/maintained-apps/outputs/numi/darwin.json
  • ee/maintained-apps/outputs/nvidia-geforce-now/darwin.json
  • frontend/pages/SoftwarePage/components/icons/Nagstamon.tsx
  • frontend/pages/SoftwarePage/components/icons/NameMangler.tsx
  • frontend/pages/SoftwarePage/components/icons/Naps2.tsx
  • frontend/pages/SoftwarePage/components/icons/NdiTools.tsx
  • frontend/pages/SoftwarePage/components/icons/Neofinder.tsx
  • frontend/pages/SoftwarePage/components/icons/Netiquette.tsx
  • frontend/pages/SoftwarePage/components/icons/Netnewswire.tsx
  • frontend/pages/SoftwarePage/components/icons/Netron.tsx
  • frontend/pages/SoftwarePage/components/icons/Netspot.tsx
  • frontend/pages/SoftwarePage/components/icons/NextcloudTalk.tsx
  • frontend/pages/SoftwarePage/components/icons/Nightfall.tsx
  • frontend/pages/SoftwarePage/components/icons/NitroPdfPro.tsx
  • frontend/pages/SoftwarePage/components/icons/Nocturnal.tsx
  • frontend/pages/SoftwarePage/components/icons/Nordlayer.tsx
  • frontend/pages/SoftwarePage/components/icons/NosqlWorkbench.tsx
  • frontend/pages/SoftwarePage/components/icons/Notchnook.tsx
  • frontend/pages/SoftwarePage/components/icons/Notepadexe.tsx
  • frontend/pages/SoftwarePage/components/icons/Notesnook.tsx
  • frontend/pages/SoftwarePage/components/icons/Notesollama.tsx
  • frontend/pages/SoftwarePage/components/icons/NounProject.tsx
  • frontend/pages/SoftwarePage/components/icons/Novabench.tsx
  • frontend/pages/SoftwarePage/components/icons/Nucleo.tsx
  • frontend/pages/SoftwarePage/components/icons/Numi.tsx
  • frontend/pages/SoftwarePage/components/icons/NvidiaGeforceNow.tsx
  • frontend/pages/SoftwarePage/components/icons/index.ts

Comment thread ee/maintained-apps/outputs/apps.json
Comment thread ee/maintained-apps/outputs/naps2/darwin.json
Comment thread ee/maintained-apps/outputs/ndi-tools/darwin.json
Comment thread ee/maintained-apps/outputs/neofinder/darwin.json
Comment thread ee/maintained-apps/outputs/nextcloud-talk/darwin.json
Comment thread ee/maintained-apps/outputs/notchnook/darwin.json
Comment thread ee/maintained-apps/outputs/notesollama/darwin.json
Comment thread ee/maintained-apps/outputs/noun-project/darwin.json
Comment thread ee/maintained-apps/outputs/nvidia-geforce-now/darwin.json
Comment thread ee/maintained-apps/outputs/nvidia-geforce-now/darwin.json
@qodo-free-for-open-source-projects

Copy link
Copy Markdown

CI Feedback 🧐

A test triggered by this PR failed. Here is an AI-generated analysis of the failure:

Action: check-template

Failed stage: Verify PR body contains the PR template [❌]

Failed test name: ""

Failure summary:

The action failed because the PR description did not include the required PR template marker line.
-
The script checks the PR body (BODY) for the exact text QA'd all new/changed functionality manually.

- The PR author (allenhouchins) was not exempt (fleet-release), and the changed files were not all
under the exempt paths (ee/maintained-apps/ or it-and-security/), so the check was enforced.
- Since
the marker line was missing, the step emitted ::error::PR description is missing the PR template...
and exited with code 1 (log lines 41-44, 66-67).

Relevant error logs:
1:  ##[group]Runner Image Provisioner
2:  Hosted Compute Agent
...

28:  �[36;1m# Exempt the automated release author�[0m
29:  �[36;1mif [ "$AUTHOR" = "fleet-release" ]; then�[0m
30:  �[36;1m  echo "Author is fleet-release; skipping PR template check."�[0m
31:  �[36;1m  exit 0�[0m
32:  �[36;1mfi�[0m
33:  �[36;1m�[0m
34:  �[36;1m# Exempt PRs whose changed files are ALL under exempt paths�[0m
35:  �[36;1mfiles=$(gh api --paginate "repos/$REPO/pulls/$PR_NUMBER/files" --jq '.[].filename')�[0m
36:  �[36;1mif [ -n "$files" ] && ! grep -qvE '^(ee/maintained-apps/|it-and-security/)' <<< "$files"; then�[0m
37:  �[36;1m  echo "All changed files are under exempt paths; skipping PR template check."�[0m
38:  �[36;1m  exit 0�[0m
39:  �[36;1mfi�[0m
40:  �[36;1m�[0m
41:  �[36;1mmarker="QA'd all new/changed functionality manually"�[0m
42:  �[36;1mif ! grep -qF "$marker" <<< "$BODY"; then�[0m
43:  �[36;1m  echo "::error::PR description is missing the PR template. Please fill in .github/pull_request_template.md (expected line: \"$marker\")."�[0m
44:  �[36;1m  exit 1�[0m
...

51:  
52:  <!-- This is an auto-generated comment: release notes by coderabbit.ai -->
53:  ## Summary by CodeRabbit
54:  
55:  * **New Features**
56:    * Added support for 24 new apps (Nagstamon, Name Mangler, NAPS2, NDI Tools, NeoFinder, Netiquette, NetNewsWire, Netron, NetSpot, Nextcloud Talk Desktop, Nightfall, Nitro PDF Pro, Nocturnal, NordLayer, NoSQL Workbench, NotchNook, Notepad.exe, Notesnook, NotesOllama, Noun Project, Novabench, Nucleo, Numi, NVIDIA GeForce NOW) with install/uninstall/version metadata.
57:  * **UI Changes**
58:    * Added icons and name→icon mappings for the new applications and expanded the software icon registry.
59:  * **Updates**
60:    * Expanded and reordered the maintained apps listing to include the new entries.
61:  <!-- end of auto-generated comment: release notes by coderabbit.ai -->
62:  AUTHOR: allenhouchins
63:  PR_NUMBER: 47537
64:  REPO: fleetdm/fleet
65:  ##[endgroup]
66:  ##[error]PR description is missing the PR template. Please fill in .github/pull_request_template.md (expected line: "QA'd all new/changed functionality manually").
67:  ##[error]Process completed with exit code 1.
68:  Cleaning up orphan processes

@allenhouchins
allenhouchins merged commit 48b4557 into main Jun 13, 2026
29 of 31 checks passed
@allenhouchins
allenhouchins deleted the new-mac-fmas-n branch June 13, 2026 02:14
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.

3 participants