Windows FMA - Burp Suite Community - #46423
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #46423 +/- ##
=======================================
Coverage 66.88% 66.88%
=======================================
Files 2791 2796 +5
Lines 222293 222323 +30
Branches 11469 11480 +11
=======================================
+ Hits 148682 148707 +25
- Misses 60161 60166 +5
Partials 13450 13450
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
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.
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
WalkthroughThis PR adds complete Windows support for Burp Suite Community Edition to Fleet. It introduces Winget package metadata and PowerShell scripts to automate installation and uninstallation, generates aggregated output configuration with embedded script references and detection logic, adds an entry to the apps catalog for version 2026.3.3, and integrates a new SVG icon component into the frontend software page with registry mapping for display and matching. Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 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/winget/burp-suite-community.json`:
- Around line 5-6: The unique_identifier field is version-locked ("Burp Suite
Community Edition 2026.3.3") which causes generated winget detection queries to
only match that exact version; change the "unique_identifier" value to a stable
product identifier like "Burp Suite Community Edition" (remove the version) so
the ingester generates version-agnostic detection queries; update the JSON entry
for unique_identifier in burp-suite-community.json to the non-versioned name and
re-run the ingester/tests to confirm the outputs (e.g.,
ee/maintained-apps/outputs/burp-suite-community/windows.json) now contain
correct, non-version-locked query shapes.
In `@ee/maintained-apps/inputs/winget/scripts/burp_suite_community_install.ps1`:
- Around line 7-21: The installer wait is unbounded: change the
Start-Process/$process wait to be bounded by introducing a timeout (e.g.
$TimeoutSeconds) and use a timed wait (either Wait-Process -Id $process.Id
-Timeout $TimeoutSeconds or $process.WaitForExit($TimeoutMs)); after the timed
wait, detect timeout by checking if the process is still running (Get-Process
-Id $process.Id -ErrorAction SilentlyContinue), and if so call Stop-Process -Id
$process.Id -Force and set a non-zero exit code variable; otherwise read
$process.ExitCode as before and compare against $ExpectedExitCodes to decide
Exit 0 or Exit $exitCode. Ensure $processOptions, Start-Process, $process,
$exitCode and $ExpectedExitCodes are used as before but with the new timeout and
termination logic.
In `@ee/maintained-apps/inputs/winget/scripts/burp_suite_community_uninstall.ps1`:
- Around line 29-32: The guard incorrectly exits whenever UninstallString is
empty even if QuietUninstallString exists; update the conditional around
$selected to only exit when there is no uninstall command at all by checking
both UninstallString and QuietUninstallString (i.e., require that both are
missing to bail), so the later logic that prefers QuietUninstallString can run;
reference the $selected object and its UninstallString and QuietUninstallString
properties and keep the same exit/log behavior when no uninstall command is
present.
- Around line 68-73: The current split of $existingArgs using -split '\s+'
breaks quoted tokens; instead parse $existingArgs preserving quoted strings
(e.g. use a regex or CommandLineToArgvW via .NET to produce tokens) and populate
$argumentList with those intact tokens before checking/adding "-q" and
"-Dinstall4j.suppressUnattendedReboot=true"; ensure the parsing logic is used
where Start-Process is called so quoted paths/values remain a single
ArgumentList item (update references around $argumentList, $existingArgs and
Start-Process).
🪄 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: 7f9decb7-0654-4b65-a620-a75ee85510b8
⛔ Files ignored due to path filters (1)
website/assets/images/app-icon-burp-suite-community-60x60@2x.pngis excluded by!**/*.png
📒 Files selected for processing (7)
ee/maintained-apps/inputs/winget/burp-suite-community.jsonee/maintained-apps/inputs/winget/scripts/burp_suite_community_install.ps1ee/maintained-apps/inputs/winget/scripts/burp_suite_community_uninstall.ps1ee/maintained-apps/outputs/apps.jsonee/maintained-apps/outputs/burp-suite-community/windows.jsonfrontend/pages/SoftwarePage/components/icons/BurpSuiteCommunity.tsxfrontend/pages/SoftwarePage/components/icons/index.ts
|
@harrisonravazzolo moving back to draft. The validation passed but there are quite a few issues to address. See comments. |
Stop embedding the specific release in identifiers and detection queries for Burp Suite Community Edition. Update input unique_identifier to a generic name and adjust output SQL queries to use a wildcard match (LIKE 'Burp Suite Community Edition %') so detection is not tied to a single version while still using version_compare to determine patched status.
There was a problem hiding this comment.
Pull request overview
This PR adds Fleet-maintained app support for Burp Suite Community Edition (Windows) and wires up a corresponding software icon in the Software page UI.
Changes:
- Add a new Burp Suite Community icon component and map it in
SOFTWARE_NAME_TO_ICON_MAP. - Add Winget input metadata plus PowerShell install/uninstall scripts for Burp Suite Community (Windows).
- Commit generated maintained-app outputs (
windows.jsonmanifest andapps.jsoncatalog entry).
Reviewed changes
Copilot reviewed 7 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| frontend/pages/SoftwarePage/components/icons/index.ts | Imports and registers the Burp Suite Community icon in the name-to-icon map. |
| frontend/pages/SoftwarePage/components/icons/BurpSuiteCommunity.tsx | Adds the Burp Suite Community icon asset (embedded image SVG). |
| ee/maintained-apps/outputs/burp-suite-community/windows.json | Adds the generated Windows maintained-app manifest (queries, installer URL, script refs). |
| ee/maintained-apps/outputs/apps.json | Adds the Burp Suite Community Edition entry to the maintained apps catalog. |
| ee/maintained-apps/inputs/winget/scripts/burp_suite_community_uninstall.ps1 | Adds the uninstall script logic used by the maintained app. |
| ee/maintained-apps/inputs/winget/scripts/burp_suite_community_install.ps1 | Adds the install script logic used by the maintained app. |
| ee/maintained-apps/inputs/winget/burp-suite-community.json | Adds Winget input definition for generating the maintained app. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if (-not $selected -or -not $selected.UninstallString) { | ||
| Write-Host "Uninstall entry not found for $softwareNameLike" | ||
| Exit 0 | ||
| } |
Summary by CodeRabbit