codemagic-cli-tools 0.53.4__tar.gz → 0.53.6__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 (434) hide show
  1. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/PKG-INFO +1 -1
  2. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/pyproject.toml +1 -1
  3. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/__version__.py +1 -1
  4. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/__version__.py-e +1 -1
  5. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/enums.py +39 -29
  6. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/__init__.py +1 -0
  7. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/argument/__init__.py +1 -0
  8. codemagic_cli_tools-0.53.6/src/codemagic/cli/argument/argument_parser_builder.py +220 -0
  9. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/argument/argument_properties.py +5 -0
  10. codemagic_cli_tools-0.53.6/src/codemagic/cli/argument/mutually_exclusive_groups.py +35 -0
  11. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/enums.py +18 -2
  12. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/firebase_app_distribution/action_groups/releases_action_group.py +1 -1
  13. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/firebase_app_distribution/actions/get_latest_build_version_action.py +1 -1
  14. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/firebase_app_distribution/arguments.py +14 -3
  15. codemagic_cli_tools-0.53.6/src/codemagic/tools/firebase_app_distribution/firebase_app_distribution.py +88 -0
  16. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/firebase_app_distribution/firebase_app_distribution_action.py +1 -1
  17. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/enums/test_resource_enum.py +9 -0
  18. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/test_firebase_app_distribution.py +4 -2
  19. codemagic_cli_tools-0.53.4/src/codemagic/cli/argument/argument_parser_builder.py +0 -154
  20. codemagic_cli_tools-0.53.4/src/codemagic/tools/firebase_app_distribution/firebase_app_distribution.py +0 -53
  21. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/LICENSE +0 -0
  22. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/README.md +0 -0
  23. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/__init__.py +0 -0
  24. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/__init__.py +0 -0
  25. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/__init__.py +0 -0
  26. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/api_client.py +0 -0
  27. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/api_error.py +0 -0
  28. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/api_session.py +0 -0
  29. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/app_store_publishing/__init__.py +0 -0
  30. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/app_store_publishing/app_store_version_phased_releases.py +0 -0
  31. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/apps/__init__.py +0 -0
  32. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/apps/apps.py +0 -0
  33. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/builds/__init__.py +0 -0
  34. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/builds/builds.py +0 -0
  35. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/json_web_token_manager.py +0 -0
  36. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/provisioning/__init__.py +0 -0
  37. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/provisioning/bundle_id_capabilities.py +0 -0
  38. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/provisioning/bundle_ids.py +0 -0
  39. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/provisioning/devices.py +0 -0
  40. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/provisioning/profiles.py +0 -0
  41. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/provisioning/signing_certificates.py +0 -0
  42. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/resource_manager.py +0 -0
  43. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/testflight/__init__.py +0 -0
  44. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/testflight/beta_groups.py +0 -0
  45. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/type_declarations.py +0 -0
  46. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/versioning/__init__.py +0 -0
  47. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/versioning/app_store_version_localizations.py +0 -0
  48. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/versioning/app_store_version_submissions.py +0 -0
  49. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/versioning/app_store_versions.py +0 -0
  50. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/versioning/beta_app_review_submissions.py +0 -0
  51. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/versioning/beta_build_localizations.py +0 -0
  52. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/versioning/pre_release_versions.py +0 -0
  53. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/versioning/review_submission_items.py +0 -0
  54. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/app_store_connect/versioning/review_submissions.py +0 -0
  55. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/__init__.py +0 -0
  56. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/app.py +0 -0
  57. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/app_store_version.py +0 -0
  58. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/app_store_version_localization.py +0 -0
  59. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/app_store_version_phased_release.py +0 -0
  60. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/app_store_version_submission.py +0 -0
  61. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/beta_app_localization.py +0 -0
  62. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/beta_app_review_detail.py +0 -0
  63. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/beta_app_review_submission.py +0 -0
  64. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/beta_build_localization.py +0 -0
  65. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/beta_group.py +0 -0
  66. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/build.py +0 -0
  67. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/build_beta_detail.py +0 -0
  68. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/bundle_id.py +0 -0
  69. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/bundle_id_capability.py +0 -0
  70. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/device.py +0 -0
  71. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/error_response.py +0 -0
  72. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/pre_release_version.py +0 -0
  73. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/profile.py +0 -0
  74. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/resource.py +0 -0
  75. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/review_submission.py +0 -0
  76. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/review_submission_item.py +0 -0
  77. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/apple/resources/signing_certificate.py +0 -0
  78. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/action.py +0 -0
  79. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/action_group.py +0 -0
  80. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/argument/action_callable.py +0 -0
  81. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/argument/argument.py +0 -0
  82. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/argument/argument_formatter.py +0 -0
  83. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/argument/common_argument_types.py +0 -0
  84. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/argument/typed_cli_argument.py +0 -0
  85. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/cli_app.py +0 -0
  86. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/cli_help_formatter.py +0 -0
  87. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/cli_process.py +0 -0
  88. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/cli_process_stream.py +0 -0
  89. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/cli_types.py +0 -0
  90. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/colors.py +0 -0
  91. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/cli/environment.py +0 -0
  92. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/data/jars/bundletool-all-1.13.1.jar +0 -0
  93. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/__init__.py +0 -0
  94. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/errors.py +0 -0
  95. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/firebase_client.py +0 -0
  96. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/google_client.py +0 -0
  97. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/resource_managers/__init__.py +0 -0
  98. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/resource_managers/mixins/__init__.py +0 -0
  99. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/resource_managers/mixins/acting_manager_mixin.py +0 -0
  100. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/resource_managers/mixins/listing_manager_mixin.py +0 -0
  101. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/resource_managers/release_manager.py +0 -0
  102. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/resource_managers/resource_manager.py +0 -0
  103. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/resources/__init__.py +0 -0
  104. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/resources/identifiers/__init__.py +0 -0
  105. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/resources/identifiers/app_identifier.py +0 -0
  106. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/resources/identifiers/resource_identifier.py +0 -0
  107. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/resources/release.py +0 -0
  108. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/resources/release_notes.py +0 -0
  109. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google/resources/resource.py +0 -0
  110. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google_play/__init__.py +0 -0
  111. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google_play/api_client.py +0 -0
  112. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google_play/api_error.py +0 -0
  113. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google_play/resources/__init__.py +0 -0
  114. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google_play/resources/edit.py +0 -0
  115. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google_play/resources/enums.py +0 -0
  116. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google_play/resources/resource.py +0 -0
  117. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/google_play/resources/track.py +0 -0
  118. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/mixins/__init__.py +0 -0
  119. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/mixins/path_finder.py +0 -0
  120. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/mixins/running_cli_app.py +0 -0
  121. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/mixins/str_converter.py +0 -0
  122. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/__init__.py +0 -0
  123. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/altool/__init__.py +0 -0
  124. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/altool/altool.py +0 -0
  125. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/altool/altool_result.py +0 -0
  126. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/altool/enums.py +0 -0
  127. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/android_signing_info.py +0 -0
  128. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/application_package/__init__.py +0 -0
  129. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/application_package/abstract_package.py +0 -0
  130. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/application_package/ipa.py +0 -0
  131. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/application_package/macos_package.py +0 -0
  132. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/bundle_id_detector.py +0 -0
  133. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/certificate.py +0 -0
  134. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/certificate_attributes.py +0 -0
  135. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/certificate_p12_exporter.py +0 -0
  136. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/code_sign_entitlements.py +0 -0
  137. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/code_signing_settings_manager.py +0 -0
  138. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/export_options.py +0 -0
  139. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/json_serializable.py +0 -0
  140. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/junit/__init__.py +0 -0
  141. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/junit/definitions.py +0 -0
  142. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/junit/printer.py +0 -0
  143. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/keystore.py +0 -0
  144. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/pbx_project.py +0 -0
  145. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/private_key.py +0 -0
  146. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/provisioning_profile.py +0 -0
  147. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/simulator/__init__.py +0 -0
  148. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/simulator/core_simulator_service.py +0 -0
  149. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/simulator/runtime.py +0 -0
  150. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/simulator/simulator.py +0 -0
  151. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/table/__init__.py +0 -0
  152. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/table/line.py +0 -0
  153. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/table/table.py +0 -0
  154. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/xcode.py +0 -0
  155. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/xcodebuild.py +0 -0
  156. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/xcpretty.py +0 -0
  157. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/xctests/__init__.py +0 -0
  158. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/xctests/collector.py +0 -0
  159. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/xctests/converter.py +0 -0
  160. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/xctests/xcresult.py +0 -0
  161. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/models/xctests/xcresulttool.py +0 -0
  162. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/py.typed +0 -0
  163. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/scripts/code_signing_manager.rb +0 -0
  164. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/shell_tools/__init__.py +0 -0
  165. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/shell_tools/abstract_shell_tool.py +0 -0
  166. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/shell_tools/keytool.py +0 -0
  167. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/__init__.py +0 -0
  168. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/_xcode_project/__init__.py +0 -0
  169. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/_xcode_project/arguments.py +0 -0
  170. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/android_app_bundle.py +0 -0
  171. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/android_keystore/__init__.py +0 -0
  172. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/android_keystore/__main__.py +0 -0
  173. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/android_keystore/android_keystore.py +0 -0
  174. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/android_keystore/argument_types.py +0 -0
  175. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/android_keystore/arguments.py +0 -0
  176. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/__init__.py +0 -0
  177. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/__main__.py +0 -0
  178. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/abstract_base_action.py +0 -0
  179. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_group.py +0 -0
  180. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/__init__.py +0 -0
  181. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/app_store_version_localizations_action_group.py +0 -0
  182. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/app_store_version_phased_releases_action_group.py +0 -0
  183. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/app_store_version_submissions_action_group.py +0 -0
  184. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/app_store_versions_action_group.py +0 -0
  185. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/apps_action_group.py +0 -0
  186. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/beta_app_review_submissions_action_group.py +0 -0
  187. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/beta_build_localizations_action_group.py +0 -0
  188. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/beta_groups_action_group.py +0 -0
  189. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/builds_action_group.py +0 -0
  190. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/bundle_ids_action_group.py +0 -0
  191. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/certificates_action_group.py +0 -0
  192. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/devices_action_group.py +0 -0
  193. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/profiles_action_group.py +0 -0
  194. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/review_submission_items_actions_group.py +0 -0
  195. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/action_groups/review_submissions_actions_group.py +0 -0
  196. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/actions/__init__.py +0 -0
  197. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/actions/fetch_signing_files_action.py +0 -0
  198. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/actions/latest_build_number_actions.py +0 -0
  199. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/actions/publish_action.py +0 -0
  200. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/actions/submit_to_app_store_action.py +0 -0
  201. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/actions/submit_to_testflight_action.py +0 -0
  202. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/app_store_connect.py +0 -0
  203. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/arguments.py +0 -0
  204. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/errors.py +0 -0
  205. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/mixins/__init__.py +0 -0
  206. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/mixins/resource_manager_mixin.py +0 -0
  207. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/mixins/signing_file_saver_mixin.py +0 -0
  208. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/app_store_connect/resource_printer.py +0 -0
  209. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/codemagic_cli_tools.py +0 -0
  210. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/firebase_app_distribution/__init__.py +0 -0
  211. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/firebase_app_distribution/__main__.py +0 -0
  212. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/firebase_app_distribution/action_groups/__init__.py +0 -0
  213. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/firebase_app_distribution/action_groups/firebase_action_groups.py +0 -0
  214. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/firebase_app_distribution/actions/__init__.py +0 -0
  215. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/firebase_app_distribution/argument_types.py +0 -0
  216. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/firebase_app_distribution/errors.py +0 -0
  217. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/firebase_app_distribution/resource_printer.py +0 -0
  218. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/git_changelog.py +0 -0
  219. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/google_play/__init__.py +0 -0
  220. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/google_play/__main__.py +0 -0
  221. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/google_play/action_groups/__init__.py +0 -0
  222. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/google_play/action_groups/google_play_action_groups.py +0 -0
  223. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/google_play/action_groups/tracks_action_group.py +0 -0
  224. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/google_play/actions/__init__.py +0 -0
  225. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/google_play/actions/get_latest_build_number_action.py +0 -0
  226. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/google_play/argument_types.py +0 -0
  227. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/google_play/arguments.py +0 -0
  228. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/google_play/errors.py +0 -0
  229. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/google_play/google_play.py +0 -0
  230. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/google_play/google_play_base_action.py +0 -0
  231. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/keychain.py +0 -0
  232. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/universal_apk_generator.py +0 -0
  233. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/tools/xcode_project.py +0 -0
  234. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/utilities/__init__.py +0 -0
  235. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/utilities/auditing/__init__.py +0 -0
  236. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/utilities/auditing/base_auditor.py +0 -0
  237. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/utilities/auditing/exception_auditor.py +0 -0
  238. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/utilities/auditing/http_request_auditor.py +0 -0
  239. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/utilities/backwards_file_reader.py +0 -0
  240. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/utilities/case_conversion.py +0 -0
  241. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/utilities/decorators.py +0 -0
  242. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/utilities/levenshtein_distance.py +0 -0
  243. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/utilities/log.py +0 -0
  244. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/src/codemagic/utilities/versions.py +0 -0
  245. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/__init__.py +0 -0
  246. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/__init__.py +0 -0
  247. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/__init__.py +0 -0
  248. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/app_store_publishing/__init__.py +0 -0
  249. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/app_store_publishing/test_app_store_version_phased_releases.py +0 -0
  250. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/apps/__init__.py +0 -0
  251. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/apps/test_apps.py +0 -0
  252. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/builds/__init__.py +0 -0
  253. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/builds/test_builds.py +0 -0
  254. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/provisioning/__init__.py +0 -0
  255. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/provisioning/conftest.py +0 -0
  256. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/provisioning/test_bundle_id_capabilities.py +0 -0
  257. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/provisioning/test_bundle_ids.py +0 -0
  258. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/provisioning/test_devices.py +0 -0
  259. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/provisioning/test_profiles.py +0 -0
  260. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/provisioning/test_signing_certificates.py +0 -0
  261. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/resource_manager_test_base.py +0 -0
  262. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/test_api_client.py +0 -0
  263. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/test_api_session.py +0 -0
  264. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/test_json_web_token_manager.py +0 -0
  265. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/test_resource_manager.py +0 -0
  266. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/testflight/__init__.py +0 -0
  267. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/testflight/test_beta_groups.py +0 -0
  268. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/versioning/__init__.py +0 -0
  269. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/versioning/test_app_store_version_localizations.py +0 -0
  270. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/versioning/test_app_store_version_submissions.py +0 -0
  271. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/versioning/test_app_store_versions.py +0 -0
  272. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/versioning/test_beta_app_review_submissions.py +0 -0
  273. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/versioning/test_beta_build_localizations.py +0 -0
  274. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/versioning/test_pre_release_versions.py +0 -0
  275. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/versioning/test_review_submission_items.py +0 -0
  276. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/app_store_connect/versioning/test_review_submissions.py +0 -0
  277. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/__init__.py +0 -0
  278. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/conftest.py +0 -0
  279. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/enums/__init__.py +0 -0
  280. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/enums/test_capability_type.py +0 -0
  281. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/enums/test_certificate_type.py +0 -0
  282. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/enums/test_profile_type.py +0 -0
  283. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/mocks/app.json +0 -0
  284. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/mocks/app_store_version.json +0 -0
  285. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/mocks/app_store_version_phased_release.json +0 -0
  286. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/mocks/build.json +0 -0
  287. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/mocks/bundle_id.json +0 -0
  288. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/mocks/bundle_id_capability.json +0 -0
  289. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/mocks/certificate.json +0 -0
  290. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/mocks/device.json +0 -0
  291. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/mocks/error_response.json +0 -0
  292. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/mocks/error_response_entity_state_invalid.json +0 -0
  293. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/mocks/error_response_with_links.json +0 -0
  294. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/mocks/mock_resource.json +0 -0
  295. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/mocks/pre_release_version.json +0 -0
  296. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/mocks/profile.json +0 -0
  297. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/test_app_resource.py +0 -0
  298. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/test_app_store_version_phased_release_resource.py +0 -0
  299. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/test_app_store_version_resource.py +0 -0
  300. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/test_build_resource.py +0 -0
  301. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/test_bundle_id_capability_resource.py +0 -0
  302. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/test_bundle_id_resource.py +0 -0
  303. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/test_device_resource.py +0 -0
  304. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/test_error_response.py +0 -0
  305. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/test_pre_release_version_resource.py +0 -0
  306. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/test_profile_resource.py +0 -0
  307. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/test_resource.py +0 -0
  308. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/test_signing_certificate_resource.py +0 -0
  309. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/apple/resources/test_undefined_resource_fields.py +0 -0
  310. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/cli/__init__.py +0 -0
  311. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/cli/argument/__init__.py +0 -0
  312. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/cli/argument/common_argument_types/__init__.py +0 -0
  313. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/cli/argument/common_argument_types/test_bounded_number.py +0 -0
  314. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/cli/argument/common_argument_types/test_iso_8601_datetime.py +0 -0
  315. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/cli/argument/common_argument_types/test_maybe_dir.py +0 -0
  316. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/cli/argument/test_argument.py +0 -0
  317. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/cli/mocks/utf-8-sample.txt +0 -0
  318. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/cli/test_cli_process.py +0 -0
  319. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/cli/test_decorators.py +0 -0
  320. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/conftest.py +0 -0
  321. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/google/__init__.py +0 -0
  322. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/google/conftest.py +0 -0
  323. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/google/test_firebase_client.py +0 -0
  324. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/google/test_live_firebase_client.py +0 -0
  325. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/google_play/__init__.py +0 -0
  326. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/google_play/resources/__init__.py +0 -0
  327. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/google_play/resources/conftest.py +0 -0
  328. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/google_play/resources/mocks/edit.json +0 -0
  329. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/google_play/resources/mocks/track.json +0 -0
  330. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/google_play/resources/test_edit_resource.py +0 -0
  331. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/google_play/resources/test_resource_print.py +0 -0
  332. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/google_play/resources/test_track_resource.py +0 -0
  333. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/google_play/test_api_client.py +0 -0
  334. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/mixins/__init__.py +0 -0
  335. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/mixins/test_path_finder.py +0 -0
  336. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/mixins/test_string_converter.py +0 -0
  337. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/mocks/certificate.asn1 +0 -0
  338. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/mocks/encrypted.pem +0 -0
  339. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/mocks/encrypted.pem.pub +0 -0
  340. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/mocks/unencrypted.pem +0 -0
  341. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/mocks/unencrypted.pem.pub +0 -0
  342. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/__init__.py +0 -0
  343. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/altool/__init__.py +0 -0
  344. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/altool/mocks/mock_failure_auth.txt +0 -0
  345. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/altool/mocks/mock_failure_other.txt +0 -0
  346. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/altool/mocks/mock_upload_success.json +0 -0
  347. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/altool/mocks/mock_validation_failure.json +0 -0
  348. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/altool/test_altool_result.py +0 -0
  349. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/altool/test_altool_retrying.py +0 -0
  350. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/conftest.py +0 -0
  351. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/enums/__init__.py +0 -0
  352. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/junit/__init__.py +0 -0
  353. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/junit/mocks/testsuite.xml +0 -0
  354. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/junit/test_xml_generation.py +0 -0
  355. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/mocks/certificate-no-password.p12 +0 -0
  356. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/mocks/certificate.p12 +0 -0
  357. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/mocks/codemagic_io_wildcard_development.mobileprovision +0 -0
  358. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/mocks/export_options.plist +0 -0
  359. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/mocks/mock.ipa +0 -0
  360. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/mocks/mock.xcarchive/Products/Applications/Capybara App.app/Capybara App +0 -0
  361. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/mocks/mock_0_icloud_container_environments.plist +0 -0
  362. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/mocks/mock_1_icloud_container_environments.plist +0 -0
  363. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/mocks/mock_2_icloud_container_environments.plist +0 -0
  364. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/mocks/mock_openssh_private_key +0 -0
  365. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/mocks/mock_rsa_private_key +0 -0
  366. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/mocks/mock_xcode/Contents/version.plist +0 -0
  367. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/simulator/__init__.py +0 -0
  368. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/simulator/mocks/devices.json +0 -0
  369. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/simulator/mocks/simulator.json +0 -0
  370. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/simulator/test_runtime.py +0 -0
  371. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/simulator/test_simulator.py +0 -0
  372. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/test_certificate.py +0 -0
  373. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/test_certificate_attributes.py +0 -0
  374. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/test_code_sign_entitlements.py +0 -0
  375. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/test_export_options.py +0 -0
  376. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/test_private_key.py +0 -0
  377. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/test_provisioning_profile.py +0 -0
  378. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/test_table.py +0 -0
  379. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/test_xcode.py +0 -0
  380. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/__init__.py +0 -0
  381. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/conftest.py +0 -0
  382. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/mocks/0_1NtPgUPcB1A83X977l5Q91ElstUeVDnqAhumk_VJG8DIS4GA1sb8ElPPHZZGYEHmNvnHU1VVaPDCw1tI8n3uXg__.json +0 -0
  383. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/mocks/0_5rAUs3HknUI7DU8Jyc5RlFcosqCXTOV-qwOaOE1Mul_ppK8QCta-NSxxCdtVg6i12km4zTR5l0SjgzfHGUNxog__.json +0 -0
  384. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/mocks/0_97T9qQZ3dEI1oDS6NvYTPcFk_jUXFJ0NRwyd5FZ2S585JGMtlqbF28Hc85yeifgKEnNoInoW93Za9c5QJCspeQ__.json +0 -0
  385. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/mocks/0_DVcJZnHFaQQlzl8czovv7RuDRQIToEr5_3lLe-Mn1Sm6VreJ5xoXEFqBaWNv0XRmSg00NJ77XzQKgddhfkuk7w__.json +0 -0
  386. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/mocks/0_FZMbIp5VAUEiJv1wUUM-K78Dtmb4o-titbTusDJqRuarbS9OatzAykygXo4NUqEoR9sxCIoeu8VDioQmbba6mw__.json +0 -0
  387. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/mocks/0_Hj6SOUxY1APmxdQEA2HdqbA52GD3WJE571nqr_Z-w8vi_buxP-GUjNxCsGYQvnKnnwlyykwxY-KJmjqKYmPyXQ__.json +0 -0
  388. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/mocks/0_NnCmQ8rMqVyUBgL3ZDjfjJ9Vt1AMGeMzZPkDH30rGMYer0pFDpp4UDZlCEHRImO-48LdC_KdcbjP70IZA6zKUQ__.json +0 -0
  389. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/mocks/0_YK9aPHVT-grv_ZVooRT79GBO9n82BNogkuWVzFO6itJEtbtsRTQpK2-0ZDLot1JpCfPb26aZwEZjeb9G4GHiBQ__.json +0 -0
  390. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/mocks/0__H1_RrdBT9b-ZhkWCQiRKpHlwURmyWUudeOhj5UslLXhXl8mr9w5CGqdobi9A5wCVEIRMsO4yuFyzx2gMPr-_Q__.json +0 -0
  391. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/mocks/0_evvkuGf92MVrmIvhr07911LuRTiPBKDjIQ0q_7L-mPGGYkWVKMBPQ5pB5lbjoaOnvr0fpC9k003EunfwSdss2g__.json +0 -0
  392. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/mocks/actions_invocation_record.json +0 -0
  393. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/test_collector.py +0 -0
  394. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/test_converter.py +0 -0
  395. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/test_xcresult.py +0 -0
  396. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/models/xctests/test_xcresulttool.py +0 -0
  397. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/shell_tools/__init__.py +0 -0
  398. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/shell_tools/keytool/__init__.py +0 -0
  399. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/shell_tools/keytool/conftest.py +0 -0
  400. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/shell_tools/keytool/mocks/android.ks +0 -0
  401. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/shell_tools/keytool/mocks/non-rfc-cert-keystore.jks +0 -0
  402. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/shell_tools/keytool/mocks/non-rfc-cert-keystore.p12 +0 -0
  403. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/shell_tools/keytool/mocks/rfc-cert-keystore.jks +0 -0
  404. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/shell_tools/keytool/mocks/rfc-cert-keystore.p12 +0 -0
  405. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/shell_tools/keytool/test_get_certificate.py +0 -0
  406. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/shell_tools/keytool/test_get_certificates.py +0 -0
  407. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/shell_tools/keytool/test_validate.py +0 -0
  408. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/__init__.py +0 -0
  409. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/app_store_connect/__init__.py +0 -0
  410. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/app_store_connect/action_groups/__init__.py +0 -0
  411. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/app_store_connect/action_groups/test_apps_action_group.py +0 -0
  412. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/app_store_connect/actions/__init__.py +0 -0
  413. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/app_store_connect/actions/publish_action/__init__.py +0 -0
  414. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/app_store_connect/actions/publish_action/test_publish_arguments.py +0 -0
  415. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/app_store_connect/arguments/__init__.py +0 -0
  416. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/app_store_connect/arguments/test_beta_build_localizations.py +0 -0
  417. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/app_store_connect/conftest.py +0 -0
  418. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/app_store_connect/mocks/AuthKeyMock.p8 +0 -0
  419. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/app_store_connect/test_from_cli_args.py +0 -0
  420. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/google_play/__init__.py +0 -0
  421. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/google_play/mocks/google_play_tracks.json +0 -0
  422. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/google_play/test_argument_types.py +0 -0
  423. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/google_play/test_google_play.py +0 -0
  424. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/mocks/firebase_releases.json +0 -0
  425. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/test_android_app_bundle.py +0 -0
  426. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/test_keychain.py +0 -0
  427. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/tools/test_universal_apk_generator.py +0 -0
  428. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/utilities/__init__.py +0 -0
  429. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/utilities/decorators/__init__.py +0 -0
  430. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/utilities/decorators/test_deprecated.py +0 -0
  431. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/utilities/test_backwards_file_reader.py +0 -0
  432. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/utilities/test_case_conversion.py +0 -0
  433. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/utilities/test_levenshtein_distance.py +0 -0
  434. {codemagic_cli_tools-0.53.4 → codemagic_cli_tools-0.53.6}/tests/utilities/test_versions.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: codemagic-cli-tools
