sentry-cli 3.0.2__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.
Files changed (166) hide show
  1. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/Cargo.lock +10 -16
  2. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/Cargo.toml +6 -6
  3. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/PKG-INFO +11 -7
  4. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/README.md +10 -6
  5. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/sentry_cli.egg-info/PKG-INFO +11 -7
  6. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/sentry_cli.egg-info/SOURCES.txt +1 -1
  7. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/data_types/chunking/mod.rs +1 -1
  8. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/data_types/chunking/upload/mod.rs +0 -2
  9. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/data_types/chunking/upload/options.rs +1 -10
  10. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/mod.rs +12 -4
  11. sentry_cli-3.1.0/src/api/serialization.rs +128 -0
  12. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/build/upload.rs +2 -13
  13. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/dart_symbol_map/mod.rs +2 -1
  14. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/dart_symbol_map/upload.rs +1 -6
  15. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/releases/list.rs +2 -1
  16. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/upload_proguard.rs +1 -7
  17. sentry_cli-3.0.2/src/api/data_types/chunking/upload/capability.rs +0 -30
  18. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/LICENSE +0 -0
  19. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/MANIFEST.in +0 -0
  20. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/apple-catalog-parsing/Cargo.toml +0 -0
  21. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/apple-catalog-parsing/build.rs +0 -0
  22. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/apple-catalog-parsing/native/swift/AssetCatalogParser/Package.swift +0 -0
  23. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/apple-catalog-parsing/native/swift/AssetCatalogParser/Sources/AssetCatalogParser/AssetCatalogReader.swift +0 -0
  24. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/apple-catalog-parsing/native/swift/AssetCatalogParser/Sources/ObjcSupport/include/safeValueForKey.h +0 -0
  25. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/apple-catalog-parsing/native/swift/AssetCatalogParser/Sources/ObjcSupport/safeValueForKey.m +0 -0
  26. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/apple-catalog-parsing/native/swift/AssetCatalogParser/Tests/AssetCatalogParserTests/AssetCatalogParserTests.swift +0 -0
  27. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/apple-catalog-parsing/native/swift/AssetCatalogParser/Tests/AssetCatalogParserTests/Resources/test.xcarchive/Info.plist +0 -0
  28. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/apple-catalog-parsing/native/swift/AssetCatalogParser/Tests/AssetCatalogParserTests/Resources/test.xcarchive/Products/Applications/DemoApp.app/Assets.car +0 -0
  29. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/apple-catalog-parsing/src/asset_catalog.rs +0 -0
  30. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/apple-catalog-parsing/src/lib.rs +0 -0
  31. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/build.rs +0 -0
  32. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/pyproject.toml +0 -0
  33. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/sentry_cli.egg-info/dependency_links.txt +0 -0
  34. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/sentry_cli.egg-info/top_level.txt +0 -0
  35. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/setup.cfg +0 -0
  36. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/setup.py +0 -0
  37. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/connection_manager.rs +0 -0
  38. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/data_types/chunking/artifact.rs +0 -0
  39. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/data_types/chunking/build.rs +0 -0
  40. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/data_types/chunking/compression.rs +0 -0
  41. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/data_types/chunking/dif.rs +0 -0
  42. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/data_types/chunking/file_state.rs +0 -0
  43. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/data_types/chunking/hash_algorithm.rs +0 -0
  44. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/data_types/deploy.rs +0 -0
  45. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/data_types/mod.rs +0 -0
  46. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/encoding.rs +0 -0
  47. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/envelopes_api.rs +0 -0
  48. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/errors/api_error.rs +0 -0
  49. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/errors/mod.rs +0 -0
  50. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/errors/sentry_error.rs +0 -0
  51. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/api/pagination.rs +0 -0
  52. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/bashsupport.sh +0 -0
  53. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/bash_hook.rs +0 -0
  54. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/build/mod.rs +0 -0
  55. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/debug_files/bundle_jvm.rs +0 -0
  56. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/debug_files/bundle_sources.rs +0 -0
  57. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/debug_files/check.rs +0 -0
  58. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/debug_files/find.rs +0 -0
  59. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/debug_files/mod.rs +0 -0
  60. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/debug_files/print_sources.rs +0 -0
  61. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/debug_files/upload.rs +0 -0
  62. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/deploys/list.rs +0 -0
  63. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/deploys/mod.rs +0 -0
  64. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/deploys/new.rs +0 -0
  65. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/derive_parser.rs +0 -0
  66. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/events/list.rs +0 -0
  67. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/events/mod.rs +0 -0
  68. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/info.rs +0 -0
  69. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/issues/list.rs +0 -0
  70. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/issues/mod.rs +0 -0
  71. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/issues/mute.rs +0 -0
  72. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/issues/resolve.rs +0 -0
  73. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/issues/unresolve.rs +0 -0
  74. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/login.rs +0 -0
  75. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/logs/list.rs +0 -0
  76. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/logs/mod.rs +0 -0
  77. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/mod.rs +0 -0
  78. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/monitors/list.rs +0 -0
  79. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/monitors/mod.rs +0 -0
  80. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/monitors/run.rs +0 -0
  81. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/organizations/list.rs +0 -0
  82. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/organizations/mod.rs +0 -0
  83. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/projects/list.rs +0 -0
  84. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/projects/mod.rs +0 -0
  85. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/react_native/gradle.rs +0 -0
  86. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/react_native/mod.rs +0 -0
  87. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/react_native/xcode.rs +0 -0
  88. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/releases/archive.rs +0 -0
  89. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/releases/delete.rs +0 -0
  90. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/releases/finalize.rs +0 -0
  91. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/releases/info.rs +0 -0
  92. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/releases/mod.rs +0 -0
  93. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/releases/new.rs +0 -0
  94. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/releases/propose_version.rs +0 -0
  95. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/releases/restore.rs +0 -0
  96. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/releases/set_commits.rs +0 -0
  97. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/repos/list.rs +0 -0
  98. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/repos/mod.rs +0 -0
  99. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/send_envelope.rs +0 -0
  100. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/send_event.rs +0 -0
  101. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/send_metric/common_args.rs +0 -0
  102. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/send_metric/increment.rs +0 -0
  103. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/send_metric/mod.rs +0 -0
  104. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/send_metric/set.rs +0 -0
  105. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/sourcemaps/inject.rs +0 -0
  106. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/sourcemaps/mod.rs +0 -0
  107. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/sourcemaps/resolve.rs +0 -0
  108. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/sourcemaps/upload.rs +0 -0
  109. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/uninstall.rs +0 -0
  110. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/update.rs +0 -0
  111. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/upload_dif.rs +0 -0
  112. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/commands/upload_dsym.rs +0 -0
  113. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/config.rs +0 -0
  114. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/constants.rs +0 -0
  115. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/main.rs +0 -0
  116. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/android.rs +0 -0
  117. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/args.rs +0 -0
  118. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/auth_token/auth_token_impl.rs +0 -0
  119. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/auth_token/error.rs +0 -0
  120. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/auth_token/mod.rs +0 -0
  121. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/auth_token/org_auth_token.rs +0 -0
  122. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/auth_token/redacting.rs +0 -0
  123. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/auth_token/test.rs +0 -0
  124. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/auth_token/user_auth_token.rs +0 -0
  125. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/build/apple.rs +0 -0
  126. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/build/mod.rs +0 -0
  127. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/build/normalize.rs +0 -0
  128. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/build/validation.rs +0 -0
  129. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/chunks/mod.rs +0 -0
  130. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/chunks/options.rs +0 -0
  131. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/chunks/types.rs +0 -0
  132. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/chunks/upload.rs +0 -0
  133. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/ci.rs +0 -0
  134. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/cordova.rs +0 -0
  135. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/dif.rs +0 -0
  136. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/dif_upload/error.rs +0 -0
  137. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/dif_upload/mod.rs +0 -0
  138. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/event.rs +0 -0
  139. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/file_search.rs +0 -0
  140. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/file_upload.rs +0 -0
  141. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/formatting.rs +0 -0
  142. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/fs.rs +0 -0
  143. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/http.rs +0 -0
  144. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/logging.rs +0 -0
  145. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/mod.rs +0 -0
  146. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/non_empty.rs +0 -0
  147. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/progress.rs +0 -0
  148. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/proguard/mapping.rs +0 -0
  149. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/proguard/mod.rs +0 -0
  150. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/proguard/upload.rs +0 -0
  151. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/releases.rs +0 -0
  152. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/retry.rs +0 -0
  153. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/snapshots/sentry_cli__utils__vcs__tests__generate_patch_default_twenty.snap +0 -0
  154. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/snapshots/sentry_cli__utils__vcs__tests__generate_patch_ignore_missing.snap +0 -0
  155. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/snapshots/sentry_cli__utils__vcs__tests__generate_patch_set_base.snap +0 -0
  156. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/snapshots/sentry_cli__utils__vcs__tests__generate_patch_set_previous_commit.snap +0 -0
  157. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/snapshots/sentry_cli__utils__vcs__tests__get_commits_from_git.snap +0 -0
  158. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/source_bundle.rs +0 -0
  159. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/sourcemaps/inject.rs +0 -0
  160. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/sourcemaps.rs +0 -0
  161. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/system.rs +0 -0
  162. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/ui.rs +0 -0
  163. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/update.rs +0 -0
  164. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/value_parsers.rs +0 -0
  165. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/vcs.rs +0 -0
  166. {sentry_cli-3.0.2 → sentry_cli-3.1.0}/src/utils/xcode.rs +0 -0
