sentry-cli 3.0.3__tar.gz → 3.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/Cargo.lock +1 -1
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/Cargo.toml +1 -1
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/PKG-INFO +11 -7
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/README.md +10 -6
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/sentry_cli.egg-info/PKG-INFO +11 -7
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/sentry_cli.egg-info/SOURCES.txt +1 -1
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/data_types/chunking/mod.rs +1 -1
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/data_types/chunking/upload/mod.rs +0 -2
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/data_types/chunking/upload/options.rs +1 -10
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/mod.rs +12 -4
- sentry_cli-3.1.0/src/api/serialization.rs +128 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/build/upload.rs +2 -13
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/dart_symbol_map/mod.rs +2 -1
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/dart_symbol_map/upload.rs +1 -6
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/releases/list.rs +2 -1
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/upload_proguard.rs +1 -7
- sentry_cli-3.0.3/src/api/data_types/chunking/upload/capability.rs +0 -30
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/LICENSE +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/MANIFEST.in +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/apple-catalog-parsing/Cargo.toml +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/apple-catalog-parsing/build.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/apple-catalog-parsing/native/swift/AssetCatalogParser/Package.swift +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/apple-catalog-parsing/native/swift/AssetCatalogParser/Sources/AssetCatalogParser/AssetCatalogReader.swift +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/apple-catalog-parsing/native/swift/AssetCatalogParser/Sources/ObjcSupport/include/safeValueForKey.h +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/apple-catalog-parsing/native/swift/AssetCatalogParser/Sources/ObjcSupport/safeValueForKey.m +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/apple-catalog-parsing/native/swift/AssetCatalogParser/Tests/AssetCatalogParserTests/AssetCatalogParserTests.swift +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/apple-catalog-parsing/native/swift/AssetCatalogParser/Tests/AssetCatalogParserTests/Resources/test.xcarchive/Info.plist +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/apple-catalog-parsing/native/swift/AssetCatalogParser/Tests/AssetCatalogParserTests/Resources/test.xcarchive/Products/Applications/DemoApp.app/Assets.car +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/apple-catalog-parsing/src/asset_catalog.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/apple-catalog-parsing/src/lib.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/build.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/pyproject.toml +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/sentry_cli.egg-info/dependency_links.txt +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/sentry_cli.egg-info/top_level.txt +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/setup.cfg +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/setup.py +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/connection_manager.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/data_types/chunking/artifact.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/data_types/chunking/build.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/data_types/chunking/compression.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/data_types/chunking/dif.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/data_types/chunking/file_state.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/data_types/chunking/hash_algorithm.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/data_types/deploy.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/data_types/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/encoding.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/envelopes_api.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/errors/api_error.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/errors/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/errors/sentry_error.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/api/pagination.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/bashsupport.sh +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/bash_hook.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/build/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/debug_files/bundle_jvm.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/debug_files/bundle_sources.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/debug_files/check.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/debug_files/find.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/debug_files/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/debug_files/print_sources.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/debug_files/upload.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/deploys/list.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/deploys/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/deploys/new.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/derive_parser.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/events/list.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/events/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/info.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/issues/list.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/issues/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/issues/mute.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/issues/resolve.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/issues/unresolve.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/login.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/logs/list.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/logs/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/monitors/list.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/monitors/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/monitors/run.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/organizations/list.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/organizations/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/projects/list.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/projects/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/react_native/gradle.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/react_native/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/react_native/xcode.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/releases/archive.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/releases/delete.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/releases/finalize.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/releases/info.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/releases/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/releases/new.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/releases/propose_version.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/releases/restore.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/releases/set_commits.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/repos/list.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/repos/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/send_envelope.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/send_event.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/send_metric/common_args.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/send_metric/increment.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/send_metric/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/send_metric/set.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/sourcemaps/inject.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/sourcemaps/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/sourcemaps/resolve.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/sourcemaps/upload.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/uninstall.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/update.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/upload_dif.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/commands/upload_dsym.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/config.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/constants.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/main.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/android.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/args.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/auth_token/auth_token_impl.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/auth_token/error.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/auth_token/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/auth_token/org_auth_token.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/auth_token/redacting.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/auth_token/test.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/auth_token/user_auth_token.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/build/apple.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/build/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/build/normalize.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/build/validation.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/chunks/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/chunks/options.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/chunks/types.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/chunks/upload.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/ci.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/cordova.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/dif.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/dif_upload/error.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/dif_upload/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/event.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/file_search.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/file_upload.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/formatting.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/fs.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/http.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/logging.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/non_empty.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/progress.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/proguard/mapping.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/proguard/mod.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/proguard/upload.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/releases.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/retry.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/snapshots/sentry_cli__utils__vcs__tests__generate_patch_default_twenty.snap +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/snapshots/sentry_cli__utils__vcs__tests__generate_patch_ignore_missing.snap +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/snapshots/sentry_cli__utils__vcs__tests__generate_patch_set_base.snap +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/snapshots/sentry_cli__utils__vcs__tests__generate_patch_set_previous_commit.snap +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/snapshots/sentry_cli__utils__vcs__tests__get_commits_from_git.snap +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/source_bundle.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/sourcemaps/inject.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/sourcemaps.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/system.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/ui.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/update.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/value_parsers.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/vcs.rs +0 -0
- {sentry_cli-3.0.3 → sentry_cli-3.1.0}/src/utils/xcode.rs +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sentry_cli
|
|
3
|
-
Version: 3.0
|
|
3
|
+
Version: 3.1.0
|
|
4
4
|
Summary: A command line utility to work with Sentry.
|
|
5
5
|
Home-page: https://github.com/getsentry/sentry-cli
|
|
6
6
|
Author: Sentry
|
|
@@ -37,21 +37,25 @@ Please refer to [Sentry CLI's documentation page](https://docs.sentry.io/cli/).
|
|
|
37
37
|
|
|
38
38
|
## Compatibility
|
|
39
39
|
|
|
40
|
-
Sentry CLI officially supports [Sentry SaaS](https://sentry.io/) and [Sentry Self-Hosted](https://github.com/getsentry/self-hosted) versions
|
|
40
|
+
Sentry CLI officially supports [Sentry SaaS](https://sentry.io/) and [Sentry Self-Hosted](https://github.com/getsentry/self-hosted) versions 24.11.1 and above.
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
<details>
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
<summary><h3>Self-Hosted Sentry</h3></summary>
|
|
45
45
|
|
|
46
|
-
For
|
|
46
|
+
For self-hosted installations, only those features which were available in Sentry CLI at the time of the release of the given self-hosted version are supported, as new features may require server-side support. Additionally, some features, like the `sentry-cli build` commands, are restricted to Sentry SaaS.
|
|
47
|
+
|
|
48
|
+
Users who are using Sentry Self-Hosted versions older than 24.11.1 are encouraged to upgrade their Sentry Self-Hosted installations before using Sentry CLI versions 3.0.0 and above. For users who cannot upgrade, please use the version indicated in the table below.
|
|
47
49
|
|
|
48
50
|
| **Sentry Self-Hosted Version** | **Newest Compatible Sentry CLI Version** |
|
|
49
51
|
| ------------------------------ | --------------------------------------------------------------------- |
|
|
50
|
-
| ≥
|
|
51
|
-
| <
|
|
52
|
+
| ≥ 24.11.1 | [latest](https://github.com/getsentry/sentry-cli/releases/latest) |
|
|
53
|
+
| < 24.11.1 | [2.58.4](https://github.com/getsentry/sentry-cli/releases/tag/2.58.4) |
|
|
52
54
|
|
|
53
55
|
Note that we can only provide support for officially-supported Sentry Self-Hosted versions. We will not backport fixes for older Sentry CLI versions, even if they should be compatible with your self-hosted version.
|
|
54
56
|
|
|
57
|
+
</details>
|
|
58
|
+
|
|
55
59
|
## Versioning
|
|
56
60
|
|
|
57
61
|
Sentry CLI follows semantic versioning, according to [this versioning policy](VERSIONING.md).
|
|
@@ -20,21 +20,25 @@ Please refer to [Sentry CLI's documentation page](https://docs.sentry.io/cli/).
|
|
|
20
20
|
|
|
21
21
|
## Compatibility
|
|
22
22
|
|
|
23
|
-
Sentry CLI officially supports [Sentry SaaS](https://sentry.io/) and [Sentry Self-Hosted](https://github.com/getsentry/self-hosted) versions
|
|
23
|
+
Sentry CLI officially supports [Sentry SaaS](https://sentry.io/) and [Sentry Self-Hosted](https://github.com/getsentry/self-hosted) versions 24.11.1 and above.
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
<details>
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
<summary><h3>Self-Hosted Sentry</h3></summary>
|
|
28
28
|
|
|
29
|
-
For
|
|
29
|
+
For self-hosted installations, only those features which were available in Sentry CLI at the time of the release of the given self-hosted version are supported, as new features may require server-side support. Additionally, some features, like the `sentry-cli build` commands, are restricted to Sentry SaaS.
|
|
30
|
+
|
|
31
|
+
Users who are using Sentry Self-Hosted versions older than 24.11.1 are encouraged to upgrade their Sentry Self-Hosted installations before using Sentry CLI versions 3.0.0 and above. For users who cannot upgrade, please use the version indicated in the table below.
|
|
30
32
|
|
|
31
33
|
| **Sentry Self-Hosted Version** | **Newest Compatible Sentry CLI Version** |
|
|
32
34
|
| ------------------------------ | --------------------------------------------------------------------- |
|
|
33
|
-
| ≥
|
|
34
|
-
| <
|
|
35
|
+
| ≥ 24.11.1 | [latest](https://github.com/getsentry/sentry-cli/releases/latest) |
|
|
36
|
+
| < 24.11.1 | [2.58.4](https://github.com/getsentry/sentry-cli/releases/tag/2.58.4) |
|
|
35
37
|
|
|
36
38
|
Note that we can only provide support for officially-supported Sentry Self-Hosted versions. We will not backport fixes for older Sentry CLI versions, even if they should be compatible with your self-hosted version.
|
|
37
39
|
|
|
40
|
+
</details>
|
|
41
|
+
|
|
38
42
|
## Versioning
|
|
39
43
|
|
|
40
44
|
Sentry CLI follows semantic versioning, according to [this versioning policy](VERSIONING.md).
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sentry_cli
|
|
3
|
-
Version: 3.0
|
|
3
|
+
Version: 3.1.0
|
|
4
4
|
Summary: A command line utility to work with Sentry.
|
|
5
5
|
Home-page: https://github.com/getsentry/sentry-cli
|
|
6
6
|
Author: Sentry
|
|
@@ -37,21 +37,25 @@ Please refer to [Sentry CLI's documentation page](https://docs.sentry.io/cli/).
|
|
|
37
37
|
|
|
38
38
|
## Compatibility
|
|
39
39
|
|
|
40
|
-
Sentry CLI officially supports [Sentry SaaS](https://sentry.io/) and [Sentry Self-Hosted](https://github.com/getsentry/self-hosted) versions
|
|
40
|
+
Sentry CLI officially supports [Sentry SaaS](https://sentry.io/) and [Sentry Self-Hosted](https://github.com/getsentry/self-hosted) versions 24.11.1 and above.
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
<details>
|
|
43
43
|
|
|
44
|
-
|
|
44
|
+
<summary><h3>Self-Hosted Sentry</h3></summary>
|
|
45
45
|
|
|
46
|
-
For
|
|
46
|
+
For self-hosted installations, only those features which were available in Sentry CLI at the time of the release of the given self-hosted version are supported, as new features may require server-side support. Additionally, some features, like the `sentry-cli build` commands, are restricted to Sentry SaaS.
|
|
47
|
+
|
|
48
|
+
Users who are using Sentry Self-Hosted versions older than 24.11.1 are encouraged to upgrade their Sentry Self-Hosted installations before using Sentry CLI versions 3.0.0 and above. For users who cannot upgrade, please use the version indicated in the table below.
|
|
47
49
|
|
|
48
50
|
| **Sentry Self-Hosted Version** | **Newest Compatible Sentry CLI Version** |
|
|
49
51
|
| ------------------------------ | --------------------------------------------------------------------- |
|
|
50
|
-
| ≥
|
|
51
|
-
| <
|
|
52
|
+
| ≥ 24.11.1 | [latest](https://github.com/getsentry/sentry-cli/releases/latest) |
|
|
53
|
+
| < 24.11.1 | [2.58.4](https://github.com/getsentry/sentry-cli/releases/tag/2.58.4) |
|
|
52
54
|
|
|
53
55
|
Note that we can only provide support for officially-supported Sentry Self-Hosted versions. We will not backport fixes for older Sentry CLI versions, even if they should be compatible with your self-hosted version.
|
|
54
56
|
|
|
57
|
+
</details>
|
|
58
|
+
|
|
55
59
|
## Versioning
|
|
56
60
|
|
|
57
61
|
Sentry CLI follows semantic versioning, according to [this versioning policy](VERSIONING.md).
|
|
@@ -31,6 +31,7 @@ src/api/encoding.rs
|
|
|
31
31
|
src/api/envelopes_api.rs
|
|
32
32
|
src/api/mod.rs
|
|
33
33
|
src/api/pagination.rs
|
|
34
|
+
src/api/serialization.rs
|
|
34
35
|
src/api/data_types/deploy.rs
|
|
35
36
|
src/api/data_types/mod.rs
|
|
36
37
|
src/api/data_types/chunking/artifact.rs
|
|
@@ -40,7 +41,6 @@ src/api/data_types/chunking/dif.rs
|
|
|
40
41
|
src/api/data_types/chunking/file_state.rs
|
|
41
42
|
src/api/data_types/chunking/hash_algorithm.rs
|
|
42
43
|
src/api/data_types/chunking/mod.rs
|
|
43
|
-
src/api/data_types/chunking/upload/capability.rs
|
|
44
44
|
src/api/data_types/chunking/upload/mod.rs
|
|
45
45
|
src/api/data_types/chunking/upload/options.rs
|
|
46
46
|
src/api/errors/api_error.rs
|
|
@@ -15,4 +15,4 @@ pub use self::compression::ChunkCompression;
|
|
|
15
15
|
pub use self::dif::{AssembleDifsRequest, AssembleDifsResponse, ChunkedDifRequest};
|
|
16
16
|
pub use self::file_state::ChunkedFileState;
|
|
17
17
|
pub use self::hash_algorithm::ChunkHashAlgorithm;
|
|
18
|
-
pub use self::upload::
|
|
18
|
+
pub use self::upload::ChunkServerOptions;
|
|
@@ -2,7 +2,7 @@ use std::num::NonZeroUsize;
|
|
|
2
2
|
|
|
3
3
|
use serde::Deserialize;
|
|
4
4
|
|
|
5
|
-
use super::{ChunkCompression, ChunkHashAlgorithm
|
|
5
|
+
use super::{ChunkCompression, ChunkHashAlgorithm};
|
|
6
6
|
|
|
7
7
|
/// Chunk upload options which are set by the Sentry server.
|
|
8
8
|
#[derive(Debug, Deserialize)]
|
|
@@ -23,13 +23,4 @@ pub struct ChunkServerOptions {
|
|
|
23
23
|
pub concurrency: u8,
|
|
24
24
|
#[serde(default)]
|
|
25
25
|
pub compression: Vec<ChunkCompression>,
|
|
26
|
-
#[serde(default)]
|
|
27
|
-
pub accept: Vec<ChunkUploadCapability>,
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
impl ChunkServerOptions {
|
|
31
|
-
/// Returns whether the given capability is accepted by the chunk upload endpoint.
|
|
32
|
-
pub fn supports(&self, capability: ChunkUploadCapability) -> bool {
|
|
33
|
-
self.accept.contains(&capability)
|
|
34
|
-
}
|
|
35
26
|
}
|
|
@@ -10,6 +10,7 @@ mod data_types;
|
|
|
10
10
|
mod encoding;
|
|
11
11
|
mod errors;
|
|
12
12
|
mod pagination;
|
|
13
|
+
mod serialization;
|
|
13
14
|
|
|
14
15
|
use std::borrow::Cow;
|
|
15
16
|
use std::cell::RefCell;
|
|
@@ -539,10 +540,16 @@ impl AuthenticatedApi<'_> {
|
|
|
539
540
|
|
|
540
541
|
/// Returns a list of releases for a given project. This is currently a
|
|
541
542
|
/// capped list by what the server deems an acceptable default limit.
|
|
542
|
-
pub fn list_releases(&self, org: &str) -> ApiResult<Vec<ReleaseInfo>> {
|
|
543
|
-
let
|
|
544
|
-
|
|
545
|
-
.
|
|
543
|
+
pub fn list_releases(&self, org: &str, project: Option<&str>) -> ApiResult<Vec<ReleaseInfo>> {
|
|
544
|
+
if let Some(project) = project {
|
|
545
|
+
let path = format!("/projects/{}/{}/releases/", PathArg(org), PathArg(project));
|
|
546
|
+
self.get(&path)?
|
|
547
|
+
.convert_rnf::<Vec<ReleaseInfo>>(ApiErrorKind::ProjectNotFound)
|
|
548
|
+
} else {
|
|
549
|
+
let path = format!("/organizations/{}/releases/", PathArg(org));
|
|
550
|
+
self.get(&path)?
|
|
551
|
+
.convert_rnf::<Vec<ReleaseInfo>>(ApiErrorKind::OrganizationNotFound)
|
|
552
|
+
}
|
|
546
553
|
}
|
|
547
554
|
|
|
548
555
|
/// Looks up a release commits and returns it. If it does not exist `None`
|
|
@@ -1530,6 +1537,7 @@ pub struct AuthInfo {
|
|
|
1530
1537
|
#[derive(Debug, Serialize, Default)]
|
|
1531
1538
|
pub struct NewRelease {
|
|
1532
1539
|
pub version: String,
|
|
1540
|
+
#[serde(serialize_with = "serialization::serialize_id_slug_list")]
|
|
1533
1541
|
pub projects: Vec<String>,
|
|
1534
1542
|
#[serde(skip_serializing_if = "Option::is_none")]
|
|
1535
1543
|
pub url: Option<String>,
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
//! This module contains some custom serialization logic for the API.
|
|
2
|
+
use std::sync::LazyLock;
|
|
3
|
+
|
|
4
|
+
use regex::Regex;
|
|
5
|
+
use serde::ser::SerializeSeq as _;
|
|
6
|
+
use serde::{Serialize, Serializer};
|
|
7
|
+
|
|
8
|
+
/// A container for either a numeric ID or an alphanumeric slug.
|
|
9
|
+
///
|
|
10
|
+
/// IDs are serialized as integers, while slugs are serialized as strings.
|
|
11
|
+
#[derive(Serialize)]
|
|
12
|
+
#[serde(untagged)]
|
|
13
|
+
enum IdSlug<'s> {
|
|
14
|
+
Id(i64),
|
|
15
|
+
Slug(&'s str),
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
/// Serializes a sequence of strings, which may contain either numeric IDs or alphanumeric slugs.
|
|
19
|
+
///
|
|
20
|
+
/// We check each element in the sequence. If the element only contains digits and can be parsed as a 64-bit signed integer,
|
|
21
|
+
/// we consider the value to be an ID. Otherwise, we consider the value to be a slug.
|
|
22
|
+
///
|
|
23
|
+
/// IDs are serialized as integers, while slugs are serialized as strings.
|
|
24
|
+
pub fn serialize_id_slug_list<I, S>(list: I, serializer: S) -> Result<S::Ok, S::Error>
|
|
25
|
+
where
|
|
26
|
+
I: IntoIterator,
|
|
27
|
+
I::Item: AsRef<str>,
|
|
28
|
+
S: Serializer,
|
|
29
|
+
{
|
|
30
|
+
let mut seq = serializer.serialize_seq(None)?;
|
|
31
|
+
for item in list {
|
|
32
|
+
let item = item.as_ref();
|
|
33
|
+
let id_slug = IdSlug::from(&item);
|
|
34
|
+
seq.serialize_element(&id_slug)?;
|
|
35
|
+
}
|
|
36
|
+
seq.end()
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
impl<'a, S> From<&'a S> for IdSlug<'a>
|
|
40
|
+
where
|
|
41
|
+
S: AsRef<str>,
|
|
42
|
+
{
|
|
43
|
+
/// Convert from a string reference to an IdSlug.
|
|
44
|
+
///
|
|
45
|
+
/// If the string contains only digits and can be parsed as a 64-bit signed integer,
|
|
46
|
+
/// we consider the value to be an ID. Otherwise, we consider the value to be a slug.
|
|
47
|
+
fn from(value: &'a S) -> Self {
|
|
48
|
+
/// Project ID regex
|
|
49
|
+
///
|
|
50
|
+
/// Project IDs always contain only digits.
|
|
51
|
+
static PROJECT_ID_REGEX: LazyLock<Regex> =
|
|
52
|
+
LazyLock::new(|| Regex::new(r"^\d+$").expect("regex is valid"));
|
|
53
|
+
|
|
54
|
+
let value = value.as_ref();
|
|
55
|
+
|
|
56
|
+
PROJECT_ID_REGEX
|
|
57
|
+
.is_match(value)
|
|
58
|
+
.then(|| value.parse().ok().map(IdSlug::Id))
|
|
59
|
+
.flatten()
|
|
60
|
+
.unwrap_or(IdSlug::Slug(value))
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
#[cfg(test)]
|
|
65
|
+
mod tests {
|
|
66
|
+
use super::*;
|
|
67
|
+
|
|
68
|
+
/// A test struct which serializes with serialize_id_slug_list
|
|
69
|
+
#[derive(Serialize)]
|
|
70
|
+
struct IdSlugListSerializerTest<const N: usize> {
|
|
71
|
+
#[serde(serialize_with = "serialize_id_slug_list")]
|
|
72
|
+
value: [&'static str; N],
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
#[test]
|
|
76
|
+
fn test_serialize_id_slug_list_empty() {
|
|
77
|
+
let to_serialize = IdSlugListSerializerTest { value: [] };
|
|
78
|
+
|
|
79
|
+
let serialized = serde_json::to_string(&to_serialize).unwrap();
|
|
80
|
+
let expected = serde_json::json!({ "value": [] }).to_string();
|
|
81
|
+
|
|
82
|
+
assert_eq!(serialized, expected)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
#[test]
|
|
86
|
+
fn test_serialize_id_slug_list_single_id() {
|
|
87
|
+
let to_serialize = IdSlugListSerializerTest { value: ["123"] };
|
|
88
|
+
|
|
89
|
+
let serialized = serde_json::to_string(&to_serialize).unwrap();
|
|
90
|
+
let expected = serde_json::json!({ "value": [123] }).to_string();
|
|
91
|
+
|
|
92
|
+
assert_eq!(serialized, expected)
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
#[test]
|
|
96
|
+
fn test_serialize_id_slug_list_single_slug() {
|
|
97
|
+
let to_serialize = IdSlugListSerializerTest { value: ["abc"] };
|
|
98
|
+
|
|
99
|
+
let serialized = serde_json::to_string(&to_serialize).unwrap();
|
|
100
|
+
let expected = serde_json::json!({ "value": ["abc"] }).to_string();
|
|
101
|
+
|
|
102
|
+
assert_eq!(serialized, expected)
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
#[test]
|
|
106
|
+
fn test_serialize_id_slug_list_multiple_ids_and_slugs() {
|
|
107
|
+
let to_serialize = IdSlugListSerializerTest {
|
|
108
|
+
value: ["123", "abc", "456", "whatever"],
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
let serialized = serde_json::to_string(&to_serialize).unwrap();
|
|
112
|
+
let expected = serde_json::json!({ "value": [123, "abc", 456, "whatever"] }).to_string();
|
|
113
|
+
|
|
114
|
+
assert_eq!(serialized, expected)
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/// Slugs of "-0" are possible. This test ensures that we serialize "-0" as a slug,
|
|
118
|
+
/// rather than as an ID 0.
|
|
119
|
+
#[test]
|
|
120
|
+
fn test_serialize_id_slug_minus_zero_edge_case() {
|
|
121
|
+
let to_serialize = IdSlugListSerializerTest { value: ["-0"] };
|
|
122
|
+
|
|
123
|
+
let serialized = serde_json::to_string(&to_serialize).unwrap();
|
|
124
|
+
let expected = serde_json::json!({ "value": ["-0"] }).to_string();
|
|
125
|
+
|
|
126
|
+
assert_eq!(serialized, expected)
|
|
127
|
+
}
|
|
128
|
+
}
|
|
@@ -11,9 +11,7 @@ use symbolic::common::ByteView;
|
|
|
11
11
|
use zip::write::SimpleFileOptions;
|
|
12
12
|
use zip::{DateTime, ZipWriter};
|
|
13
13
|
|
|
14
|
-
use crate::api::{
|
|
15
|
-
Api, AuthenticatedApi, ChunkUploadCapability, ChunkedBuildRequest, ChunkedFileState, VcsInfo,
|
|
16
|
-
};
|
|
14
|
+
use crate::api::{Api, AuthenticatedApi, ChunkedBuildRequest, ChunkedFileState, VcsInfo};
|
|
17
15
|
use crate::config::Config;
|
|
18
16
|
use crate::utils::args::ArgExt as _;
|
|
19
17
|
#[cfg(all(target_os = "macos", target_arch = "aarch64"))]
|
|
@@ -42,6 +40,7 @@ pub fn make_command(command: Command) -> Command {
|
|
|
42
40
|
"The path to the build to upload. Supported files include Apk, and Aab.";
|
|
43
41
|
command
|
|
44
42
|
.about("Upload builds to a project.")
|
|
43
|
+
.long_about("Upload builds to a project.\n\nThis feature only works with Sentry SaaS.")
|
|
45
44
|
.org_arg()
|
|
46
45
|
.project_arg(false)
|
|
47
46
|
.arg(
|
|
@@ -599,9 +598,6 @@ fn upload_file(
|
|
|
599
598
|
release_notes: Option<&str>,
|
|
600
599
|
vcs_info: &VcsInfo<'_>,
|
|
601
600
|
) -> Result<String> {
|
|
602
|
-
const SELF_HOSTED_ERROR_HINT: &str = "If you are using a self-hosted Sentry server, \
|
|
603
|
-
update to the latest version of Sentry to use the build upload command.";
|
|
604
|
-
|
|
605
601
|
debug!(
|
|
606
602
|
"Uploading file to organization: {org}, project: {project}, build_configuration: {}, vcs_info: {vcs_info:?}",
|
|
607
603
|
build_configuration.unwrap_or("unknown"),
|
|
@@ -609,13 +605,6 @@ fn upload_file(
|
|
|
609
605
|
|
|
610
606
|
let chunk_upload_options = api.get_chunk_upload_options(org)?;
|
|
611
607
|
|
|
612
|
-
if !chunk_upload_options.supports(ChunkUploadCapability::PreprodArtifacts) {
|
|
613
|
-
bail!(
|
|
614
|
-
"The Sentry server lacks support for receiving files uploaded \
|
|
615
|
-
with this command. {SELF_HOSTED_ERROR_HINT}"
|
|
616
|
-
);
|
|
617
|
-
}
|
|
618
|
-
|
|
619
608
|
let progress_style =
|
|
620
609
|
ProgressStyle::default_spinner().template("{spinner} Preparing for upload...");
|
|
621
610
|
let pb = ProgressBar::new_spinner();
|
|
@@ -7,7 +7,8 @@ const GROUP_ABOUT: &str = "Manage Dart/Flutter symbol maps for Sentry.";
|
|
|
7
7
|
const UPLOAD_ABOUT: &str =
|
|
8
8
|
"Upload a Dart/Flutter symbol map (dartsymbolmap) for deobfuscating Dart exception types.";
|
|
9
9
|
const UPLOAD_LONG_ABOUT: &str =
|
|
10
|
-
"Upload a Dart/Flutter symbol map (dartsymbolmap) for deobfuscating Dart exception types.{n}{n}Examples:{n} sentry-cli dart-symbol-map upload --org my-org --project my-proj path/to/dartsymbolmap.json path/to/debug/file{n}{n}The mapping must be a JSON array of strings with an even number of entries (pairs).{n}The debug file must contain exactly one Debug ID.
|
|
10
|
+
"Upload a Dart/Flutter symbol map (dartsymbolmap) for deobfuscating Dart exception types.{n}{n}Examples:{n} sentry-cli dart-symbol-map upload --org my-org --project my-proj path/to/dartsymbolmap.json path/to/debug/file{n}{n}The mapping must be a JSON array of strings with an even number of entries (pairs).{n}The debug file must contain exactly one Debug ID. {n}{n}\
|
|
11
|
+
This command is supported on Sentry SaaS and self-hosted versions ≥25.8.0.";
|
|
11
12
|
|
|
12
13
|
#[derive(Args)]
|
|
13
14
|
pub(super) struct DartSymbolMapArgs {
|
|
@@ -6,7 +6,7 @@ use std::path::Path;
|
|
|
6
6
|
use anyhow::{bail, Context as _, Result};
|
|
7
7
|
use clap::Args;
|
|
8
8
|
|
|
9
|
-
use crate::api::
|
|
9
|
+
use crate::api::Api;
|
|
10
10
|
use crate::config::Config;
|
|
11
11
|
use crate::constants::{DEFAULT_MAX_DIF_SIZE, DEFAULT_MAX_WAIT};
|
|
12
12
|
use crate::utils::chunks::{upload_chunked_objects, Assemblable, ChunkOptions, Chunked};
|
|
@@ -134,11 +134,6 @@ pub(super) fn execute(args: DartSymbolMapUploadArgs) -> Result<()> {
|
|
|
134
134
|
.authenticated()?
|
|
135
135
|
.get_chunk_upload_options(org)?;
|
|
136
136
|
|
|
137
|
-
if !chunk_upload_options.supports(ChunkUploadCapability::DartSymbolMap) {
|
|
138
|
-
bail!(
|
|
139
|
-
"Server does not support uploading Dart symbol maps via chunked upload. Please update your Sentry server."
|
|
140
|
-
);
|
|
141
|
-
}
|
|
142
137
|
|
|
143
138
|
// Early file size check against server or default limits (same as debug files)
|
|
144
139
|
let effective_max_file_size = if chunk_upload_options.max_file_size > 0 {
|
|
@@ -43,9 +43,10 @@ pub fn make_command(command: Command) -> Command {
|
|
|
43
43
|
pub fn execute(matches: &ArgMatches) -> Result<()> {
|
|
44
44
|
let config = Config::current();
|
|
45
45
|
let api = Api::current();
|
|
46
|
+
let project = config.get_project(matches).ok();
|
|
46
47
|
let releases = api
|
|
47
48
|
.authenticated()?
|
|
48
|
-
.list_releases(&config.get_org(matches)
|
|
49
|
+
.list_releases(&config.get_org(matches)?, project.as_deref())?;
|
|
49
50
|
|
|
50
51
|
if matches.get_flag("raw") {
|
|
51
52
|
let versions = releases
|
|
@@ -8,7 +8,6 @@ use symbolic::common::ByteView;
|
|
|
8
8
|
use uuid::Uuid;
|
|
9
9
|
|
|
10
10
|
use crate::api::Api;
|
|
11
|
-
use crate::api::ChunkUploadCapability;
|
|
12
11
|
use crate::config::Config;
|
|
13
12
|
use crate::utils::android::dump_proguard_uuids_as_properties;
|
|
14
13
|
use crate::utils::args::ArgExt as _;
|
|
@@ -148,10 +147,5 @@ pub fn execute(matches: &ArgMatches) -> Result<()> {
|
|
|
148
147
|
let (org, project) = config.get_org_and_project(matches)?;
|
|
149
148
|
|
|
150
149
|
let chunk_upload_options = authenticated_api.get_chunk_upload_options(&org)?;
|
|
151
|
-
|
|
152
|
-
if chunk_upload_options.supports(ChunkUploadCapability::Proguard) {
|
|
153
|
-
proguard::chunk_upload(&mappings, chunk_upload_options, &org, &project)
|
|
154
|
-
} else {
|
|
155
|
-
Err(anyhow::anyhow!("Server does not support uploading ProGuard mappings via chunked upload. Please update your Sentry server."))
|
|
156
|
-
}
|
|
150
|
+
proguard::chunk_upload(&mappings, chunk_upload_options, &org, &project)
|
|
157
151
|
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
use serde::{Deserialize, Deserializer};
|
|
2
|
-
|
|
3
|
-
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
|
|
4
|
-
pub enum ChunkUploadCapability {
|
|
5
|
-
/// Upload of Dart symbol maps
|
|
6
|
-
DartSymbolMap,
|
|
7
|
-
|
|
8
|
-
/// Upload of preprod artifacts
|
|
9
|
-
PreprodArtifacts,
|
|
10
|
-
|
|
11
|
-
/// Upload of ProGuard mappings
|
|
12
|
-
Proguard,
|
|
13
|
-
|
|
14
|
-
/// Any other unsupported capability (ignored)
|
|
15
|
-
Unknown,
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
impl<'de> Deserialize<'de> for ChunkUploadCapability {
|
|
19
|
-
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
|
|
20
|
-
where
|
|
21
|
-
D: Deserializer<'de>,
|
|
22
|
-
{
|
|
23
|
-
Ok(match String::deserialize(deserializer)?.as_str() {
|
|
24
|
-
"dartsymbolmap" => ChunkUploadCapability::DartSymbolMap,
|
|
25
|
-
"preprod_artifacts" => ChunkUploadCapability::PreprodArtifacts,
|
|
26
|
-
"proguard" => ChunkUploadCapability::Proguard,
|
|
27
|
-
_ => ChunkUploadCapability::Unknown,
|
|
28
|
-
})
|
|
29
|
-
}
|
|
30
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|