3
- Version: 0.53.4
3
+ Version: 0.53.6
4
4
  Summary: CLI tools used in Codemagic builds
5
5
  Home-page: https://github.com/codemagic-ci-cd/cli-tools
6
6
  License: GPL-3.0-or-later
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "codemagic-cli-tools"
3
- version = "0.53.4"
3
+ version = "0.53.6"
4
4
  description = "CLI tools used in Codemagic builds"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -1,5 +1,5 @@
1
1
  __title__ = "codemagic-cli-tools"
2
2
  __description__ = "CLI tools used in Codemagic builds"
3
- __version__ = '0.53.4'
3
+ __version__ = '0.53.6'
4
4
  __url__ = "https://github.com/codemagic-ci-cd/cli-tools"
5
5
  __licence__ = "GNU General Public License v3.0"
@@ -1,5 +1,5 @@
1
1
  __title__ = "codemagic-cli-tools"
2
2
  __description__ = "CLI tools used in Codemagic builds"
3
- __version__ = "0.53.4.dev"
3
+ __version__ = "0.53.6.dev"
4
4
  __url__ = "https://github.com/codemagic-ci-cd/cli-tools"
5
5
  __licence__ = "GNU General Public License v3.0"
@@ -434,37 +434,47 @@ class ReviewSubmissionItemState(ResourceEnum):
434
434
 
