codemagic-cli-tools 0.50.4__tar.gz → 0.50.5__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.50.4 → codemagic_cli_tools-0.50.5}/PKG-INFO +1 -1
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/pyproject.toml +1 -1
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/__version__.py +1 -1
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/__version__.py-e +1 -1
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/__init__.py +0 -1
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/cli_app.py +2 -2
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/cli_process.py +0 -23
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/altool/altool.py +10 -84
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/altool/test_altool_retrying.py +4 -43
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/LICENSE +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/README.md +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/api_client.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/api_error.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/api_session.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/apps/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/apps/apps.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/builds/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/builds/builds.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/json_web_token_manager.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/provisioning/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/provisioning/bundle_id_capabilities.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/provisioning/bundle_ids.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/provisioning/devices.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/provisioning/profiles.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/provisioning/signing_certificates.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/resource_manager.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/testflight/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/testflight/beta_groups.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/type_declarations.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/versioning/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/versioning/app_store_version_localizations.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/versioning/app_store_version_submissions.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/versioning/app_store_versions.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/versioning/beta_app_review_submissions.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/versioning/beta_build_localizations.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/versioning/pre_release_versions.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/versioning/review_submission_items.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/app_store_connect/versioning/review_submissions.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/app.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/app_store_version.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/app_store_version_localization.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/app_store_version_submission.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/beta_app_localization.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/beta_app_review_detail.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/beta_app_review_submission.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/beta_build_localization.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/beta_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/build.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/build_beta_detail.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/bundle_id.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/bundle_id_capability.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/device.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/enums.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/error_response.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/pre_release_version.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/profile.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/resource.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/review_submission.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/review_submission_item.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/signing_certificate.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/action.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/argument/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/argument/action_callable.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/argument/argument.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/argument/argument_formatter.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/argument/argument_parser_builder.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/argument/argument_properties.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/argument/common_argument_types.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/argument/typed_cli_argument.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/cli_help_formatter.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/cli_process_stream.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/cli_types.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/colors.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/environment.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/data/jars/bundletool-all-1.13.1.jar +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/errors.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/firebase_client.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/google_client.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resource_managers/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resource_managers/mixins/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resource_managers/mixins/acting_manager_mixin.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resource_managers/mixins/listing_manager_mixin.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resource_managers/release_manager.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resource_managers/resource_manager.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resources/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resources/identifiers/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resources/identifiers/app_identifier.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resources/identifiers/resource_identifier.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resources/release.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resources/release_notes.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resources/resource.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google_play/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google_play/api_client.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google_play/api_error.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google_play/resources/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google_play/resources/edit.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google_play/resources/enums.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google_play/resources/resource.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google_play/resources/track.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/mixins/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/mixins/path_finder.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/mixins/running_cli_app.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/mixins/str_converter.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/altool/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/altool/altool_result.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/altool/enums.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/android_signing_info.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/application_package/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/application_package/abstract_package.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/application_package/ipa.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/application_package/macos_package.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/bundle_id_detector.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/certificate.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/certificate_attributes.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/certificate_p12_exporter.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/code_sign_entitlements.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/code_signing_settings_manager.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/enums.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/export_options.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/json_serializable.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/junit/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/junit/definitions.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/junit/printer.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/keystore.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/pbx_project.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/private_key.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/provisioning_profile.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/simulator/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/simulator/core_simulator_service.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/simulator/runtime.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/simulator/simulator.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/table/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/table/line.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/table/table.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/xcode.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/xcodebuild.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/xcpretty.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/xctests/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/xctests/collector.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/xctests/converter.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/xctests/xcresult.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/xctests/xcresulttool.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/py.typed +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/scripts/code_signing_manager.rb +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/shell_tools/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/shell_tools/abstract_shell_tool.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/shell_tools/keytool.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/_xcode_project/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/_xcode_project/arguments.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/android_app_bundle.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/android_keystore/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/android_keystore/__main__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/android_keystore/android_keystore.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/android_keystore/argument_types.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/android_keystore/arguments.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/__main__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/abstract_base_action.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/app_store_version_localizations_action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/app_store_version_submissions_action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/app_store_versions_action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/apps_action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/beta_app_review_submissions_action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/beta_build_localizations_action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/beta_groups_action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/builds_action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/bundle_ids_action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/certificates_action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/devices_action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/profiles_action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/review_submission_items_actions_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/action_groups/review_submissions_actions_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/actions/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/actions/fetch_signing_files_action.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/actions/latest_build_number_actions.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/actions/publish_action.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/app_store_connect.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/arguments.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/errors.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/mixins/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/mixins/resource_manager_mixin.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/mixins/signing_file_saver_mixin.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/app_store_connect/resource_printer.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/codemagic_cli_tools.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/firebase_app_distribution/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/firebase_app_distribution/__main__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/firebase_app_distribution/action_groups/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/firebase_app_distribution/action_groups/firebase_action_groups.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/firebase_app_distribution/action_groups/releases_action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/firebase_app_distribution/actions/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/firebase_app_distribution/actions/get_latest_build_version_action.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/firebase_app_distribution/argument_types.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/firebase_app_distribution/arguments.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/firebase_app_distribution/errors.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/firebase_app_distribution/firebase_app_distribution.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/firebase_app_distribution/firebase_app_distribution_action.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/firebase_app_distribution/resource_printer.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/git_changelog.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/google_play/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/google_play/__main__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/google_play/action_groups/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/google_play/action_groups/google_play_action_groups.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/google_play/action_groups/tracks_action_group.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/google_play/actions/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/google_play/actions/get_latest_build_number_action.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/google_play/argument_types.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/google_play/arguments.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/google_play/errors.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/google_play/google_play.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/google_play/google_play_base_action.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/keychain.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/universal_apk_generator.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/tools/xcode_project.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/utilities/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/utilities/auditing/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/utilities/auditing/base_auditor.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/utilities/auditing/exception_auditor.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/utilities/auditing/http_request_auditor.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/utilities/backwards_file_reader.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/utilities/case_conversion.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/utilities/decorators.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/utilities/levenshtein_distance.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/utilities/log.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/utilities/versions.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/apps/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/apps/test_apps.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/builds/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/builds/test_builds.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/provisioning/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/provisioning/conftest.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/provisioning/test_bundle_id_capabilities.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/provisioning/test_bundle_ids.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/provisioning/test_devices.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/provisioning/test_profiles.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/provisioning/test_signing_certificates.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/resource_manager_test_base.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/test_api_client.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/test_api_session.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/test_json_web_token_manager.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/test_resource_manager.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/testflight/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/testflight/test_beta_groups.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/versioning/test_app_store_version_localizations.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/versioning/test_app_store_version_submissions.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/versioning/test_app_store_versions.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/versioning/test_beta_app_review_submissions.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/versioning/test_beta_build_localizations.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/versioning/test_pre_release_versions.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/versioning/test_review_submission_items.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/app_store_connect/versioning/test_review_submissions.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/conftest.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/enums/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/enums/test_capability_type.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/enums/test_certificate_type.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/enums/test_profile_type.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/mocks/app_store_version.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/mocks/build.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/mocks/bundle_id.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/mocks/bundle_id_capability.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/mocks/certificate.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/mocks/device.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/mocks/error_response.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/mocks/error_response_entity_state_invalid.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/mocks/error_response_with_links.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/mocks/mock_resource.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/mocks/pre_release_version.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/mocks/profile.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/test_app_store_version_resource.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/test_build_resource.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/test_bundle_id_capability_resource.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/test_bundle_id_resource.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/test_device_resource.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/test_error_response.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/test_pre_release_version_resource.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/test_profile_resource.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/test_resource.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/test_signing_certificate_resource.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/apple/resources/test_undefined_resource_fields.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/cli/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/cli/argument/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/cli/argument/common_argument_types/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/cli/argument/common_argument_types/test_bounded_number.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/cli/argument/common_argument_types/test_iso_8601_datetime.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/cli/argument/common_argument_types/test_maybe_dir.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/cli/argument/test_argument.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/cli/mocks/utf-8-sample.txt +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/cli/test_cli_process.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/cli/test_decorators.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/conftest.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/google/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/google/conftest.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/google/test_firebase_client.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/google/test_live_firebase_client.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/google_play/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/google_play/resources/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/google_play/resources/conftest.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/google_play/resources/mocks/edit.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/google_play/resources/mocks/track.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/google_play/resources/test_edit_resource.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/google_play/resources/test_resource_print.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/google_play/resources/test_track_resource.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/google_play/test_api_client.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/mixins/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/mixins/test_string_converter.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/mocks/certificate.asn1 +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/mocks/encrypted.pem +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/mocks/encrypted.pem.pub +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/mocks/unencrypted.pem +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/mocks/unencrypted.pem.pub +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/altool/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/altool/mocks/mock_failure_auth.txt +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/altool/mocks/mock_failure_other.txt +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/altool/mocks/mock_upload_success.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/altool/mocks/mock_validation_failure.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/altool/test_altool_result.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/conftest.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/enums/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/enums/test_resource_enum.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/junit/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/junit/mocks/testsuite.xml +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/junit/test_xml_generation.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/mocks/certificate-no-password.p12 +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/mocks/certificate.p12 +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/mocks/codemagic_io_wildcard_development.mobileprovision +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/mocks/export_options.plist +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/mocks/mock.ipa +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/mocks/mock.xcarchive/Products/Applications/Capybara App.app/Capybara App +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/mocks/mock_0_icloud_container_environments.plist +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/mocks/mock_1_icloud_container_environments.plist +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/mocks/mock_2_icloud_container_environments.plist +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/mocks/mock_openssh_private_key +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/mocks/mock_rsa_private_key +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/mocks/mock_xcode/Contents/version.plist +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/simulator/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/simulator/mocks/devices.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/simulator/mocks/simulator.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/simulator/test_runtime.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/simulator/test_simulator.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/test_certificate.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/test_certificate_attributes.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/test_code_sign_entitlements.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/test_export_options.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/test_private_key.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/test_provisioning_profile.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/test_table.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/test_xcode.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/conftest.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/mocks/0_1NtPgUPcB1A83X977l5Q91ElstUeVDnqAhumk_VJG8DIS4GA1sb8ElPPHZZGYEHmNvnHU1VVaPDCw1tI8n3uXg__.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/mocks/0_5rAUs3HknUI7DU8Jyc5RlFcosqCXTOV-qwOaOE1Mul_ppK8QCta-NSxxCdtVg6i12km4zTR5l0SjgzfHGUNxog__.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/mocks/0_97T9qQZ3dEI1oDS6NvYTPcFk_jUXFJ0NRwyd5FZ2S585JGMtlqbF28Hc85yeifgKEnNoInoW93Za9c5QJCspeQ__.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/mocks/0_DVcJZnHFaQQlzl8czovv7RuDRQIToEr5_3lLe-Mn1Sm6VreJ5xoXEFqBaWNv0XRmSg00NJ77XzQKgddhfkuk7w__.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/mocks/0_FZMbIp5VAUEiJv1wUUM-K78Dtmb4o-titbTusDJqRuarbS9OatzAykygXo4NUqEoR9sxCIoeu8VDioQmbba6mw__.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/mocks/0_Hj6SOUxY1APmxdQEA2HdqbA52GD3WJE571nqr_Z-w8vi_buxP-GUjNxCsGYQvnKnnwlyykwxY-KJmjqKYmPyXQ__.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/mocks/0_NnCmQ8rMqVyUBgL3ZDjfjJ9Vt1AMGeMzZPkDH30rGMYer0pFDpp4UDZlCEHRImO-48LdC_KdcbjP70IZA6zKUQ__.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/mocks/0_YK9aPHVT-grv_ZVooRT79GBO9n82BNogkuWVzFO6itJEtbtsRTQpK2-0ZDLot1JpCfPb26aZwEZjeb9G4GHiBQ__.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/mocks/0__H1_RrdBT9b-ZhkWCQiRKpHlwURmyWUudeOhj5UslLXhXl8mr9w5CGqdobi9A5wCVEIRMsO4yuFyzx2gMPr-_Q__.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/mocks/0_evvkuGf92MVrmIvhr07911LuRTiPBKDjIQ0q_7L-mPGGYkWVKMBPQ5pB5lbjoaOnvr0fpC9k003EunfwSdss2g__.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/mocks/actions_invocation_record.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/test_collector.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/test_converter.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/models/xctests/test_xcresult.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/shell_tools/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/shell_tools/keytool/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/shell_tools/keytool/conftest.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/shell_tools/keytool/mocks/android.ks +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/shell_tools/keytool/mocks/non-rfc-cert-keystore.jks +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/shell_tools/keytool/mocks/non-rfc-cert-keystore.p12 +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/shell_tools/keytool/mocks/rfc-cert-keystore.jks +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/shell_tools/keytool/mocks/rfc-cert-keystore.p12 +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/shell_tools/keytool/test_get_certificate.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/shell_tools/keytool/test_get_certificates.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/shell_tools/keytool/test_validate.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/app_store_connect/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/app_store_connect/arguments/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/app_store_connect/arguments/test_beta_build_localizations.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/app_store_connect/conftest.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/app_store_connect/mocks/AuthKeyMock.p8 +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/app_store_connect/test_from_cli_args.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/app_store_connect/test_publish_action.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/mocks/firebase_releases.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/mocks/google_play_tracks.json +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/test_android_app_bundle.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/test_firebase_app_distribution.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/test_google_play.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/test_keychain.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/tools/test_universal_apk_generator.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/utilities/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/utilities/decorators/__init__.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/utilities/decorators/test_deprecated.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/utilities/test_backwards_file_reader.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/utilities/test_case_conversion.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/utilities/test_levenshtein_distance.py +0 -0
- {codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/tests/utilities/test_versions.py +0 -0
|
@@ -11,6 +11,5 @@ from .cli_app import CliApp
|
|
|
11
11
|
from .cli_app import CliAppException
|
|
12
12
|
from .cli_app import common_arguments
|
|
13
13
|
from .cli_process import CliProcess
|
|
14
|
-
from .cli_process import CliProcessHealthCheckError
|
|
15
14
|
from .cli_types import CommandArg
|
|
16
15
|
from .colors import Colors
|
|
@@ -392,7 +392,7 @@ class CliApp(metaclass=abc.ABCMeta):
|
|
|
392
392
|
ArgumentParserBuilder(cls, main_or_group_action, deprecated_action_parsers, for_deprecated_alias=True).build()
|
|
393
393
|
CliHelpFormatter.suppress_deprecated_action(main_or_group_action.deprecation_info.alias)
|
|
394
394
|
|
|
395
|
-
def
|
|
395
|
+
def _obfuscate_command(
|
|
396
396
|
self,
|
|
397
397
|
command_args: Sequence[CommandArg],
|
|
398
398
|
obfuscate_patterns: Optional[Iterable[ObfuscationPattern]] = None,
|
|
@@ -443,7 +443,7 @@ class CliApp(metaclass=abc.ABCMeta):
|
|
|
443
443
|
|
|
444
444
|
return CliProcess(
|
|
445
445
|
command_args,
|
|
446
|
-
self.
|
|
446
|
+
self._obfuscate_command(command_args, obfuscate_patterns),
|
|
447
447
|
dry=self.dry_run,
|
|
448
448
|
print_streams=print_streams,
|
|
449
449
|
).execute(**execute_kwargs)
|
|
@@ -7,7 +7,6 @@ import subprocess
|
|
|
7
7
|
import sys
|
|
8
8
|
import time
|
|
9
9
|
from typing import IO
|
|
10
|
-
from typing import Callable
|
|
11
10
|
from typing import Dict
|
|
12
11
|
from typing import Optional
|
|
13
12
|
from typing import Sequence
|
|
@@ -20,10 +19,6 @@ from .cli_types import CommandArg
|
|
|
20
19
|
from .cli_types import ObfuscatedCommand
|
|
21
20
|
|
|
22
21
|
|
|
23
|
-
class CliProcessHealthCheckError(Exception):
|
|
24
|
-
pass
|
|
25
|
-
|
|
26
|
-
|
|
27
22
|
class CliProcess:
|
|
28
23
|
def __init__(
|
|
29
24
|
self,
|
|
@@ -31,8 +26,6 @@ class CliProcess:
|
|
|
31
26
|
safe_form: Optional[ObfuscatedCommand] = None,
|
|
32
27
|
print_streams: bool = True,
|
|
33
28
|
dry: bool = False,
|
|
34
|
-
process_health_check: Optional[Callable[[CliProcess], bool]] = None,
|
|
35
|
-
process_health_check_interval: float = 10,
|
|
36
29
|
):
|
|
37
30
|
self.logger = log.get_logger(self.__class__)
|
|
38
31
|
self.duration: float = 0
|
|
@@ -49,9 +42,6 @@ class CliProcess:
|
|
|
49
42
|
self._stderr = ""
|
|
50
43
|
self._stdout_stream: Optional[CliProcessStream] = None
|
|
51
44
|
self._stderr_stream: Optional[CliProcessStream] = None
|
|
52
|
-
self._process_health_check = process_health_check
|
|
53
|
-
self._process_health_check_interval = process_health_check_interval
|
|
54
|
-
self._process_health_check_at: Optional[float] = None
|
|
55
45
|
|
|
56
46
|
@property
|
|
57
47
|
def stdout(self) -> str:
|
|
@@ -86,18 +76,6 @@ class CliProcess:
|
|
|
86
76
|
if self._stderr_stream:
|
|
87
77
|
self._stderr += self._stderr_stream.process_buffer(buffer_size, self._print_streams)
|
|
88
78
|
|
|
89
|
-
def _check_process_health(self):
|
|
90
|
-
if not self._process_health_check:
|
|
91
|
-
return
|
|
92
|
-
|
|
93
|
-
now = time.time()
|
|
94
|
-
if self._process_health_check_at and now - self._process_health_check_at < self._process_health_check_interval:
|
|
95
|
-
return
|
|
96
|
-
|
|
97
|
-
self._process_health_check_at = now
|
|
98
|
-
if not self._process_health_check(self):
|
|
99
|
-
raise CliProcessHealthCheckError("Process health check failed")
|
|
100
|
-
|
|
101
79
|
def _configure_process_streams(self):
|
|
102
80
|
if self._process.stdout:
|
|
103
81
|
self._stdout_stream = CliProcessStream.create(self._process.stdout, sys.stdout, blocking=False)
|
|
@@ -124,7 +102,6 @@ class CliProcess:
|
|
|
124
102
|
self._configure_process_streams()
|
|
125
103
|
while self._process.poll() is None:
|
|
126
104
|
self._handle_streams(self._buffer_size)
|
|
127
|
-
self._check_process_health()
|
|
128
105
|
time.sleep(poll_interval)
|
|
129
106
|
self._handle_streams()
|
|
130
107
|
finally:
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/altool/altool.py
RENAMED
|
@@ -7,7 +7,6 @@ import re
|
|
|
7
7
|
import subprocess
|
|
8
8
|
import time
|
|
9
9
|
from contextlib import contextmanager
|
|
10
|
-
from datetime import datetime
|
|
11
10
|
from functools import lru_cache
|
|
12
11
|
from typing import TYPE_CHECKING
|
|
13
12
|
from typing import AnyStr
|
|
@@ -17,12 +16,9 @@ from typing import Optional
|
|
|
17
16
|
from typing import Sequence
|
|
18
17
|
from typing import Tuple
|
|
19
18
|
from typing import Union
|
|
20
|
-
from typing import cast
|
|
21
19
|
|
|
22
20
|
import psutil
|
|
23
21
|
|
|
24
|
-
from codemagic.cli import CliProcess
|
|
25
|
-
from codemagic.cli import CliProcessHealthCheckError
|
|
26
22
|
from codemagic.cli import environment
|
|
27
23
|
from codemagic.mixins import RunningCliAppMixin
|
|
28
24
|
from codemagic.mixins import StringConverterMixin
|
|
@@ -47,10 +43,6 @@ class AltoolCommandError(Exception):
|
|
|
47
43
|
self.process_output = process_output
|
|
48
44
|
|
|
49
45
|
|
|
50
|
-
class CFNetworkingRetryError(AltoolCommandError):
|
|
51
|
-
pass
|
|
52
|
-
|
|
53
|
-
|
|
54
46
|
class Altool(RunningCliAppMixin, StringConverterMixin):
|
|
55
47
|
def __init__(
|
|
56
48
|
self,
|
|
@@ -203,7 +195,7 @@ class Altool(RunningCliAppMixin, StringConverterMixin):
|
|
|
203
195
|
return self._run_command(command, f'Failed to {action_name} archive at "{artifact_path}"', cli_app)
|
|
204
196
|
except AltoolCommandError as error:
|
|
205
197
|
has_retries = retries > 0
|
|
206
|
-
should_retry = self._should_retry_command(error)
|
|
198
|
+
should_retry = self._should_retry_command(error.process_output)
|
|
207
199
|
if has_retries and should_retry:
|
|
208
200
|
if attempt == 1:
|
|
209
201
|
print_fn(f"Failed to {action_name} archive, but this might be a temporary issue, retrying...")
|
|
@@ -242,28 +234,21 @@ class Altool(RunningCliAppMixin, StringConverterMixin):
|
|
|
242
234
|
cli_app: Optional[CliApp],
|
|
243
235
|
) -> Optional[AltoolResult]:
|
|
244
236
|
obfuscate_patterns = [self._password] if self._password else []
|
|
245
|
-
process = None
|
|
246
237
|
try:
|
|
247
238
|
if cli_app:
|
|
248
|
-
|
|
249
|
-
process = CliProcess(
|
|
239
|
+
process = cli_app.execute(
|
|
250
240
|
command,
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
process_health_check=lambda _: logs_inspector.get_estimated_errors_count() < 100,
|
|
255
|
-
process_health_check_interval=10,
|
|
241
|
+
obfuscate_patterns,
|
|
242
|
+
show_output=False,
|
|
243
|
+
stderr=subprocess.STDOUT,
|
|
256
244
|
)
|
|
257
|
-
process.execute(stderr=subprocess.STDOUT)
|
|
258
245
|
stdout = process.stdout
|
|
259
246
|
process.raise_for_returncode()
|
|
260
247
|
else:
|
|
261
|
-
stdout = subprocess.check_output(
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
process.stdout if process else "",
|
|
266
|
-
) from hce
|
|
248
|
+
stdout = subprocess.check_output(
|
|
249
|
+
command,
|
|
250
|
+
stderr=subprocess.STDOUT,
|
|
251
|
+
).decode()
|
|
267
252
|
except subprocess.CalledProcessError as cpe:
|
|
268
253
|
result = self._get_action_result(cpe.stdout)
|
|
269
254
|
if result and result.product_errors:
|
|
@@ -301,16 +286,12 @@ class Altool(RunningCliAppMixin, StringConverterMixin):
|
|
|
301
286
|
return output
|
|
302
287
|
|
|
303
288
|
@classmethod
|
|
304
|
-
def _should_retry_command(cls,
|
|
305
|
-
if isinstance(error, CFNetworkingRetryError):
|
|
306
|
-
return True
|
|
307
|
-
|
|
289
|
+
def _should_retry_command(cls, process_output: str):
|
|
308
290
|
patterns = (
|
|
309
291
|
re.compile("Unable to authenticate.*-19209"),
|
|
310
292
|
re.compile("server returned an invalid response.*try your request again"),
|
|
311
293
|
re.compile("The request timed out."),
|
|
312
294
|
)
|
|
313
|
-
process_output = cast(AltoolCommandError, error).process_output
|
|
314
295
|
return any(pattern.search(process_output) for pattern in patterns)
|
|
315
296
|
|
|
316
297
|
@classmethod
|
|
@@ -336,58 +317,3 @@ class Altool(RunningCliAppMixin, StringConverterMixin):
|
|
|
336
317
|
cli_app.echo(prettified_result)
|
|
337
318
|
else:
|
|
338
319
|
print(prettified_result)
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
class CFNetworkErrorLogsInspector:
|
|
342
|
-
ERROR_PATTERN = re.compile(r"^Task <[\w-]+>\.<(\d+)> finished with error")
|
|
343
|
-
|
|
344
|
-
def __init__(self, process: str, start: datetime):
|
|
345
|
-
self.logger = log.get_file_logger(self.__class__)
|
|
346
|
-
predicate = " and ".join(
|
|
347
|
-
[
|
|
348
|
-
'subsystem=="com.apple.CFNetwork"',
|
|
349
|
-
f'process=="{process}"',
|
|
350
|
-
'eventMessage contains "finished with error"',
|
|
351
|
-
'eventMessage contains "Error Domain=NSURLErrorDomain"',
|
|
352
|
-
'eventMessage contains "Code=-1003"',
|
|
353
|
-
],
|
|
354
|
-
)
|
|
355
|
-
self.logs_command = (
|
|
356
|
-
"log",
|
|
357
|
-
"show",
|
|
358
|
-
"--no-backtrace",
|
|
359
|
-
"--no-debug",
|
|
360
|
-
"--no-info",
|
|
361
|
-
"--no-pager",
|
|
362
|
-
*("--start", start.strftime("%Y-%m-%d %H:%M:%S")),
|
|
363
|
-
*("--predicate", predicate),
|
|
364
|
-
*("--style", "ndjson"),
|
|
365
|
-
)
|
|
366
|
-
|
|
367
|
-
def iter_log_entries(self):
|
|
368
|
-
start = time.time()
|
|
369
|
-
try:
|
|
370
|
-
cp = subprocess.run(
|
|
371
|
-
self.logs_command,
|
|
372
|
-
capture_output=True,
|
|
373
|
-
check=True,
|
|
374
|
-
timeout=10,
|
|
375
|
-
)
|
|
376
|
-
except (subprocess.CalledProcessError, subprocess.TimeoutExpired):
|
|
377
|
-
self.logger.exception("Checking CFNetwork error logs failed")
|
|
378
|
-
return
|
|
379
|
-
finally:
|
|
380
|
-
self.logger.debug(f"Completed CFNetwork error logs check in {time.time() - start:.2f}s")
|
|
381
|
-
|
|
382
|
-
for line in cp.stdout.splitlines():
|
|
383
|
-
try:
|
|
384
|
-
log_entry = json.loads(line)
|
|
385
|
-
if log_entry.get("eventMessage") is not None:
|
|
386
|
-
yield log_entry
|
|
387
|
-
except ValueError:
|
|
388
|
-
pass
|
|
389
|
-
|
|
390
|
-
def get_estimated_errors_count(self) -> int:
|
|
391
|
-
count = sum(1 for log_entry in self.iter_log_entries() if self.ERROR_PATTERN.match(log_entry["eventMessage"]))
|
|
392
|
-
self.logger.debug(f"Found {count} log that hint indefinite CFNetwork retry loop")
|
|
393
|
-
return count
|
|
@@ -1,38 +1,25 @@
|
|
|
1
1
|
import json
|
|
2
2
|
import pathlib
|
|
3
|
+
from types import SimpleNamespace
|
|
3
4
|
from unittest import mock
|
|
4
5
|
|
|
5
6
|
import pytest
|
|
6
7
|
from codemagic.models import Altool
|
|
7
8
|
from codemagic.models.altool import AltoolResult
|
|
8
9
|
from codemagic.models.altool.altool import AltoolCommandError
|
|
9
|
-
from codemagic.models.altool.altool import CFNetworkErrorLogsInspector
|
|
10
10
|
from codemagic.models.altool.altool import PlatformType
|
|
11
11
|
|
|
12
12
|
|
|
13
13
|
@pytest.fixture
|
|
14
|
-
def
|
|
15
|
-
return mock.MagicMock()
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
@pytest.fixture
|
|
19
|
-
def mock_cli_app(mock_echo):
|
|
20
|
-
return mock.MagicMock(
|
|
21
|
-
echo=mock_echo,
|
|
22
|
-
verbose=False,
|
|
23
|
-
obfuscate_command=lambda cmd, _: cmd,
|
|
24
|
-
)
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
@pytest.fixture
|
|
28
|
-
def mock_altool(mock_cli_app):
|
|
14
|
+
def mock_altool():
|
|
29
15
|
Altool._ensure_altool = mock.Mock(return_value=True)
|
|
30
16
|
altool = Altool(
|
|
31
17
|
username="user@example.com",
|
|
32
18
|
password="xxxx-yyyy-zzzz-wwww",
|
|
33
19
|
)
|
|
20
|
+
mock_echo = mock.MagicMock()
|
|
34
21
|
altool._kill_xcode_processes_for_retrying = mock.Mock()
|
|
35
|
-
altool.get_current_cli_app = lambda:
|
|
22
|
+
altool.get_current_cli_app = lambda: SimpleNamespace(echo=mock_echo)
|
|
36
23
|
return altool
|
|
37
24
|
|
|
38
25
|
|
|
@@ -158,29 +145,3 @@ def test_retrying_command_immediate_success(mock_altool, mock_success_stdout, mo
|
|
|
158
145
|
with mock.patch.object(mock_altool, "_run_command", side_effect=[mock_success_result]):
|
|
159
146
|
result = mock_altool.upload_app(pathlib.Path("app.ipa"), retries=100, retry_wait_seconds=0)
|
|
160
147
|
assert result is mock_success_result
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
@mock.patch("codemagic.cli.cli_process.subprocess.Popen")
|
|
164
|
-
@mock.patch.object(CFNetworkErrorLogsInspector, "iter_log_entries")
|
|
165
|
-
@mock.patch.object(PlatformType, "from_path", lambda _artifact_path: PlatformType.IOS)
|
|
166
|
-
def test_cf_networking_error_retrying(mock_iter_log_entries, mock_popen, mock_altool, mock_echo):
|
|
167
|
-
mock_popen.return_value = mock.MagicMock(
|
|
168
|
-
poll=mock.MagicMock(return_value=None),
|
|
169
|
-
stdout=mock.MagicMock(read=mock.MagicMock(return_value=b"")),
|
|
170
|
-
)
|
|
171
|
-
event_message = "Task <0E1A3630>.<123> finished with error [-1003] Error Domain=NSURLErrorDomain Code=-1003 "
|
|
172
|
-
mock_iter_log_entries.return_value = [{"eventMessage": event_message} for _ in range(101)]
|
|
173
|
-
|
|
174
|
-
with pytest.raises(IOError) as exc_info:
|
|
175
|
-
mock_altool.upload_app(
|
|
176
|
-
pathlib.Path("app.ipa"),
|
|
177
|
-
retries=2,
|
|
178
|
-
)
|
|
179
|
-
|
|
180
|
-
assert str(exc_info.value) == 'Failed to upload archive at "app.ipa": Connection to Apple\'s cloud storage failed'
|
|
181
|
-
mock_echo.assert_has_calls(
|
|
182
|
-
[
|
|
183
|
-
mock.call("Failed to upload archive, but this might be a temporary issue, retrying..."),
|
|
184
|
-
mock.call("Attempt #2 to upload failed."),
|
|
185
|
-
],
|
|
186
|
-
)
|
|
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.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/__init__.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/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
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/build.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/bundle_id.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/device.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/enums.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/apple/resources/profile.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/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
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/argument/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/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
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/cli/cli_help_formatter.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/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.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/firebase_client.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/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.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resources/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resources/release.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google/resources/resource.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google_play/__init__.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/google_play/api_client.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/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.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/mixins/path_finder.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/mixins/running_cli_app.py
RENAMED
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/mixins/str_converter.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/altool/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{codemagic_cli_tools-0.50.4 → codemagic_cli_tools-0.50.5}/src/codemagic/models/altool/enums.py
RENAMED
|
File without changes
|
|
File without changes
|