Repository navigation
Conversation
Replace the bundled legacy sentry-cli (v3) with the new Sentry CLI (getsentry/cli, the `sentry` binary). Its standalone binaries are about 100 MB per platform, so bundling them in the gem is no longer practical. The plugin now pins a CLI version plus SHA-256 checksums in lib/fastlane/plugin/sentry/sentry-cli.json, downloads the matching release asset on first use, verifies it and caches it locally. A custom binary can still be used via sentry_cli_path / SENTRY_CLI_PATH; the legacy sentry-cli is rejected with a pointer to the migration guide. Adapt every action to the new command surface (release create / finalize / deploy / set-commits, proguard upload, one sourcemap upload per directory with comma-joined ext and ignore values, build upload without --dsym). Options the new CLI dropped stay declared as deprecated no-ops so existing Fastfiles keep running with a warning. Also regenerate the checksum manifest from the dependency updater via a post-update script, drop the bundled binaries and the 32-bit hosts, add Linux arm64, update the mock API server and fixtures used by the integration tests, add a migration guide and add the Sentry CLI FSL third-party notice to LICENSE. BREAKING CHANGE: the plugin requires the new Sentry CLI, downloads it on first use and no longer supports 32-bit hosts or the legacy sentry-cli. Fixes #536 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
CodeQL flagged the unanchored version pattern as polynomial backtracking on uncontrolled input. Match an anchored pattern against whitespace-split tokens of the --version output instead, which also keeps working if the CLI ever prefixes its version string. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replace the bundled legacy
sentry-cli(v3) with the new Sentry CLI (sentry). All actions keep their names and, apart from a few options the new CLI dropped, their parameters. This is a breaking change meant to ship as plugin 3.0.0; see MIGRATION.md for the user-facing guide.CLI download instead of bundling
The new CLI's standalone binaries are 100–135 MB per platform, so bundling all five would turn the ~40 MB gem into a ~160 MB one. The plugin now pins the CLI version and the SHA-256 of every release asset in
lib/fastlane/plugin/sentry/sentry-cli.json, downloads the gzip asset for the current host from GitHub Releases on first use, verifies it, and caches it in~/.cache/sentry-fastlane-plugin(SENTRY_FASTLANE_PLUGIN_CACHE_DIRoverrides). The gem is now 26 KB.sentry_cli_path/SENTRY_CLI_PATHstill work for a preinstalled binary; a legacysentry-cliis rejected with a pointer to the migration guide. Supported hosts are macOS x64/arm64, Linux x64/arm64 (glibc) and Windows x64; 32-bit hosts are dropped. The manifest is regenerated byscript/update-sentry-cli.sh, which the dependency updater now runs as a post-update script instead of committing binaries.Command mapping and dropped options
sentry_upload_sourcemapnow takes directories, joinsext/ignorewith commas (the CLI accepts each flag once) and the CLI only scans.js/.cjs/.mjsby default, so react-native users needext: ['jsbundle', 'bundle']. Options the new CLI dropped (symbol_maps,ignore_missing,write_properties, and the sourcemapurl_suffix,note,validate,decompress,wait,wait_for,no_sourcemap_reference,debug_id_reference,bundle,bundle_sourcemap,strict) stay declared asdeprecated:config items that warn and are ignored, so existing Fastfiles keep running. dSYMs passed tosentry_upload_buildare still uploaded viadebug-files uploadfor symbolication, but can no longer be attached to the IPA build upload becausebuild uploadhas no--dsymflag in the new CLI.Tests and infrastructure
Unit specs cover the installer (asset selection, cache paths, download, checksum verification, manifest/properties consistency) and the new commands. The integration tests run all six lanes against the mock API server with the real CLI; the mock now URL-decodes request paths and the sourcemap lane uses a small JS + sourcemap fixture directory. CI no longer installs the legacy CLI, the integration workflow caches the downloaded CLI, and
LICENSEgains the FSL-1.1-Apache-2.0 third-party notice for the Sentry CLI.Fixes #536
🤖 Generated with Claude Code