435
435
  class Locale(ResourceEnum):
436
436
  """
437
- Referenced in https://developer.apple.com/documentation/appstoreconnectapi/betaapplocalization/attributes#discussion
437
+ https://developer.apple.com/documentation/appstoreconnectapi/app_store/app_metadata/app_info_localizations/managing_metadata_in_your_app_by_using_locale_shortcodes
438
438
  """
439
439
 
440
- DA = "da"
441
- DE_DE = "de-DE"
442
- EL = "el"
443
- EN_AU = "en-AU"
444
- EN_CA = "en-CA"
445
- EN_GB = "en-GB"
446
- EN_US = "en-US"
447
- ES_ES = "es-ES"
448
- ES_MX = "es-MX"
449
- FI = "fi"
450
- FR_CA = "fr-CA"
451
- FR_FR = "fr-FR"
452
- ID = "id"
453
- IT = "it"
454
- JA = "ja"
455
- KO = "ko"
456
- MS = "ms"
457
- NL_NL = "nl-NL"
458
- NO = "no"
459
- PT_BR = "pt-BR"
460
- PT_PT = "pt-PT"
461
- RU = "ru"
462
- SV = "sv"
463
- TH = "th"
464
- TR = "tr"
465
- VI = "vi"
466
- ZH_HANS = "zh-Hans"
467
- ZH_HANT = "zh-Hant"
440
+ AR_SA = "ar-SA" # Arabic
441
+ CA = "ca" # Catalan
442
+ CS = "cs" # Czech
443
+ DA = "da" # Danish
444
+ DE_DE = "de-DE" # German
445
+ EL = "el" # Greek
446
+ EN_AU = "en-AU" # English (Australia)
447
+ EN_CA = "en-CA" # English (Canada)
448
+ EN_GB = "en-GB" # English (U.K.)
449
+ EN_US = "en-US" # English (U.S.)
450
+ ES_ES = "es-ES" # Spanish (Spain)
451
+ ES_MX = "es-MX" # Spanish (Mexico)
452
+ FI = "fi" # Finnish
453
+ FR_CA = "fr-CA" # French (Canada)
454
+ FR_FR = "fr-FR" # French
455
+ HE = "he" # Hebrew
456
+ HI = "hi" # Hindi
457
+ HR = "hr" # Croatian
458
+ HU = "hu" # Hungarian
459
+ ID = "id" # Indonesian
460
+ IT = "it" # Italian
461
+ JA = "ja" # Japanese
462
+ KO = "ko" # Korean
463
+ MS = "ms" # Malay
464
+ NL_NL = "nl-NL" # Dutch
465
+ NO = "no" # Norwegian
466
+ PL = "pl" # Polish
467
+ PT_BR = "pt-BR" # Portuguese (Brazil)
468
+ PT_PT = "pt-PT" # Portuguese (Portugal)
469
+ RO = "ro" # Romanian
470
+ RU = "ru" # Russian
471
+ SK = "sk" # Slovak
472
+ SV = "sv" # Swedish
473
+ TH = "th" # Thai
474
+ TR = "tr" # Turkish
475
+ UK = "uk" # Ukrainian
476
+ ZH_HANS = "zh-Hans" # Chinese (Simplified)
477
+ ZH_HANT = "zh-Hant" # Chinese (Traditional)
468
478
 