@@ -893,9 +893,9 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
893
893
 
894
894
  [[package]]
895
895
  name = "foldhash"
896
- version = "0.1.5"
896
+ version = "0.2.0"
897
897
  source = "registry+https://github.com/rust-lang/crates.io-index"
898
- checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2"
898
+ checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
899
899
 
900
900
  [[package]]
901
901
  name = "form_urlencoded"
@@ -1147,21 +1147,15 @@ dependencies = [
1147
1147
 
1148
1148
  [[package]]
1149
1149
  name = "hashbrown"
1150
- version = "0.15.5"
1150
+ version = "0.16.0"
1151
1151
  source = "registry+https://github.com/rust-lang/crates.io-index"
1152
- checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1"
1152
+ checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
1153
1153
  dependencies = [
1154
1154
  "allocator-api2",
1155
1155
  "equivalent",
1156
1156
  "foldhash",
1157
1157
  ]
1158
1158
 
1159
- [[package]]
1160
- name = "hashbrown"
1161
- version = "0.16.0"
1162
- source = "registry+https://github.com/rust-lang/crates.io-index"
1163
- checksum = "5419bdc4f6a9207fbeba6d11b604d481addf78ecd10c11ad51e76c2f6482748d"
1164
-
1165
1159
  [[package]]
1166
1160
  name = "heck"
1167
1161
  version = "0.5.0"
@@ -1692,11 +1686,11 @@ checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432"
1692
1686
 
1693
1687
  [[package]]
1694
1688
  name = "lru"
1695
- version = "0.16.1"
1689
+ version = "0.16.3"
1696
1690
  source = "registry+https://github.com/rust-lang/crates.io-index"
1697
- checksum = "bfe949189f46fabb938b3a9a0be30fdd93fd8a09260da863399a8cf3db756ec8"
1691
+ checksum = "a1dc47f592c06f33f8e3aea9591776ec7c9f9e4124778ff8a3c3b87159f7e593"
1698
1692
  dependencies = [
1699
- "hashbrown 0.15.5",
1693
+ "hashbrown 0.16.0",
1700
1694
  ]
1701
1695
 
1702
1696
  [[package]]
@@ -1908,9 +1902,9 @@ checksum = "d05e27ee213611ffe7d6348b942e8f942b37114c00cc03cec254295a4a17852e"
1908
1902
 
1909
1903
  [[package]]
1910
1904
  name = "openssl-src"
1911
- version = "300.5.2+3.5.2"
1905
+ version = "300.5.4+3.5.4"
1912
1906
  source = "registry+https://github.com/rust-lang/crates.io-index"
1913
- checksum = "d270b79e2926f5150189d475bc7e9d2c69f9c4697b185fa917d5a32b792d21b4"
1907
+ checksum = "a507b3792995dae9b0df8a1c1e3771e8418b7c2d9f0baeba32e6fe8b06c7cb72"
1914
1908
  dependencies = [
1915
1909
  "cc",
1916
1910
  ]
@@ -2674,7 +2668,7 @@ dependencies = [
2674
2668
 
2675
2669
  [[package]]
2676
2670
  name = "sentry-cli"
2677
- version = "3.0.2"
2671
+ version = "3.1.0"
2678
2672
  dependencies = [
2679
2673
  "anyhow",
2680
2674
  "anylog",
@@ -1,7 +1,7 @@
1
1
  [package]
2
2
  build = "build.rs"
3
3
  name = "sentry-cli"
4
- version = "3.0.2"
4
+ version = "3.1.0"
5
5
  edition = "2021"
6
6
  rust-version = "1.91"
7
7
 
@@ -24,7 +24,7 @@ clap = { version = "4.1.6", default-features = false, features = [
24
24
  ] }
25
25
  clap_complete = "4.4.3"
26
26
  console = "0.15.5"
27
- curl = { version = "0.4.46" }
27
+ curl = "0.4.46"
28
28
  dirs = "4.0.0"
29
29
  dotenvy = "0.15.7"
30
30
  elementtree = "1.2.3"
@@ -75,7 +75,7 @@ data-encoding = "2.3.3"
75
75
  magic_string = "0.3.4"
76
76
  chrono-tz = "0.8.4"
77
77
  secrecy = "0.8.0"
78
- lru = "0.16.0"
78
+ lru = "0.16.3"
79
79
  backon = { version = "1.5.2", features = ["std", "std-blocking-sleep"] }
80
80
 
81
81
  [dev-dependencies]
@@ -127,10 +127,10 @@ openssl-probe = "0.1.5"
127
127
  [target."cfg(windows)".dependencies]
128
128
  windows-sys = { version = "0.59.0", features = ["Win32_Storage_FileSystem"] }
129
129
 
130
- # Use static curl/SSL on all platforms except ARM-based macOS.
131
- # We link dynamically on ARM macOS; that way we can support self-signed certificates
130
+ # Use static curl/SSL on non-macOS platforms
131
+ # We link dynamically on macOS; that way we can support self-signed certificates
132
132
  # trusted in the macOS keychain.
133
- [target."cfg(not(all(target_os = \"macos\", target_arch = \"aarch64\")))".dependencies]
133
+ [target."cfg(not(target_os = \"macos\"))".dependencies]
134
134
  curl = { version = "0.4.46", features = ["static-curl", "static-ssl"] }
135
135
 
136
136
  # We optimize the release build for size.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: sentry_cli
3
- Version: 3.0.2
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 25.11.1 and above.
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
- ### Self-Hosted Sentry
42
+ <details>
43
43
 
44
- Although some Sentry CLI features may work with versions of Sentry Self-Hosted prior to 25.11.1, we recommend users upgrade their self-hosted installations to a compatible version.
44
+ <summary><h3>Self-Hosted Sentry</h3></summary>
45
45
 
46
- For users who cannot upgrade their self-hosted installation, we recommend using the latest compatible Sentry CLI version, per the table below:
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
- | ≥ 25.11.1 | [latest](https://github.com/getsentry/sentry-cli/releases/latest) |
51
- | < 25.11.1 | [2.58.4](https://github.com/getsentry/sentry-cli/releases/tag/2.58.4) |
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 25.11.1 and above.
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
- ### Self-Hosted Sentry
25
+ <details>
26
26
 
27
- Although some Sentry CLI features may work with versions of Sentry Self-Hosted prior to 25.11.1, we recommend users upgrade their self-hosted installations to a compatible version.
27
+ <summary><h3>Self-Hosted Sentry</h3></summary>
28
28
 
29
- For users who cannot upgrade their self-hosted installation, we recommend using the latest compatible Sentry CLI version, per the table below:
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
- | ≥ 25.11.1 | [latest](https://github.com/getsentry/sentry-cli/releases/latest) |
34
- | < 25.11.1 | [2.58.4](https://github.com/getsentry/sentry-cli/releases/tag/2.58.4) |
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.2
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 25.11.1 and above.
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
- ### Self-Hosted Sentry
42
+ <details>
43
43
 
44
- Although some Sentry CLI features may work with versions of Sentry Self-Hosted prior to 25.11.1, we recommend users upgrade their self-hosted installations to a compatible version.
44
+ <summary><h3>Self-Hosted Sentry</h3></summary>
45
45
 
46
- For users who cannot upgrade their self-hosted installation, we recommend using the latest compatible Sentry CLI version, per the table below:
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
- | ≥ 25.11.1 | [latest](https://github.com/getsentry/sentry-cli/releases/latest) |
51
- | < 25.11.1 | [2.58.4](https://github.com/getsentry/sentry-cli/releases/tag/2.58.4) |
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::{ChunkServerOptions, ChunkUploadCapability};
18
+ pub use self::upload::ChunkServerOptions;
@@ -1,7 +1,5 @@
1
1
  use super::*;
2
2
 
3
- mod capability;
4
3
  mod options;
5
4
 
6
- pub use self::capability::ChunkUploadCapability;
7
5
  pub use self::options::ChunkServerOptions;
@@ -2,7 +2,7 @@ use std::num::NonZeroUsize;
2
2
 
3
3
  use serde::Deserialize;
4
4
 
5
- use super::{ChunkCompression, ChunkHashAlgorithm, ChunkUploadCapability};
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 path = format!("/organizations/{}/releases/", PathArg(org));
544
- self.get(&path)?
545
- .convert_rnf::<Vec<ReleaseInfo>>(ApiErrorKind::OrganizationNotFound)
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::{Api, ChunkUploadCapability};
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