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.
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/PKG-INFO +2 -2
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/pyproject.toml +2 -2
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/__version__.py +1 -1
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/__version__.py-e +1 -1
- codemagic_cli_tools-0.53.2/src/codemagic/models/certificate_p12_exporter.py +174 -0
- codemagic_cli_tools-0.53.0/src/codemagic/models/certificate_p12_exporter.py +0 -114
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/LICENSE +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/README.md +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/api_client.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/api_error.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/api_session.py +0 -0
- {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
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/apps/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/apps/apps.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/builds/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/builds/builds.py +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/provisioning/__init__.py +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/provisioning/bundle_ids.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/provisioning/devices.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/provisioning/profiles.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/provisioning/signing_certificates.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/resource_manager.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/testflight/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/testflight/beta_groups.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/type_declarations.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/versioning/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/app_store_connect/versioning/review_submissions.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/app.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/app_store_version.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/app_store_version_localization.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/app_store_version_phased_release.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/app_store_version_submission.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/beta_app_localization.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/beta_app_review_detail.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/beta_app_review_submission.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/beta_build_localization.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/beta_group.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/build.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/build_beta_detail.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/bundle_id.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/bundle_id_capability.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/device.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/enums.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/error_response.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/pre_release_version.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/profile.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/resource.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/review_submission.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/review_submission_item.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/signing_certificate.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/action.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/action_group.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/action_callable.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/argument.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/argument_formatter.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/argument_parser_builder.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/argument_properties.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/common_argument_types.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/typed_cli_argument.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/cli_app.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/cli_help_formatter.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/cli_process.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/cli_process_stream.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/cli_types.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/colors.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/environment.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/data/jars/bundletool-all-1.13.1.jar +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/errors.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/firebase_client.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/google_client.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resource_managers/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resource_managers/mixins/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resource_managers/mixins/acting_manager_mixin.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resource_managers/mixins/listing_manager_mixin.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resource_managers/release_manager.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resource_managers/resource_manager.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/identifiers/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/identifiers/app_identifier.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/identifiers/resource_identifier.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/release.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/release_notes.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/resource.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/api_client.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/api_error.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/resources/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/resources/edit.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/resources/enums.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/resources/resource.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/resources/track.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/mixins/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/mixins/path_finder.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/mixins/running_cli_app.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/mixins/str_converter.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/altool/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/altool/altool.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/altool/altool_result.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/altool/enums.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/android_signing_info.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/application_package/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/application_package/abstract_package.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/application_package/ipa.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/application_package/macos_package.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/bundle_id_detector.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/certificate.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/certificate_attributes.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/code_sign_entitlements.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/code_signing_settings_manager.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/enums.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/export_options.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/json_serializable.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/junit/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/junit/definitions.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/junit/printer.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/keystore.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/pbx_project.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/private_key.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/provisioning_profile.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/simulator/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/simulator/core_simulator_service.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/simulator/runtime.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/simulator/simulator.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/table/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/table/line.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/table/table.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xcode.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xcodebuild.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xcpretty.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xctests/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xctests/collector.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xctests/converter.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xctests/xcresult.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/xctests/xcresulttool.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/py.typed +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/scripts/code_signing_manager.rb +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/shell_tools/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/shell_tools/abstract_shell_tool.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/shell_tools/keytool.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/_xcode_project/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/_xcode_project/arguments.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/android_app_bundle.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/android_keystore/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/android_keystore/__main__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/android_keystore/android_keystore.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/android_keystore/argument_types.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/android_keystore/arguments.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/__main__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/abstract_base_action.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_group.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/action_groups/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/actions/__init__.py +0 -0
- {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
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/actions/publish_action.py +0 -0
- {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
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/app_store_connect.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/arguments.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/errors.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/mixins/__init__.py +0 -0
- {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
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/app_store_connect/resource_printer.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/codemagic_cli_tools.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/__main__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/action_groups/__init__.py +0 -0
- {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
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/actions/__init__.py +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/argument_types.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/arguments.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/errors.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/firebase_app_distribution.py +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/firebase_app_distribution/resource_printer.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/git_changelog.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/__main__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/action_groups/__init__.py +0 -0
- {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
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/actions/__init__.py +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/argument_types.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/arguments.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/errors.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/google_play.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/google_play/google_play_base_action.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/keychain.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/universal_apk_generator.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/tools/xcode_project.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/auditing/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/auditing/base_auditor.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/auditing/exception_auditor.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/auditing/http_request_auditor.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/backwards_file_reader.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/case_conversion.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/decorators.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/levenshtein_distance.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/log.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/utilities/versions.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/app_store_publishing/__init__.py +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/apps/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/apps/test_apps.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/builds/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/builds/test_builds.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/provisioning/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/provisioning/conftest.py +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/provisioning/test_bundle_ids.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/provisioning/test_devices.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/provisioning/test_profiles.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/provisioning/test_signing_certificates.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/resource_manager_test_base.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/test_api_client.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/test_api_session.py +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/test_resource_manager.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/testflight/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/testflight/test_beta_groups.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/versioning/__init__.py +0 -0
- {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
- {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
- {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
- {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
- {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
- {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
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/app_store_connect/versioning/test_review_submissions.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/conftest.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/enums/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/enums/test_capability_type.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/enums/test_certificate_type.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/enums/test_profile_type.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/app.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/app_store_version.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/app_store_version_phased_release.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/build.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/bundle_id.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/bundle_id_capability.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/certificate.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/device.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/error_response.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/error_response_entity_state_invalid.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/error_response_with_links.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/mock_resource.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/pre_release_version.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/mocks/profile.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_app_resource.py +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_app_store_version_resource.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_build_resource.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_bundle_id_capability_resource.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_bundle_id_resource.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_device_resource.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_error_response.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_pre_release_version_resource.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_profile_resource.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_resource.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_signing_certificate_resource.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/apple/resources/test_undefined_resource_fields.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/argument/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/argument/common_argument_types/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/argument/common_argument_types/test_bounded_number.py +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/argument/common_argument_types/test_maybe_dir.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/argument/test_argument.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/mocks/utf-8-sample.txt +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/test_cli_process.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/cli/test_decorators.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/conftest.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google/conftest.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google/test_firebase_client.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google/test_live_firebase_client.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/resources/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/resources/conftest.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/resources/mocks/edit.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/resources/mocks/track.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/resources/test_edit_resource.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/resources/test_resource_print.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/resources/test_track_resource.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/google_play/test_api_client.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mixins/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mixins/test_path_finder.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mixins/test_string_converter.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mocks/certificate.asn1 +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mocks/encrypted.pem +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mocks/encrypted.pem.pub +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mocks/unencrypted.pem +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/mocks/unencrypted.pem.pub +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/altool/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/altool/mocks/mock_failure_auth.txt +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/altool/mocks/mock_failure_other.txt +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/altool/mocks/mock_upload_success.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/altool/mocks/mock_validation_failure.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/altool/test_altool_result.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/altool/test_altool_retrying.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/conftest.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/enums/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/enums/test_resource_enum.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/junit/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/junit/mocks/testsuite.xml +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/junit/test_xml_generation.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/certificate-no-password.p12 +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/certificate.p12 +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/codemagic_io_wildcard_development.mobileprovision +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/export_options.plist +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock.ipa +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock_0_icloud_container_environments.plist +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock_1_icloud_container_environments.plist +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock_2_icloud_container_environments.plist +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock_openssh_private_key +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock_rsa_private_key +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/mocks/mock_xcode/Contents/version.plist +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/simulator/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/simulator/mocks/devices.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/simulator/mocks/simulator.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/simulator/test_runtime.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/simulator/test_simulator.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_certificate.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_certificate_attributes.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_code_sign_entitlements.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_export_options.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_private_key.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_provisioning_profile.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_table.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/test_xcode.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/conftest.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_1NtPgUPcB1A83X977l5Q91ElstUeVDnqAhumk_VJG8DIS4GA1sb8ElPPHZZGYEHmNvnHU1VVaPDCw1tI8n3uXg__.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_5rAUs3HknUI7DU8Jyc5RlFcosqCXTOV-qwOaOE1Mul_ppK8QCta-NSxxCdtVg6i12km4zTR5l0SjgzfHGUNxog__.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_97T9qQZ3dEI1oDS6NvYTPcFk_jUXFJ0NRwyd5FZ2S585JGMtlqbF28Hc85yeifgKEnNoInoW93Za9c5QJCspeQ__.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_DVcJZnHFaQQlzl8czovv7RuDRQIToEr5_3lLe-Mn1Sm6VreJ5xoXEFqBaWNv0XRmSg00NJ77XzQKgddhfkuk7w__.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_FZMbIp5VAUEiJv1wUUM-K78Dtmb4o-titbTusDJqRuarbS9OatzAykygXo4NUqEoR9sxCIoeu8VDioQmbba6mw__.json +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_NnCmQ8rMqVyUBgL3ZDjfjJ9Vt1AMGeMzZPkDH30rGMYer0pFDpp4UDZlCEHRImO-48LdC_KdcbjP70IZA6zKUQ__.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_YK9aPHVT-grv_ZVooRT79GBO9n82BNogkuWVzFO6itJEtbtsRTQpK2-0ZDLot1JpCfPb26aZwEZjeb9G4GHiBQ__.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0__H1_RrdBT9b-ZhkWCQiRKpHlwURmyWUudeOhj5UslLXhXl8mr9w5CGqdobi9A5wCVEIRMsO4yuFyzx2gMPr-_Q__.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/0_evvkuGf92MVrmIvhr07911LuRTiPBKDjIQ0q_7L-mPGGYkWVKMBPQ5pB5lbjoaOnvr0fpC9k003EunfwSdss2g__.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/mocks/actions_invocation_record.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/test_collector.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/test_converter.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/models/xctests/test_xcresult.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/conftest.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/mocks/android.ks +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/mocks/non-rfc-cert-keystore.jks +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/mocks/non-rfc-cert-keystore.p12 +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/mocks/rfc-cert-keystore.jks +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/mocks/rfc-cert-keystore.p12 +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/test_get_certificate.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/test_get_certificates.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/shell_tools/keytool/test_validate.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/action_groups/__init__.py +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/actions/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/actions/publish_action/__init__.py +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/arguments/__init__.py +0 -0
- {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
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/conftest.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/mocks/AuthKeyMock.p8 +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/app_store_connect/test_from_cli_args.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/google_play/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/google_play/mocks/google_play_tracks.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/google_play/test_argument_types.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/google_play/test_google_play.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/mocks/firebase_releases.json +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/test_android_app_bundle.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/test_firebase_app_distribution.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/test_keychain.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/tools/test_universal_apk_generator.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/utilities/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/utilities/decorators/__init__.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/utilities/decorators/test_deprecated.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/utilities/test_backwards_file_reader.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/utilities/test_case_conversion.py +0 -0
- {codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/tests/utilities/test_levenshtein_distance.py +0 -0
- {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.
|
|
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 (>=
|
|
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.
|
|
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 = ">=
|
|
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"
|
|
@@ -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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/__init__.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/app.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/build.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/bundle_id.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/device.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/enums.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/profile.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/apple/resources/resource.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/argument/argument.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/cli_help_formatter.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/cli/cli_process_stream.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/firebase_client.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/google_client.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/release.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google/resources/resource.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/__init__.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/api_client.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/google_play/api_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/mixins/path_finder.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/mixins/running_cli_app.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/mixins/str_converter.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/altool/__init__.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.53.0 → codemagic_cli_tools-0.53.2}/src/codemagic/models/altool/altool.py
RENAMED
|
File without changes
|
|
File without changes
|