469
479
 
470
480
  class SubscriptionStatusUrlVersion(ResourceEnum):
@@ -6,6 +6,7 @@ from .argument import Argument
6
6
  from .argument import ArgumentProperties
7
7
  from .argument import CommonArgumentTypes
8
8
  from .argument import EnvironmentArgumentValue
9
+ from .argument import MutuallyExclusiveGroup
9
10
  from .argument import TypedCliArgument
10
11
  from .cli_app import CliApp
11
12
  from .cli_app import CliAppException
@@ -5,5 +5,6 @@ from .argument_formatter import ArgumentFormatter
5
5
  from .argument_parser_builder import ArgumentParserBuilder
6
6
  from .argument_properties import ArgumentProperties
7
7
  from .common_argument_types import CommonArgumentTypes
8
+ from .mutually_exclusive_groups import MutuallyExclusiveGroup
8
9
  from .typed_cli_argument import EnvironmentArgumentValue
9
10
  from .typed_cli_argument import TypedCliArgument
@@ -0,0 +1,220 @@
1
+ from __future__ import annotations
2
+
3
+ import argparse
4
+ import dataclasses
5
+ from typing import TYPE_CHECKING
6
+ from typing import Dict
7
+ from typing import Optional
8
+ from typing import Sequence
9
+ from typing import Tuple
10
+ from typing import Type
11
+
12
+ from codemagic.cli.cli_help_formatter import CliHelpFormatter
13
+ from codemagic.cli.colors import Colors
14
+
15
+ from .argument_formatter import ArgumentFormatter
16
+ from .mutually_exclusive_groups import MutuallyExclusiveGroup
17
+ from .mutually_exclusive_groups import MutuallyExclusiveGroups
18
+
19
+ if TYPE_CHECKING:
20
+ from argparse import _ArgumentGroup as ArgumentGroup
21
+ from argparse import _SubParsersAction as SubParsersAction
22
+
23
+ from codemagic.cli import Argument
24
+ from codemagic.cli.argument import ActionCallable
25
+ from codemagic.cli.cli_app import CliApp
26
+
27
+
28
+ @dataclasses.dataclass
29
+ class _ArgumentGroups:
30
+ required: Optional[ArgumentGroup] = None
31
+ optionals: Optional[ArgumentGroup] = None
32
+ mutually_exclusive: Dict[MutuallyExclusiveGroup, ArgumentGroup] = dataclasses.field(default_factory=dict)
33
+ custom: Dict[str, ArgumentGroup] = dataclasses.field(default_factory=dict)
34
+
35
+ def register_arguments(self, arguments: Sequence[Argument]):
36
+ argument_group: Optional[ArgumentGroup]
37
+ for argument in arguments:
38
+ if argument.argument_group_name:
39
+ argument_group = self.custom[argument.argument_group_name]
40
+ elif argument.mutually_exclusive_group:
41
+ argument_group = self.mutually_exclusive[argument.mutually_exclusive_group]
42
+ elif argument.is_required():
43
+ argument_group = self.required
44
+ else:
45
+ argument_group = self.optionals
46
+
47
+ if argument_group:
48
+ argument.register(argument_group)
49
+
50
+
51
+ class ArgumentParserBuilder:
52
+ def __init__(
53
+ self,
54
+ cli_app: Type[CliApp],
55
+ cli_action: ActionCallable,
56
+ parent_parser: SubParsersAction,
57
+ for_deprecated_alias: bool = False,
58
+ ):
59
+ self._cli_app = cli_app
60
+ self._cli_action = cli_action
61
+ self._action_parser = self._create_action_parser(parent_parser, for_deprecated_alias)
62
+
63
+ def _create_action_parser(self, parent_parser: SubParsersAction, for_deprecated_alias: bool):
64
+ if for_deprecated_alias:
65
+ if self._cli_action.deprecation_info is None:
66
+ raise RuntimeError(f"Deprecated alias requested for {self._cli_action.action_name} without alias")
67
+
68
+ deprecation_message = self._cli_action.deprecation_info.get_message(
69
+ self._full_action_name,
70
+ Colors.YELLOW,
71
+ Colors.BOLD,
72
+ )
73
+ return parent_parser.add_parser(
74
+ self._cli_action.deprecation_info.alias,
75
+ formatter_class=CliHelpFormatter,
76
+ description=f"{deprecation_message} {Colors.BOLD(self._cli_action.__doc__)}",
77
+ )
78
+ else:
79
+ return parent_parser.add_parser(
80
+ self._cli_action.action_name,
81
+ formatter_class=CliHelpFormatter,
82
+ description=Colors.BOLD(self._cli_action.__doc__),
83
+ help=self._cli_action.__doc__,
84
+ )
85
+
86
+ @property
87
+ def _full_action_name(self) -> str:
88
+ executable = self._cli_app.get_executable_name()
89
+ if self._cli_action.action_group:
90
+ return f"{executable} {self._cli_action.action_group.name} {self._cli_action.action_name}"
91
+ else:
92
+ return f"{executable} {self._cli_action.action_name}"
93
+
94
+ @classmethod
95
+ def set_default_cli_options(cls, cli_options_parser):
96
+ options_group = cli_options_parser.add_argument_group(Colors.UNDERLINE("Options"))
97
+ options_group.add_argument(
98
+ "--log-stream",
99
+ type=str,
100
+ default="stderr",
101
+ choices=["stderr", "stdout"],
102
+ help=f'Log output stream. {ArgumentFormatter.format_default_value("stderr")}',
103
+ )
104
+ options_group.add_argument(
105
+ "--no-color",
106
+ dest="no_color",
107
+ action="store_true",
108
+ help="Do not use ANSI colors to format terminal output",
109
+ )
110
+ options_group.add_argument(
111
+ "--version",
112
+ dest="show_version",
113
+ action="store_true",
114
+ help="Show tool version and exit",
115
+ )
116
+ options_group.add_argument(
117
+ "-s",
118
+ "--silent",
119
+ dest="enable_logging",
120
+ action="store_false",
121
+ help="Disable log output for commands",
122
+ )
123
+ options_group.add_argument(
124
+ "-v",
125
+ "--verbose",
126
+ dest="verbose",
127
+ action="store_true",
128
+ help="Enable verbose logging for commands",
129
+ )
130
+
131
+ options_group.set_defaults(
132
+ enable_logging=True,
133
+ no_color=False,
134
+ show_version=False,
135
+ verbose=False,
136
+ )
137
+
138
+ @staticmethod
139
+ def _get_mutually_exclusive_group_texts(group: MutuallyExclusiveGroup, executable: str) -> Tuple[str, str]:
140
+ if group.required:
141
+ title_prefix, description_prefix, description_verb = "Required", "Exactly", "must"
142
+ else:
143
+ title_prefix, description_prefix, description_verb = "Optional", "Only", "can"
144
+
145
+ title = f"{title_prefix} mutually exclusive arguments for {executable} to {Colors.BOLD(group.name)}"
146
+ description = f"{description_prefix} one of those options {description_verb} be selected"
147
+ return title, description
148
+
149
+ def _setup_custom_argument_groups(self, group_names: Sequence[str], executable) -> Dict[str, ArgumentGroup]:
150
+ argument_groups = {}
151
+ for group_name in group_names:
152
+ description = f"Optional arguments for {executable} to {Colors.BOLD(group_name)}"
153
+ argument_group = self._action_parser.add_argument_group(Colors.UNDERLINE(description))
154
+ argument_groups[group_name] = argument_group
155
+ return argument_groups
156
+
157
+ def _setup_mutually_exclusive_groups(
158
+ self,
159
+ mutually_exclusive_groups: Sequence[MutuallyExclusiveGroup],
160
+ executable: str,
161
+ ) -> Dict[MutuallyExclusiveGroup, ArgumentGroup]:
162
+ argument_groups = {}
163
+ for mutually_exclusive_group in mutually_exclusive_groups:
164
+ title, description = self._get_mutually_exclusive_group_texts(mutually_exclusive_group, executable)
165
+ argument_group = self._action_parser.add_argument_group(Colors.UNDERLINE(title), description)
166
+ mutually_exclusive_argument_group = argument_group.add_mutually_exclusive_group(
167
+ required=mutually_exclusive_group.required,
168
+ )
169
+ argument_groups[mutually_exclusive_group] = mutually_exclusive_argument_group
170
+ return argument_groups
171
+
172
+ def _setup_cli_app_options(self):
173
+ executable = self._action_parser.prog.split()[0]
174
+
175
+ mutually_exclusive_groups = MutuallyExclusiveGroups.from_argument_list(self._cli_app.CLASS_ARGUMENTS)
176
+
177
+ argument_groups = _ArgumentGroups()
178
+
179
+ required_args_title = Colors.UNDERLINE(f"Required arguments for {Colors.BOLD(executable)}")
180
+ argument_groups.required = self._action_parser.add_argument_group(required_args_title)
181
+ argument_groups.mutually_exclusive.update(
182
+ self._setup_mutually_exclusive_groups(mutually_exclusive_groups.required, executable),
183
+ )
184
+
185
+ optional_args_title = Colors.UNDERLINE(f"Optional arguments for {Colors.BOLD(executable)}")
186
+ argument_groups.optionals = self._action_parser.add_argument_group(optional_args_title)
187
+ argument_groups.mutually_exclusive.update(
188
+ self._setup_mutually_exclusive_groups(mutually_exclusive_groups.optional, executable),
189
+ )
190
+
191
+ argument_groups.register_arguments(self._cli_app.CLASS_ARGUMENTS)
192
+
193
+ def _setup_cli_action_options(self):
194
+ executable = f"command {self._cli_action.action_name}"
195
+ mutually_exclusive_groups = MutuallyExclusiveGroups.from_argument_list(self._cli_action.arguments)
196
+
197
+ argument_groups = _ArgumentGroups()
198
+
199
+ required_args_title = f"Required arguments for command {Colors.BOLD(self._cli_action.action_name)}"
200
+ argument_groups.required = self._action_parser.add_argument_group(Colors.UNDERLINE(required_args_title))
201
+ argument_groups.mutually_exclusive.update(
202
+ self._setup_mutually_exclusive_groups(mutually_exclusive_groups.required, executable),
203
+ )
204
+
205
+ optional_args_title = f"Optional arguments for command {Colors.BOLD(self._cli_action.action_name)}"
206
+ argument_groups.optionals = self._action_parser.add_argument_group(Colors.UNDERLINE(optional_args_title))
207
+ argument_groups.mutually_exclusive.update(
208
+ self._setup_mutually_exclusive_groups(mutually_exclusive_groups.optional, executable),
209
+ )
210
+
211
+ custom_group_names = {a.argument_group_name for a in self._cli_action.arguments if a.argument_group_name}
212
+ argument_groups.custom = self._setup_custom_argument_groups(sorted(custom_group_names), executable)
213
+
214
+ argument_groups.register_arguments(self._cli_action.arguments)
215
+
216
+ def build(self) -> argparse.ArgumentParser:
217
+ self._setup_cli_app_options()
218
+ self._setup_cli_action_options()
219
+ self.set_default_cli_options(self._action_parser)
220
+ return self._action_parser
@@ -2,6 +2,7 @@
2
2
  from __future__ import annotations
