codemagic-cli-tools 0.53.0__tar.gz → 0.53.2__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 (431) hide show
  1. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/PKG-INFO +2 -2
  2. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/pyproject.toml +2 -2
  3. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/__version__.py +1 -1
  4. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/__version__.py-e +1 -1
  5. codemagic_cli_tools-0.53.2/src/codemagic/models/certificate_p12_exporter.py +174 -0
  6. codemagic_cli_tools-0.53.0/src/codemagic/models/certificate_p12_exporter.py +0 -114
  7. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/LICENSE +0 -0
  8. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/README.md +0 -0
  9. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/__init__.py +0 -0
  10. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/__init__.py +0 -0
  11. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/__init__.py +0 -0
  12. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/api_client.py +0 -0
  13. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/api_error.py +0 -0
  14. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/api_session.py +0 -0
  15. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/app_store_publishing/__init__.py +0 -0
  16. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/app_store_publishing/app_store_version_phased_releases.py +0 -0
  17. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/apps/__init__.py +0 -0
  18. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/apps/apps.py +0 -0
  19. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/builds/__init__.py +0 -0
  20. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/builds/builds.py +0 -0
  21. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/json_web_token_manager.py +0 -0
  22. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/provisioning/__init__.py +0 -0
  23. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/provisioning/bundle_id_capabilities.py +0 -0
  24. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/provisioning/bundle_ids.py +0 -0
  25. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/provisioning/devices.py +0 -0
  26. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/provisioning/profiles.py +0 -0
  27. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/provisioning/signing_certificates.py +0 -0
  28. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/resource_manager.py +0 -0
  29. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/testflight/__init__.py +0 -0
  30. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/testflight/beta_groups.py +0 -0
  31. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/type_declarations.py +0 -0
  32. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/versioning/__init__.py +0 -0
  33. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/versioning/app_store_version_localizations.py +0 -0
  34. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/versioning/app_store_version_submissions.py +0 -0
  35. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/versioning/app_store_versions.py +0 -0
  36. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/versioning/beta_app_review_submissions.py +0 -0
  37. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/versioning/beta_build_localizations.py +0 -0
  38. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/versioning/pre_release_versions.py +0 -0
  39. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/versioning/review_submission_items.py +0 -0
  40. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/versioning/review_submissions.py +0 -0
  41. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/__init__.py +0 -0
  42. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/app.py +0 -0
  43. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/app_store_version.py +0 -0
  44. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/app_store_version_localization.py +0 -0
  45. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/app_store_version_phased_release.py +0 -0
  46. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/app_store_version_submission.py +0 -0
  47. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/beta_app_localization.py +0 -0
  48. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/beta_app_review_detail.py +0 -0
  49. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/beta_app_review_submission.py +0 -0
  50. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/beta_build_localization.py +0 -0
  51. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/beta_group.py +0 -0
  52. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/build.py +0 -0
  53. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/build_beta_detail.py +0 -0
  54. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/bundle_id.py +0 -0
  55. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/bundle_id_capability.py +0 -0
  56. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/device.py +0 -0
  57. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/enums.py +0 -0
  58. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/error_response.py +0 -0
  59. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/pre_release_version.py +0 -0
  60. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/profile.py +0 -0
  61. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/resource.py +0 -0
  62. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/review_submission.py +0 -0
  63. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/review_submission_item.py +0 -0
  64. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/signing_certificate.py +0 -0
  65. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/__init__.py +0 -0
  66. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/action.py +0 -0
  67. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/action_group.py +0 -0
  68. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/__init__.py +0 -0
  69. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/action_callable.py +0 -0
  70. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/argument.py +0 -0
  71. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/argument_formatter.py +0 -0
  72. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/argument_parser_builder.py +0 -0
  73. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/argument_properties.py +0 -0
  74. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/common_argument_types.py +0 -0
  75. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/typed_cli_argument.py +0 -0
  76. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/cli_app.py +0 -0
  77. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/cli_help_formatter.py +0 -0
  78. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/cli_process.py +0 -0
  79. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/cli_process_stream.py +0 -0
  80. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/cli_types.py +0 -0
  81. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/colors.py +0 -0
  82. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/environment.py +0 -0
  83. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/data/jars/bundletool-all-1.13.1.jar +0 -0
  84. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/__init__.py +0 -0
  85. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/errors.py +0 -0
  86. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/firebase_client.py +0 -0
  87. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/google_client.py +0 -0
  88. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resource_managers/__init__.py +0 -0
  89. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resource_managers/mixins/__init__.py +0 -0
  90. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resource_managers/mixins/acting_manager_mixin.py +0 -0
  91. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resource_managers/mixins/listing_manager_mixin.py +0 -0
  92. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resource_managers/release_manager.py +0 -0
  93. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resource_managers/resource_manager.py +0 -0
  94. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/__init__.py +0 -0
  95. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/identifiers/__init__.py +0 -0
  96. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/identifiers/app_identifier.py +0 -0
  97. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/identifiers/resource_identifier.py +0 -0
  98. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/release.py +0 -0
  99. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/release_notes.py +0 -0
  100. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/resource.py +0 -0
  101. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/__init__.py +0 -0
  102. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/api_client.py +0 -0
  103. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/api_error.py +0 -0
  104. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/resources/__init__.py +0 -0
  105. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/resources/edit.py +0 -0
  106. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/resources/enums.py +0 -0
  107. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/resources/resource.py +0 -0
  108. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/resources/track.py +0 -0
  109. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/mixins/__init__.py +0 -0
  110. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/mixins/path_finder.py +0 -0
  111. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/mixins/running_cli_app.py +0 -0
  112. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/mixins/str_converter.py +0 -0
  113. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/__init__.py +0 -0
  114. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/altool/__init__.py +0 -0
  115. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/altool/altool.py +0 -0
  116. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/altool/altool_result.py +0 -0
  117. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/altool/enums.py +0 -0
  118. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/android_signing_info.py +0 -0
  119. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/application_package/__init__.py +0 -0
  120. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/application_package/abstract_package.py +0 -0
  121. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/application_package/ipa.py +0 -0
  122. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/application_package/macos_package.py +0 -0
  123. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/bundle_id_detector.py +0 -0
  124. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/certificate.py +0 -0
  125. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/certificate_attributes.py +0 -0
  126. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/code_sign_entitlements.py +0 -0
  127. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/code_signing_settings_manager.py +0 -0
  128. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/enums.py +0 -0
  129. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/export_options.py +0 -0
  130. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/json_serializable.py +0 -0
  131. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/junit/__init__.py +0 -0
  132. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/junit/definitions.py +0 -0
  133. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/junit/printer.py +0 -0
  134. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/keystore.py +0 -0
  135. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/pbx_project.py +0 -0
  136. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/private_key.py +0 -0
  137. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/provisioning_profile.py +0 -0
  138. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/simulator/__init__.py +0 -0
  139. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/simulator/core_simulator_service.py +0 -0
  140. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/simulator/runtime.py +0 -0
  141. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/simulator/simulator.py +0 -0
  142. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/table/__init__.py +0 -0
  143. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/table/line.py +0 -0
  144. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/table/table.py +0 -0
  145. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xcode.py +0 -0
  146. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xcodebuild.py +0 -0
  147. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xcpretty.py +0 -0
  148. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xctests/__init__.py +0 -0
  149. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xctests/collector.py +0 -0
  150. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xctests/converter.py +0 -0
  151. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xctests/xcresult.py +0 -0
  152. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xctests/xcresulttool.py +0 -0
  153. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/py.typed +0 -0
  154. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/scripts/code_signing_manager.rb +0 -0
  155. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/shell_tools/__init__.py +0 -0
  156. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/shell_tools/abstract_shell_tool.py +0 -0
  157. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/shell_tools/keytool.py +0 -0
  158. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/__init__.py +0 -0
  159. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/_xcode_project/__init__.py +0 -0
  160. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/_xcode_project/arguments.py +0 -0
  161. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/android_app_bundle.py +0 -0
  162. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/android_keystore/__init__.py +0 -0
  163. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/android_keystore/__main__.py +0 -0
  164. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/android_keystore/android_keystore.py +0 -0
  165. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/android_keystore/argument_types.py +0 -0
  166. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/android_keystore/arguments.py +0 -0
  167. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/__init__.py +0 -0
  168. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/__main__.py +0 -0
  169. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/abstract_base_action.py +0 -0
  170. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_group.py +0 -0
  171. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/__init__.py +0 -0
  172. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/app_store_version_localizations_action_group.py +0 -0
  173. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/app_store_version_phased_releases_action_group.py +0 -0
  174. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/app_store_version_submissions_action_group.py +0 -0
  175. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/app_store_versions_action_group.py +0 -0
  176. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/apps_action_group.py +0 -0
  177. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/beta_app_review_submissions_action_group.py +0 -0
  178. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/beta_build_localizations_action_group.py +0 -0
  179. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/beta_groups_action_group.py +0 -0
  180. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/builds_action_group.py +0 -0
  181. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/bundle_ids_action_group.py +0 -0
  182. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/certificates_action_group.py +0 -0
  183. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/devices_action_group.py +0 -0
  184. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/profiles_action_group.py +0 -0
  185. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/review_submission_items_actions_group.py +0 -0
  186. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/review_submissions_actions_group.py +0 -0
  187. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/actions/__init__.py +0 -0
  188. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/actions/fetch_signing_files_action.py +0 -0
  189. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/actions/latest_build_number_actions.py +0 -0
  190. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/actions/publish_action.py +0 -0
  191. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/actions/submit_to_app_store_action.py +0 -0
  192. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/actions/submit_to_testflight_action.py +0 -0
  193. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/app_store_connect.py +0 -0
  194. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/arguments.py +0 -0
  195. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/errors.py +0 -0
  196. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/mixins/__init__.py +0 -0
  197. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/mixins/resource_manager_mixin.py +0 -0
  198. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/mixins/signing_file_saver_mixin.py +0 -0
  199. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/resource_printer.py +0 -0
  200. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/codemagic_cli_tools.py +0 -0
  201. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/__init__.py +0 -0
  202. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/__main__.py +0 -0
  203. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/action_groups/__init__.py +0 -0
  204. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/action_groups/firebase_action_groups.py +0 -0
  205. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/action_groups/releases_action_group.py +0 -0
  206. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/actions/__init__.py +0 -0
  207. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/actions/get_latest_build_version_action.py +0 -0
  208. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/argument_types.py +0 -0
  209. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/arguments.py +0 -0
  210. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/errors.py +0 -0
  211. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/firebase_app_distribution.py +0 -0
  212. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/firebase_app_distribution_action.py +0 -0
  213. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/resource_printer.py +0 -0
  214. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/git_changelog.py +0 -0
  215. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/__init__.py +0 -0
  216. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/__main__.py +0 -0
  217. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/action_groups/__init__.py +0 -0
  218. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/action_groups/google_play_action_groups.py +0 -0
  219. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/action_groups/tracks_action_group.py +0 -0
  220. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/actions/__init__.py +0 -0
  221. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/actions/get_latest_build_number_action.py +0 -0
  222. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/argument_types.py +0 -0
  223. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/arguments.py +0 -0
  224. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/errors.py +0 -0
  225. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/google_play.py +0 -0
  226. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/google_play_base_action.py +0 -0
  227. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/keychain.py +0 -0
  228. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/universal_apk_generator.py +0 -0
  229. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/xcode_project.py +0 -0
  230. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/__init__.py +0 -0
  231. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/auditing/__init__.py +0 -0
  232. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/auditing/base_auditor.py +0 -0
  233. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/auditing/exception_auditor.py +0 -0
  234. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/auditing/http_request_auditor.py +0 -0
  235. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/backwards_file_reader.py +0 -0
  236. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/case_conversion.py +0 -0
  237. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/decorators.py +0 -0
  238. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/levenshtein_distance.py +0 -0
  239. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/log.py +0 -0
  240. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/versions.py +0 -0
  241. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/__init__.py +0 -0
  242. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/__init__.py +0 -0
  243. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/__init__.py +0 -0
  244. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/app_store_publishing/__init__.py +0 -0
  245. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/app_store_publishing/test_app_store_version_phased_releases.py +0 -0
  246. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/apps/__init__.py +0 -0
  247. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/apps/test_apps.py +0 -0
  248. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/builds/__init__.py +0 -0
  249. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/builds/test_builds.py +0 -0
  250. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/provisioning/__init__.py +0 -0
  251. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/provisioning/conftest.py +0 -0
  252. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/provisioning/test_bundle_id_capabilities.py +0 -0
  253. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/provisioning/test_bundle_ids.py +0 -0
  254. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/provisioning/test_devices.py +0 -0
  255. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/provisioning/test_profiles.py +0 -0
  256. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/provisioning/test_signing_certificates.py +0 -0
  257. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/resource_manager_test_base.py +0 -0
  258. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/test_api_client.py +0 -0
  259. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/test_api_session.py +0 -0
  260. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/test_json_web_token_manager.py +0 -0
  261. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/test_resource_manager.py +0 -0
  262. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/testflight/__init__.py +0 -0
  263. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/testflight/test_beta_groups.py +0 -0
  264. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/versioning/__init__.py +0 -0
  265. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/versioning/test_app_store_version_localizations.py +0 -0
  266. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/versioning/test_app_store_version_submissions.py +0 -0
  267. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/versioning/test_app_store_versions.py +0 -0
  268. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/versioning/test_beta_app_review_submissions.py +0 -0
  269. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/versioning/test_beta_build_localizations.py +0 -0
  270. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/versioning/test_pre_release_versions.py +0 -0
  271. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/versioning/test_review_submission_items.py +0 -0
  272. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/versioning/test_review_submissions.py +0 -0
  273. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/__init__.py +0 -0
  274. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/conftest.py +0 -0
  275. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/enums/__init__.py +0 -0
  276. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/enums/test_capability_type.py +0 -0
  277. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/enums/test_certificate_type.py +0 -0
  278. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/enums/test_profile_type.py +0 -0
  279. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/app.json +0 -0
  280. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/app_store_version.json +0 -0
  281. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/app_store_version_phased_release.json +0 -0
  282. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/build.json +0 -0
  283. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/bundle_id.json +0 -0
  284. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/bundle_id_capability.json +0 -0
  285. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/certificate.json +0 -0
  286. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/device.json +0 -0
  287. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/error_response.json +0 -0
  288. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/error_response_entity_state_invalid.json +0 -0
  289. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/error_response_with_links.json +0 -0
  290. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/mock_resource.json +0 -0
  291. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/pre_release_version.json +0 -0
  292. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/profile.json +0 -0
  293. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_app_resource.py +0 -0
  294. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_app_store_version_phased_release_resource.py +0 -0
  295. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_app_store_version_resource.py +0 -0
  296. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_build_resource.py +0 -0
  297. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_bundle_id_capability_resource.py +0 -0
  298. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_bundle_id_resource.py +0 -0
  299. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_device_resource.py +0 -0
  300. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_error_response.py +0 -0
  301. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_pre_release_version_resource.py +0 -0
  302. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_profile_resource.py +0 -0
  303. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_resource.py +0 -0
  304. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_signing_certificate_resource.py +0 -0
  305. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_undefined_resource_fields.py +0 -0
  306. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/__init__.py +0 -0
  307. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/argument/__init__.py +0 -0
  308. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/argument/common_argument_types/__init__.py +0 -0
  309. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/argument/common_argument_types/test_bounded_number.py +0 -0
  310. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/argument/common_argument_types/test_iso_8601_datetime.py +0 -0
  311. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/argument/common_argument_types/test_maybe_dir.py +0 -0
  312. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/argument/test_argument.py +0 -0
  313. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/mocks/utf-8-sample.txt +0 -0
  314. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/test_cli_process.py +0 -0
  315. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/test_decorators.py +0 -0
  316. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/conftest.py +0 -0
  317. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google/__init__.py +0 -0
  318. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google/conftest.py +0 -0
  319. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google/test_firebase_client.py +0 -0
  320. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google/test_live_firebase_client.py +0 -0
  321. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/__init__.py +0 -0
  322. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/resources/__init__.py +0 -0
  323. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/resources/conftest.py +0 -0
  324. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/resources/mocks/edit.json +0 -0
  325. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/resources/mocks/track.json +0 -0
  326. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/resources/test_edit_resource.py +0 -0
  327. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/resources/test_resource_print.py +0 -0
  328. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/resources/test_track_resource.py +0 -0
  329. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/test_api_client.py +0 -0
  330. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mixins/__init__.py +0 -0
  331. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mixins/test_path_finder.py +0 -0
  332. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mixins/test_string_converter.py +0 -0
  333. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mocks/certificate.asn1 +0 -0
  334. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mocks/encrypted.pem +0 -0
  335. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mocks/encrypted.pem.pub +0 -0
  336. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mocks/unencrypted.pem +0 -0
  337. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mocks/unencrypted.pem.pub +0 -0
  338. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/__init__.py +0 -0
  339. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/altool/__init__.py +0 -0
  340. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/altool/mocks/mock_failure_auth.txt +0 -0
  341. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/altool/mocks/mock_failure_other.txt +0 -0
  342. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/altool/mocks/mock_upload_success.json +0 -0
  343. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/altool/mocks/mock_validation_failure.json +0 -0
  344. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/altool/test_altool_result.py +0 -0
  345. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/altool/test_altool_retrying.py +0 -0
  346. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/conftest.py +0 -0
  347. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/enums/__init__.py +0 -0
  348. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/enums/test_resource_enum.py +0 -0
  349. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/junit/__init__.py +0 -0
  350. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/junit/mocks/testsuite.xml +0 -0
  351. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/junit/test_xml_generation.py +0 -0
  352. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/certificate-no-password.p12 +0 -0
  353. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/certificate.p12 +0 -0
  354. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/codemagic_io_wildcard_development.mobileprovision +0 -0
  355. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/export_options.plist +0 -0
  356. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock.ipa +0 -0
  357. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock.xcarchive/Products/Applications/Capybara App.app/Capybara App +0 -0
  358. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock_0_icloud_container_environments.plist +0 -0
  359. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock_1_icloud_container_environments.plist +0 -0
  360. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock_2_icloud_container_environments.plist +0 -0
  361. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock_openssh_private_key +0 -0
  362. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock_rsa_private_key +0 -0
  363. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock_xcode/Contents/version.plist +0 -0
  364. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/simulator/__init__.py +0 -0
  365. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/simulator/mocks/devices.json +0 -0
  366. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/simulator/mocks/simulator.json +0 -0
  367. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/simulator/test_runtime.py +0 -0
  368. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/simulator/test_simulator.py +0 -0
  369. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_certificate.py +0 -0
  370. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_certificate_attributes.py +0 -0
  371. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_code_sign_entitlements.py +0 -0
  372. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_export_options.py +0 -0
  373. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_private_key.py +0 -0
  374. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_provisioning_profile.py +0 -0
  375. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_table.py +0 -0
  376. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_xcode.py +0 -0
  377. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/__init__.py +0 -0
  378. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/conftest.py +0 -0
  379. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_1NtPgUPcB1A83X977l5Q91ElstUeVDnqAhumk_VJG8DIS4GA1sb8ElPPHZZGYEHmNvnHU1VVaPDCw1tI8n3uXg__.json +0 -0
  380. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_5rAUs3HknUI7DU8Jyc5RlFcosqCXTOV-qwOaOE1Mul_ppK8QCta-NSxxCdtVg6i12km4zTR5l0SjgzfHGUNxog__.json +0 -0
  381. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_97T9qQZ3dEI1oDS6NvYTPcFk_jUXFJ0NRwyd5FZ2S585JGMtlqbF28Hc85yeifgKEnNoInoW93Za9c5QJCspeQ__.json +0 -0
  382. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_DVcJZnHFaQQlzl8czovv7RuDRQIToEr5_3lLe-Mn1Sm6VreJ5xoXEFqBaWNv0XRmSg00NJ77XzQKgddhfkuk7w__.json +0 -0
  383. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_FZMbIp5VAUEiJv1wUUM-K78Dtmb4o-titbTusDJqRuarbS9OatzAykygXo4NUqEoR9sxCIoeu8VDioQmbba6mw__.json +0 -0
  384. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_Hj6SOUxY1APmxdQEA2HdqbA52GD3WJE571nqr_Z-w8vi_buxP-GUjNxCsGYQvnKnnwlyykwxY-KJmjqKYmPyXQ__.json +0 -0
  385. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_NnCmQ8rMqVyUBgL3ZDjfjJ9Vt1AMGeMzZPkDH30rGMYer0pFDpp4UDZlCEHRImO-48LdC_KdcbjP70IZA6zKUQ__.json +0 -0
  386. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_YK9aPHVT-grv_ZVooRT79GBO9n82BNogkuWVzFO6itJEtbtsRTQpK2-0ZDLot1JpCfPb26aZwEZjeb9G4GHiBQ__.json +0 -0
  387. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0__H1_RrdBT9b-ZhkWCQiRKpHlwURmyWUudeOhj5UslLXhXl8mr9w5CGqdobi9A5wCVEIRMsO4yuFyzx2gMPr-_Q__.json +0 -0
  388. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_evvkuGf92MVrmIvhr07911LuRTiPBKDjIQ0q_7L-mPGGYkWVKMBPQ5pB5lbjoaOnvr0fpC9k003EunfwSdss2g__.json +0 -0
  389. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/actions_invocation_record.json +0 -0
  390. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/test_collector.py +0 -0
  391. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/test_converter.py +0 -0
  392. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/test_xcresult.py +0 -0
  393. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/__init__.py +0 -0
  394. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/__init__.py +0 -0
  395. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/conftest.py +0 -0
  396. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/mocks/android.ks +0 -0
  397. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/mocks/non-rfc-cert-keystore.jks +0 -0
  398. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/mocks/non-rfc-cert-keystore.p12 +0 -0
  399. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/mocks/rfc-cert-keystore.jks +0 -0
  400. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/mocks/rfc-cert-keystore.p12 +0 -0
  401. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/test_get_certificate.py +0 -0
  402. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/test_get_certificates.py +0 -0
  403. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/test_validate.py +0 -0
  404. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/__init__.py +0 -0
  405. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/__init__.py +0 -0
  406. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/action_groups/__init__.py +0 -0
  407. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/action_groups/test_apps_action_group.py +0 -0
  408. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/actions/__init__.py +0 -0
  409. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/actions/publish_action/__init__.py +0 -0
  410. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/actions/publish_action/test_publish_arguments.py +0 -0
  411. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/arguments/__init__.py +0 -0
  412. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/arguments/test_beta_build_localizations.py +0 -0
  413. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/conftest.py +0 -0
  414. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/mocks/AuthKeyMock.p8 +0 -0
  415. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/test_from_cli_args.py +0 -0
  416. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/google_play/__init__.py +0 -0
  417. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/google_play/mocks/google_play_tracks.json +0 -0
  418. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/google_play/test_argument_types.py +0 -0
  419. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/google_play/test_google_play.py +0 -0
  420. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/mocks/firebase_releases.json +0 -0
  421. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/test_android_app_bundle.py +0 -0
  422. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/test_firebase_app_distribution.py +0 -0
  423. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/test_keychain.py +0 -0
  424. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/test_universal_apk_generator.py +0 -0
  425. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/utilities/__init__.py +0 -0
  426. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/utilities/decorators/__init__.py +0 -0
  427. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/utilities/decorators/test_deprecated.py +0 -0
  428. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/utilities/test_backwards_file_reader.py +0 -0
  429. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/utilities/test_case_conversion.py +0 -0
  430. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/utilities/test_levenshtein_distance.py +0 -0
  431. {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/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.0
3
+ Version: 0.53.2
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
@@ -15,7 +15,7 @@ Classifier: Programming Language :: Python :: 3.9
15
15
  Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Programming Language :: Python :: 3.12
18
- Requires-Dist: cryptography (>=3.3,!=37.0.0)
18
+ Requires-Dist: cryptography (>=38.0.0)
19
19
  Requires-Dist: google-api-python-client (>=2.84.0)
20
20
  Requires-Dist: httplib2 (>=0.19.0)
21
21
  Requires-Dist: oauth2client (>=4.1.3)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "codemagic-cli-tools"
3
- version = "0.53.0"
3
+ version = "0.53.2"
4
4
  description = "CLI tools used in Codemagic builds"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -36,7 +36,7 @@ xcode-project = "codemagic.tools:XcodeProject.invoke_cli"
36
36
 
37
37
  [tool.poetry.dependencies]
38
38
  python = "^3.7"
39
- cryptography = ">= 3.3, != 37.0.0"
39
+ cryptography = ">= 38.0.0"
40
40
  google-api-python-client = ">= 2.84.0"
41
41
  httplib2 = ">= 0.19.0"
42
42
  oauth2client = ">= 4.1.3"
@@ -1,5 +1,5 @@
1
1
  __title__ = "codemagic-cli-tools"
2
2
  __description__ = "CLI tools used in Codemagic builds"
3
- __version__ = '0.53.0'
3
+ __version__ = '0.53.2'
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.0.dev"
3
+ __version__ = "0.53.2.dev"
4
4
  __url__ = "https://github.com/codemagic-ci-cd/cli-tools"
5
5
  __licence__ = "GNU General Public License v3.0"
@@ -0,0 +1,174 @@
1
+ from __future__ import annotations
2
+
3
+ import contextlib
4
+ import pathlib
5
+ import re
6
+ import shutil
7
+ import subprocess
8
+ import tempfile
9
+ from typing import TYPE_CHECKING
10
+ from typing import AnyStr
11
+ from typing import Generator
12
+ from typing import Optional
13
+ from typing import Sequence
14
+ from typing import Union
15
+
16
+ from cryptography.hazmat.primitives import hashes
17
+ from cryptography.hazmat.primitives._serialization import PrivateFormat
18
+ from cryptography.hazmat.primitives.serialization import pkcs12
19
+ from packaging.version import Version
20
+
21
+ from codemagic.mixins import RunningCliAppMixin
22
+ from codemagic.mixins import StringConverterMixin
23
+
24
+ if TYPE_CHECKING:
25
+ from typing_extensions import Literal
26
+
27
+ from .certificate import Certificate
28
+ from .private_key import PrivateKey
29
+
30
+
31
+ class _OpenSsl:
32
+ def __init__(self):
33
+ self._executable = shutil.which("openssl")
34
+
35
+ def ensure_installed(self):
36
+ if self._executable is None:
37
+ raise IOError("OpenSSL executable is not present on system")
38
+
39
+ def get_version(self) -> Optional[Version]:
40
+ if not self._executable:
41
+ return None
42
+
43
+ try:
44
+ version_output = subprocess.check_output([self._executable, "version"])
45
+ except subprocess.CalledProcessError:
46
+ version_output = b""
47
+
48
+ version_match = re.search(r"\d+\.\d+\.\d+", version_output.decode(errors="ignore"))
49
+ if not version_match:
50
+ return None
51
+
52
+ return Version(version_match.group())
53
+
54
+ @property
55
+ def no_encryption_flag(self) -> Literal["-nodes", "-noenc"]:
56
+ # Starting from OpenSSL version 3.0.0 `-nodes` is deprecated for disabling encryption
57
+ # when invoking `openssl pkcs12`. It is replaced with `-noenc`.
58
+ # See https://www.openssl.org/docs/man3.0/man1/openssl-pkcs12.html
59
+
60
+ openssl_version = self.get_version()
61
+ if openssl_version and openssl_version < Version("3.0.0"):
62
+ # Use legacy flag only if we are sure that the version is earlier than 3.0.0
63
+ return "-nodes"
64
+ return "-noenc"
65
+
66
+
67
+ class P12Exporter(RunningCliAppMixin, StringConverterMixin):
68
+ def __init__(
69
+ self,
70
+ certificate: Certificate,
71
+ private_key: PrivateKey,
72
+ container_password: Optional[str],
73
+ ):
74
+ self._password = container_password
75
+ self._certificate = certificate
76
+ self._private_key = private_key
77
+ self._openssl = _OpenSsl()
78
+
79
+ @contextlib.contextmanager
80
+ def _temp_container(self) -> Generator[pathlib.Path, None, None]:
81
+ with tempfile.NamedTemporaryFile(prefix="certificate_", suffix=".p12") as tf:
82
+ yield pathlib.Path(tf.name)
83
+
84
+ @classmethod
85
+ def _get_export_path(cls, export_path: Optional[pathlib.Path]) -> pathlib.Path:
86
+ if export_path is not None:
87
+ return export_path
88
+ with tempfile.NamedTemporaryFile(prefix="certificate", suffix=".p12", delete=False) as tf:
89
+ return pathlib.Path(tf.name)
90
+
91
+ def _run_openssl_command(self, command: Sequence[Union[str, pathlib.Path]]):
92
+ process = None
93
+ cli_app = self.get_current_cli_app()
94
+ try:
95
+ if cli_app:
96
+ obfuscate_patterns = [arg for arg in command if str(arg).startswith("pass:")]
97
+ process = cli_app.execute(command, obfuscate_patterns)
98
+ process.raise_for_returncode()
99
+ else:
100
+ subprocess.check_output(command, stderr=subprocess.PIPE)
101
+ except subprocess.CalledProcessError as cpe:
102
+ if "unable to load private key" in self._str(cpe.stderr):
103
+ error = "Unable to export certificate: Invalid private key"
104
+ else:
105
+ error = "Unable to export certificate: Failed to create PKCS12 container"
106
+ raise IOError(error, process)
107
+
108
+ def create_encrypted_pkcs12_container(self, password: str) -> bytes:
109
+ # With OpenSSL 3.0.0+ the defaults for encryption when serializing PKCS12
110
+ # have changed and some versions of Windows and macOS will not be able to
111
+ # read the new format. Maximum compatibility can be achieved by using SHA1
112
+ # for MAC algorithm and PBESv1SHA1And3KeyTripleDESCBC for encryption algorithm.
113
+
114
+ if not password:
115
+ raise ValueError("Cannot create encrypted PKCS12 container without password")
116
+
117
+ encryption = (
118
+ PrivateFormat.PKCS12.encryption_builder()
119
+ .kdf_rounds(50000)
120
+ .key_cert_algorithm(pkcs12.PBES.PBESv1SHA1And3KeyTripleDESCBC)
121
+ .hmac_hash(hashes.SHA1())
122
+ .build(self._bytes(password))
123
+ )
124
+
125
+ return pkcs12.serialize_key_and_certificates(
126
+ None,
127
+ self._private_key.cryptography_private_key,
128
+ self._certificate.certificate,
129
+ None,
130
+ encryption,
131
+ )
132
+
133
+ def create_decrypted_pkcs12_container(self) -> bytes:
134
+ # Create an encrypted container with temporary password first as macOS keychain
135
+ # is not capable of handling non-encrypted PKCS#12 containers created by cryptography
136
+ # as those use SHA256 for HMAC hash function.
137
+ encrypted_pkcs12_container = self.create_encrypted_pkcs12_container("temporary-password")
138
+
139
+ # Strip temporary password from the encrypted container to decrypt it
140
+ return self._decrypt_pkcs12_container(encrypted_pkcs12_container, "temporary-password")
141
+
142
+ def _decrypt_pkcs12_container(self, pkcs12_container: bytes, password: AnyStr) -> bytes:
143
+ if not password:
144
+ raise ValueError("Cannot decrypt PKCS12 container without password")
145
+
146
+ with self._temp_container() as encrypted, self._temp_container() as decrypted:
147
+ encrypted.write_bytes(pkcs12_container)
148
+ decrypt_args = (
149
+ *("openssl", "pkcs12", self._openssl.no_encryption_flag),
150
+ *("-passin", f"pass:{self._str(password)}"),
151
+ *("-in", encrypted), # type: ignore
152
+ *("-out", decrypted), # type: ignore
153
+ )
154
+ self._run_openssl_command(decrypt_args)
155
+ decrypted_container = decrypted.read_bytes()
156
+
157
+ # Decrypted container is an ASCII text file that contains the PEM encoded
158
+ # certificate and key along with their bag attributes, which are optional.
159
+ # Remove subject line from bag attributes, which is not required but can
160
+ # contain unicode characters that are not supported by macOS keychain.
161
+ lines = decrypted_container.splitlines(keepends=True)
162
+ return b"".join(line for line in lines if not line.startswith(b"subject="))
163
+
164
+ def export(self, export_path: Optional[pathlib.Path] = None) -> pathlib.Path:
165
+ self._openssl.ensure_installed()
166
+
167
+ if self._password:
168
+ pkcs12_container = self.create_encrypted_pkcs12_container(self._password)
169
+ else:
170
+ pkcs12_container = self.create_decrypted_pkcs12_container()
171
+
172
+ p12_path = self._get_export_path(export_path)
173
+ p12_path.write_bytes(pkcs12_container)
174
+ return p12_path
@@ -1,114 +0,0 @@
1
- from __future__ import annotations
2
-
3
- import os
4
- import pathlib
5
- import shutil
6
- import subprocess
7
- import tempfile
8
- from typing import TYPE_CHECKING
9
- from typing import Optional
10
- from typing import Sequence
11
- from typing import Union
12
-
13
- from codemagic.mixins import RunningCliAppMixin
14
- from codemagic.mixins import StringConverterMixin
15
-
16
- if TYPE_CHECKING:
17
- from .certificate import Certificate
18
- from .private_key import PrivateKey
19
-
20
-
21
- class P12Exporter(RunningCliAppMixin, StringConverterMixin):
22
- def __init__(self, certificate: Certificate, private_key: PrivateKey, container_password: str):
23
- self.container_password = container_password
24
- self._temp_pem_certificate_path = self._save_to_disk("cert", certificate.as_pem())
25
- self._temp_private_key_path = self._save_to_disk("key", private_key.as_pem())
26
-
27
- @classmethod
28
- def _save_to_disk(cls, prefix: str, pem: str):
29
- with tempfile.NamedTemporaryFile(mode="w", prefix=f"{prefix}_", suffix=".pem", delete=False) as tf:
30
- tf.write(pem)
31
- return pathlib.Path(tf.name)
32
-
33
- def _cleanup(self):
34
- for path in (self._temp_pem_certificate_path, self._temp_private_key_path):
35
- if path and path.exists():
36
- os.remove(str(path))
37
-
38
- @classmethod
39
- def _get_export_path(cls, export_path: Optional[pathlib.Path]) -> pathlib.Path:
40
- if export_path is not None:
41
- return export_path
42
- with tempfile.NamedTemporaryFile(prefix="certificate", suffix=".p12", delete=False) as tf:
43
- return pathlib.Path(tf.name)
44
-
45
- @classmethod
46
- def _ensure_openssl(cls):
47
- if shutil.which("openssl") is None:
48
- raise IOError("OpenSSL executable is not present on system")
49
-
50
- def _run_openssl_command(self, command: Sequence[Union[str, pathlib.Path]]):
51
- process = None
52
- cli_app = self.get_current_cli_app()
53
- try:
54
- if cli_app:
55
- process = cli_app.execute(command, [command[-1]])
56
- process.raise_for_returncode()
57
- else:
58
- subprocess.check_output(command, stderr=subprocess.PIPE)
59
- except subprocess.CalledProcessError as cpe:
60
- if "unable to load private key" in self._str(cpe.stderr):
61
- error = "Unable to export certificate: Invalid private key"
62
- else:
63
- error = "Unable to export certificate: Failed to create PKCS12 container"
64
- raise IOError(error, process)
65
-
66
- def _create_pkcs12_container(self, pkcs12: pathlib.Path, password: str):
67
- if not password:
68
- raise ValueError("Cannot export PKCS12 container without password")
69
-
70
- export_args = (
71
- "openssl",
72
- "pkcs12",
73
- "-export",
74
- "-out",
75
- pkcs12.expanduser(),
76
- "-in",
77
- self._temp_pem_certificate_path,
78
- "-inkey",
79
- self._temp_private_key_path,
80
- "-passout",
81
- f"pass:{password}",
82
- )
83
- self._run_openssl_command(export_args)
84
-
85
- def _decrypt_pkcs12_container(self, pkcs12: pathlib.Path, password: str):
86
- if not password:
87
- raise ValueError("Cannot decrypt PKCS12 container without password")
88
-
89
- decrypted_pkcs12 = pkcs12.parent / f"{pkcs12.stem}_decrypted{pkcs12.suffix}"
90
- decrypt_args = (
91
- "openssl",
92
- "pkcs12",
93
- "-nodes",
94
- "-passin",
95
- f"pass:{password}",
96
- "-in",
97
- pkcs12,
98
- "-out",
99
- decrypted_pkcs12,
100
- )
101
- self._run_openssl_command(decrypt_args)
102
- decrypted_pkcs12.rename(pkcs12)
103
-
104
- def export(self, export_path: Optional[pathlib.Path] = None) -> pathlib.Path:
105
- self._ensure_openssl()
106
- p12_path = self._get_export_path(export_path)
107
- password = self.container_password or "temporary-password"
108
- try:
109
- self._create_pkcs12_container(p12_path, password)
110
- if not self.container_password:
111
- self._decrypt_pkcs12_container(p12_path, password)
112
- finally:
113
- self._cleanup()
114
- return p12_path