3
3
 
4
4
  import copy
5
+ from typing import TYPE_CHECKING
5
6
  from typing import Any
6
7
  from typing import Callable
7
8
  from typing import Dict
@@ -11,6 +12,9 @@ from typing import Tuple
11
12
  from typing import Type
12
13
  from typing import Union
13
14
 
15
+ if TYPE_CHECKING:
16
+ from codemagic.cli import MutuallyExclusiveGroup
17
+
14
18
 
15
19
  class ArgumentProperties(NamedTuple):
16
20
  key: str
@@ -19,6 +23,7 @@ class ArgumentProperties(NamedTuple):
19
23
  flags: Tuple[str, ...] = tuple()
20
24
  argparse_kwargs: Optional[Dict[str, Any]] = None
21
25
  argument_group_name: Optional[str] = None
26
+ mutually_exclusive_group: Optional[MutuallyExclusiveGroup] = None
22
27
 
23
28
  @classmethod
24
29
  def duplicate(cls, template: Union[Tuple, ArgumentProperties], **overwrites) -> ArgumentProperties:
@@ -0,0 +1,35 @@
1
+ from __future__ import annotations
2
+
3
+ import dataclasses
4
+ from typing import NamedTuple
5
+ from typing import Sequence
6
+
7
+ from .argument import Argument
8
+
9
+
10
+ class MutuallyExclusiveGroup(NamedTuple):
11
+ name: str
12
+ required: bool
13
+
14
+
15
+ @dataclasses.dataclass(frozen=True)
16
+ class MutuallyExclusiveGroups:
17
+ required: Sequence[MutuallyExclusiveGroup]
18
+ optional: Sequence[MutuallyExclusiveGroup]
19
+
20
+ @classmethod
21
+ def from_argument_list(cls, arguments: Sequence[Argument]) -> MutuallyExclusiveGroups:
22
+ required_groups, optional_groups = set(), set()
23
+
24
+ for argument in arguments:
25
+ if not argument.mutually_exclusive_group:
26
+ continue
27
+ elif argument.mutually_exclusive_group.required:
28
+ required_groups.add(argument.mutually_exclusive_group)
29
+ else:
30
+ optional_groups.add(argument.mutually_exclusive_group)
31
+
32
+ return MutuallyExclusiveGroups(
33
+ required=tuple(required_groups),
34
+ optional=tuple(optional_groups),
35
+ )
@@ -1,6 +1,10 @@
1
+ from __future__ import annotations
2
+
1
3
  import contextlib
2
4
  import enum
3
5
  import re
6
+ from typing import Dict
7
+ from typing import Tuple
4
8
 
5
9
  from codemagic.utilities import log
6
10
 
@@ -19,6 +23,8 @@ class ResourceEnumMeta(enum.EnumMeta):
19
23
  graceful_fallback = True
20
24
  enable_name_transformation = False
21
25
 
26
+ __graceful_fallback_cache: Dict[Tuple[str, str], str] = {}
27
+
22
28
  def __call__(cls, value, *args, **kwargs): # noqa: N805
23
29
  try:
24
30
  return super().__call__(value, *args, **kwargs)
@@ -29,11 +35,21 @@ class ResourceEnumMeta(enum.EnumMeta):
29
35
  logger = log.get_logger(cls, log_to_stream=False)
30
36
  logger.warning("Undefined Resource enumeration: %s", ve)
31
37
  try:
32
- enum_class = ResourceEnum(f"Graceful{cls.__name__}", {value: value})
33
- return enum_class(value)
38
+ return cls._create_graceful_fallback_instance(value)
34
39
  except TypeError:
35
40
  raise ve
36
41
 
42
+ def _create_graceful_fallback_instance(cls, value): # noqa: N805
43
+ cache_key = (cls.__name__, value)
44
+
45
+ try:
46
+ enum_class = cls.__graceful_fallback_cache[cache_key]
47
+ except KeyError:
48
+ enum_class = ResourceEnum(f"Graceful{cls.__name__}", {value: value})
49
+ cls.__graceful_fallback_cache[cache_key] = enum_class
50
+
51
+ return enum_class(value)
52
+
37
53
  def _transform_class_name(cls): # noqa: N805
38
54
  """
39
55
  If enabled, transform CamelCase class name 'ClassName' to more
@@ -38,7 +38,7 @@ class ReleasesActionGroup(FirebaseAppDistributionAction, ABC):
38
38
  List releases for the Firebase application
39
39
  """
40
40
 
41
- app_identifier = AppIdentifier(self.project_id, app_id)
41
+ app_identifier = AppIdentifier(self.project_number, app_id)
42
42
  try:
43
43
  releases = self.client.releases.list(app_identifier, order_by, limit)
44
44
  except GoogleError as e:
@@ -18,7 +18,7 @@ class GetLatestBuildVersionAction(FirebaseAppDistributionAction, ABC):
18
18
  """
19
19
  Get latest build version from Firebase
20
20
  """
21
- app_identifier = AppIdentifier(self.project_id, app_id)
21
+ app_identifier = AppIdentifier(self.project_number, app_id)
22
22
  try:
23
23
  releases = self.client.releases.list(app_identifier, limit=1)
24
24
  except GoogleError as e:
@@ -4,13 +4,24 @@ from codemagic.google.resources import OrderBy
4
4
 
5
5
  from .argument_types import CredentialsArgument
6
6
 
7
+ select_project_group = cli.MutuallyExclusiveGroup(
8
+ name="select project",
9
+ required=True,
10
+ )
11
+
7
12
 
8
13
  class FirebaseArgument(cli.Argument):
9
14
  PROJECT_ID = cli.ArgumentProperties(
10
15
  key="project_id",
11
- flags=("--project-id", "-p"),
12
- description=f'Project ID in Firebase. For example `{Colors.WHITE("228333310124")}`',
13
- argparse_kwargs={"required": True},
16
+ flags=("--project-id",),
17
+ description=f'Deprecated in version 0.53.5. Use `{Colors.BRIGHT_BLUE("--project-number")}` instead',
18
+ mutually_exclusive_group=select_project_group,
19
+ )
20
+ PROJECT_NUMBER = cli.ArgumentProperties(
21
+ key="project_number",
22
+ flags=("--project-number", "-p"),
23
+ description=f'Project number in Firebase. For example `{Colors.WHITE("228333310124")}`',
24
+ mutually_exclusive_group=select_project_group,
14
25
  )
15
26
  FIREBASE_SERVICE_ACCOUNT_CREDENTIALS = cli.ArgumentProperties(
16
27
  key="credentials",
@@ -0,0 +1,88 @@
1
+ #!/usr/bin/env python3
2
+
3
+ from __future__ import annotations
4
+
5
+ import argparse
6
+ from typing import Dict
7
+ from typing import Optional
8
+
9
+ from codemagic import cli
10
+ from codemagic.google.firebase_client import FirebaseClient
11
+ from codemagic.utilities import log
12
+ from codemagic.utilities.decorators import deprecated
13
+
14
+ from .action_groups import ReleasesActionGroup
15
+ from .actions import GetLatestBuildVersionAction
16
+ from .arguments import FirebaseArgument
17
+
18
+
19
+ @cli.common_arguments(
20
+ FirebaseArgument.PROJECT_ID,
21
+ FirebaseArgument.PROJECT_NUMBER,
22
+ FirebaseArgument.FIREBASE_SERVICE_ACCOUNT_CREDENTIALS,
23
+ )
24
+ class FirebaseAppDistribution(
25
+ cli.CliApp,
26
+ GetLatestBuildVersionAction,
27
+ ReleasesActionGroup,
28
+ ):
29
+ """
30
+ Utility to list releases and retrieve the latest release build version number from Firebase
31
+ """
32
+
33
+ def __init__(
34
+ self,
35
+ credentials: Dict,
36
+ project_number: Optional[str] = None,
37
+ project_id: Optional[str] = None,
38
+ **kwargs,
39
+ ):
40
+ if not project_id and not project_number:
41
+ raise ValueError("Missing project_number")
42
+ super().__init__(**kwargs)
43
+ self.client = FirebaseClient(credentials)
44
+ self._project_id = project_id
45
+ self._project_number = project_number
46
+ if project_id:
47
+ _ = self.project_id # Just to trigger deprecation warning
48
+
49
+ @property
50
+ @deprecated("0.53.5", 'Use "FirebaseAppDistribution.project_number" instead.')
51
+ def project_id(self):
52
+ return self.project_number
53
+
54
+ @property
55
+ def project_number(self):
56
+ if not self._project_number:
57
+ return self._project_id
58
+ return self._project_number
59
+
60
+ @classmethod
61
+ def from_cli_args(cls, cli_args: argparse.Namespace) -> FirebaseAppDistribution:
62
+ credentials_argument = FirebaseArgument.FIREBASE_SERVICE_ACCOUNT_CREDENTIALS.from_args(cli_args)
63
+ if credentials_argument is None:
64
+ raise FirebaseArgument.FIREBASE_SERVICE_ACCOUNT_CREDENTIALS.raise_argument_error()
65
+ project_id = FirebaseArgument.PROJECT_ID.from_args(cli_args)
66
+ if project_id:
67
+ message = (
68
+ "Deprecation warning! "
69
+ f'Flag "{FirebaseArgument.get_flag(FirebaseArgument.PROJECT_ID)}" was deprecated in version 0.53.5 '
70
+ "and is subject for removal in future releases. "
71
+ f'Use "{FirebaseArgument.get_flag(FirebaseArgument.PROJECT_NUMBER)}" instead.'
72
+ )
73
+ log.get_logger(cls).warning(cli.Colors.YELLOW(message))
74
+
75
+ project_number = FirebaseArgument.PROJECT_NUMBER.from_args(cli_args)
76
+
77
+ if not project_id and not project_number:
78
+ raise FirebaseArgument.PROJECT_NUMBER.raise_argument_error()
79
+
80
+ return FirebaseAppDistribution(
81
+ credentials_argument.value,
82
+ project_number=project_id or project_number,
83
+ **cls._parent_class_kwargs(cli_args),
84
+ )
85
+
86
+
87
+ if __name__ == "__main__":
88
+ FirebaseAppDistribution.invoke_cli()
@@ -16,7 +16,7 @@ class FirebaseAppDistributionAction(ABC):
16
16
 
17
17
  @property
18
18
  @abstractmethod
19
- def project_id(self):
19
+ def project_number(self):
20
20
  ...
21
21
 
22
22
  @classmethod
@@ -44,3 +44,12 @@ def test_context_manager(is_graceful_before):
44
44
  with pytest.raises(ValueError):
45
45
  MockEnum("invalid value")
46
46
  assert ResourceEnumMeta.graceful_fallback is is_graceful_before
47
+
48
+
49
+ def test_graceful_fallback_identity():
50
+ ResourceEnumMeta.graceful_fallback = True
51
+ e1 = MockEnum("undefined-value")
52
+ e2 = MockEnum("undefined-value")
53
+ assert e1 is e2 # Enumerations with the same value should persist identity
54
+ assert e1 == e2 # Enumerations with the same value should be equal
55
+ assert e1.value == e2.value # And of course their values should also be equal
@@ -21,6 +21,7 @@ from googleapiclient import discovery
21
21
  from oauth2client.service_account import ServiceAccountCredentials
22
22
 
23
23
  credentials_argument = FirebaseArgument.FIREBASE_SERVICE_ACCOUNT_CREDENTIALS
24
+ project_number_argument = FirebaseArgument.PROJECT_NUMBER
24
25
  project_id_argument = FirebaseArgument.PROJECT_ID
25
26
 
26
27
 
@@ -41,7 +42,8 @@ def register_args(cli_argument_group):
41
42
  def namespace_kwargs():
42
43
  ns_kwargs = {
43
44
  credentials_argument.key: CredentialsArgument('{"type":"service_account"}'),
44
- project_id_argument.key: "228333310124",
45
+ project_number_argument.key: "228333310124",
46
+ project_id_argument.key: None,
45
47
  }
46
48
  for arg in FirebaseAppDistribution.CLASS_ARGUMENTS:
47
49
  if not hasattr(arg.type, "environment_variable_key"):
@@ -158,7 +160,7 @@ def app_identifier():
158
160
 
159
161
  @pytest.fixture
160
162
  def firebase_app_distribution(app_identifier):
161
- return FirebaseAppDistribution({"type": "service_account"}, app_identifier.project_id)
163
+ return FirebaseAppDistribution({"type": "service_account"}, app_identifier.project_id, None)
162
164
 
163
165
 
164
166
  def test_list_releases(firebase_app_distribution, mock_releases_list, releases, app_identifier):