pulpcore 3.28.28__tar.gz → 3.28.30__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.
- {pulpcore-3.28.28 → pulpcore-3.28.30}/CHANGES.md +32 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/PKG-INFO +1 -1
- {pulpcore-3.28.28 → pulpcore-3.28.30}/functest_requirements.txt +0 -2
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/apps.py +1 -1
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/checks.py +1 -1
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/settings.py +2 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/templatetags/pulp_urls.py +7 -4
- pulpcore-3.28.30/pulpcore/tests/unit/test_pulp_urls.py +58 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore.egg-info/PKG-INFO +1 -1
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore.egg-info/SOURCES.txt +1 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore.egg-info/requires.txt +1 -1
- {pulpcore-3.28.28 → pulpcore-3.28.30}/requirements.txt +1 -1
- {pulpcore-3.28.28 → pulpcore-3.28.30}/setup.py +1 -1
- {pulpcore-3.28.28 → pulpcore-3.28.30}/CODE_OF_CONDUCT.md +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/COMMITMENT +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/CONTRIBUTING.md +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/COPYRIGHT +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/LICENSE +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/MANIFEST.in +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/README.md +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/bin/pulp-content +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/ci_requirements.txt +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/manage.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/access_policy.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/authentication.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/files.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/global_access_conditions.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/importexport.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/loggers.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/manage.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/add-signing-service.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/analyze-publication.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/datarepair-2327.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/dump-permissions.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/dump-publications-to-fs.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/handle-artifact-checksums.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/openapi.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/remove-plugin.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/remove-signing-service.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/reset-admin-password.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/rotate-db-key.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0001_initial.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0002_increase_artifact_size_field.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0003_remove_upload_completed.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0004_add_duplicated_reserved_resources.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0005_progressreport_code.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0006_repository_plugin_managed.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0007_delete_progress_proxies.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0008_published_metadata_as_content.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0009_remove_task_non_fatal_errors.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0010_pulp_fields.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0011_relative_path.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0012_auto_20191104_2000.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0013_repository_pulp_type.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0014_remove_repository_plugin_managed.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0015_auto_20191112_1426.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0016_charfield_to_textfield.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0017_remove_task_parent.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0018_auto_20191127_2350.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0019_add_signing_service_model.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0020_change_publishedartifact_constraints.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0021_add_signing_service_foreign_key.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0022_rename_last_version.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0023_change_exporter_models.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0024_use_local_storage_for_uploads.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0025_task_parent_task.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0026_task_group.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0027_export_backend.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0028_import_importer_pulpimporter_pulpimporterrepository.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0029_export_delete.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0030_taskgroup_all_tasks_dispatched.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0031_import_export_validate_params.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0032_export_to_chunks.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0033_increase_remote_artifact_size_field.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0034_groupprogressreport.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0035_content_upstream_id.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0036_unprotect_last_export.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0037_pulptemporaryfile.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0038_repository_remote.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0039_change_download_concurrency.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0040_set_admin_is_staff.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0041_accesspolicy.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0042_rbac_for_tasks.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0043_toc_attribute.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0044_temp_file_artifact_field.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0045_accesspolicy_permissions_allow_null.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0046_task__resource_job_id.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0047_improve_orphan_cleanup.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0048_fips_checksums.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0049_add_file_field_to_uploadchunk.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0050_namespace_access_policies.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0051_timeoutfields.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0052_tasking_logging_cid.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0053_remote_headers.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0054_add_public_key.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0055_label.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0056_remote_rate_limit.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0057_add_label_indexes.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0058_accesspolicy_customized.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0059_proxy_creds.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0060_data_migration_proxy_creds.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0061_call_handle_artifact_checksums_command.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0062_add_new_distribution_mastermodel.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0063_repository_retained_versions.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0064_add_new_style_task_columns.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0064_repository_user_hidden.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0065_merge_20210615_1211.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0066_download_concurrency_and_retry_changes.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0067_add_protect_to_task_reservation.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0068_add_timestamp_of_interest.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0069_update_json_fields.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0070_rename_retained_versions.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0071_filesystemexport_filesystemexporter.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0072_add_method_to_filesystem_exporter.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0073_encrypt_remote_fields.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0074_acs.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0075_rbaccontentguard.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0076_remove_reserved_resource.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0077_move_remote_url_credentials.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0078_grouprole_role_userrole.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0079_rename_permissions_assignment_accesspolicy_creation_hooks.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0080_proxy_group_model.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0081_reapplabel_group_permissions.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0082_add_manage_roles_permissions.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0083_alter_group_options.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0084_alter_rbaccontentguard_options.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0085_contentredirectcontentguard.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0086_task_json_fields.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0087_taskschedule.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0088_accesspolicy_queryset_scoping.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0089_alter_contentredirectcontentguard_options.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0090_char_to_text_field.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0091_systemid.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0092_alter_upload_options.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0093_add_info_field_repositoryversion.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0094_protect_repository_content.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0095_artifactdistribution.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0096_alter_task_logging_cid.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0097_remove_telemetry_task_schedule.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0098_pulp_labels.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0099_versions_field.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0100_upstreampulp.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0101_add_domain.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0102_add_domain_relations.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0103_alter_export_task.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0104_delete_label.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0105_abstract_uuid_gen.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0106_alter_artifactdistribution_distribution_ptr_and_more.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0107_distribution_hidden.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/mime_types.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/modelresource.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/access_policy.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/acs.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/analytics.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/base.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/content.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/domain.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/exporter.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/fields.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/generic.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/importer.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/progress.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/publication.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/replica.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/repository.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/role.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/status.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/storage.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/task.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/models/upload.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/monkeypatch.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/protobuf/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/protobuf/analytics_pb2.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/pulp_hashlib.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/redis_connection.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/replica.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/response.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/role_util.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/access_policy.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/acs.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/base.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/content.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/domain.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/exporter.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/fields.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/importer.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/orphans.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/progress.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/publication.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/purge.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/reclaim.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/repair.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/replica.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/repository.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/status.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/task.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/upload.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/serializers/user.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/tasks/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/tasks/analytics.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/tasks/base.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/tasks/export.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/tasks/importer.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/tasks/orphan.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/tasks/purge.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/tasks/reclaim_space.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/tasks/replica.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/tasks/repository.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/tasks/test.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/tasks/upload.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/templates/rest_framework/api.html +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/templatetags/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/urls.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/util.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/views/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/views/importer.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/views/orphans.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/views/repair.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/views/status.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/access_policy.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/acs.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/base.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/content.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/custom_filters.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/domain.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/exporter.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/importer.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/orphans.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/publication.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/reclaim.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/replica.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/repository.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/task.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/upload.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/viewsets/user.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/wsgi.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/backends.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/cache/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/cache/cache.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/constants.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/content/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/content/authentication.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/content/handler.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/download/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/download/base.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/download/factory.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/download/file.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/download/http.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/exceptions/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/exceptions/base.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/exceptions/plugin.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/exceptions/validation.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/filters.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/middleware.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/openapi/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/access_policy.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/actions.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/apps.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/authentication/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/cache/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/constants.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/content.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/download/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/exceptions.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/files.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/importexport.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/modelresources.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/models/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/models/role.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/publication_utils.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/pulp_hashlib.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/replica.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/repo_version_utils.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/responses.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/serializers/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/serializers/content.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/stages/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/stages/api.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/stages/artifact_stages.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/stages/content_stages.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/stages/declarative_version.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/stages/models.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/storage.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/sync.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/tasking.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/util.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/viewsets/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/plugin/viewsets/content.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/responses.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tasking/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tasking/constants.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tasking/entrypoint.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tasking/pulpcore_worker.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tasking/storage.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tasking/tasks.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tasking/util.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_access_policy.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_api_docs.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_artifact_distribution.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_auth.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_correlation_id.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_crd_artifacts.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_crud_domains.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_filter.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_openapi_schema.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_replication.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_repos.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_role.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_root_endpoint.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_scoping.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_signing_service.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_status.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_tasking.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_upload.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_users_groups.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/test_workers.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/using_plugin/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/api/using_plugin/test_content_directory.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/content_with_coverage.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/gpg_ascii_armor_signing_service.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/functional/utils.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/conftest.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/content/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/content/test_handler.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/content/test_heartbeat.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/download/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/download/test_downloader_base.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/download/test_downloader_factory.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/migration/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/migration/test_0077_move_remote_url_credentials.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/models/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/models/test_base.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/models/test_content.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/models/test_remote.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/models/test_repository.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/roles/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/roles/test_roles.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/serializers/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/serializers/test_base.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/serializers/test_domain.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/serializers/test_pulpexport.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/serializers/test_repository.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/stages/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/stages/test_artifactdownloader.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/stages/test_stages.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/test_cache.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/test_content_guard.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/test_files.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/test_import_checks.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/test_settings.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/test_util.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/viewsets/__init__.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/tests/unit/viewsets/test_viewset_base.py +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore.egg-info/dependency_links.txt +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore.egg-info/entry_points.txt +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore.egg-info/top_level.txt +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/pyproject.toml +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/setup.cfg +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/test_requirements.txt +0 -0
- {pulpcore-3.28.28 → pulpcore-3.28.30}/unittest_requirements.txt +0 -0
|
@@ -8,6 +8,38 @@
|
|
|
8
8
|
|
|
9
9
|
[//]: # (towncrier release notes start)
|
|
10
10
|
|
|
11
|
+
## 3.28.30 (2024-07-16) {: #3.28.30 }
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### REST API {: #3.28.30-rest-api }
|
|
15
|
+
|
|
16
|
+
#### Bugfixes {: #3.28.30-rest-api-bugfix }
|
|
17
|
+
|
|
18
|
+
- Browsable HREFs now have clickable links again.
|
|
19
|
+
[#5563](https://github.com/pulp/pulpcore/issues/5563)
|
|
20
|
+
|
|
21
|
+
### Plugin API {: #3.28.30-plugin-api }
|
|
22
|
+
|
|
23
|
+
No significant changes.
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 3.28.29 (2024-06-24) {: #3.28.29 }
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
### REST API {: #3.28.29-rest-api }
|
|
31
|
+
|
|
32
|
+
#### Bugfixes {: #3.28.29-rest-api-bugfix }
|
|
33
|
+
|
|
34
|
+
- Fixed openapi command where plugins relied on CONTENT_ORIGIN to be set.
|
|
35
|
+
[#5510](https://github.com/pulp/pulpcore/issues/5510)
|
|
36
|
+
|
|
37
|
+
### Plugin API {: #3.28.29-plugin-api }
|
|
38
|
+
|
|
39
|
+
No significant changes.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
11
43
|
## 3.28.28 (2024-06-18) {: #3.28.28 }
|
|
12
44
|
|
|
13
45
|
|
|
@@ -7,7 +7,7 @@ from django.core.checks import Error as CheckError, Warning as CheckWarning, reg
|
|
|
7
7
|
@register(deploy=True)
|
|
8
8
|
def content_origin_check(app_configs, **kwargs):
|
|
9
9
|
messages = []
|
|
10
|
-
if
|
|
10
|
+
if getattr(settings, "CONTENT_ORIGIN", "UNREACHABLE") == "UNREACHABLE":
|
|
11
11
|
messages.append(
|
|
12
12
|
CheckError(
|
|
13
13
|
"CONTENT_ORIGIN is a required setting but it was not configured. This may be "
|
|
@@ -235,6 +235,8 @@ LOGGING = {
|
|
|
235
235
|
|
|
236
236
|
DRF_ACCESS_POLICY = {"reusable_conditions": ["pulpcore.app.global_access_conditions"]}
|
|
237
237
|
|
|
238
|
+
# This is a sentinal value for deploy checks, since we don't want to set a default one.
|
|
239
|
+
CONTENT_ORIGIN = "UNREACHABLE"
|
|
238
240
|
CONTENT_PATH_PREFIX = "/pulp/content/"
|
|
239
241
|
CONTENT_APP_TTL = 30
|
|
240
242
|
|
|
@@ -3,7 +3,7 @@ import re
|
|
|
3
3
|
from django import template
|
|
4
4
|
from django.conf import settings
|
|
5
5
|
from django.utils.encoding import force_str
|
|
6
|
-
from django.utils.html import escape
|
|
6
|
+
from django.utils.html import escape, smart_urlquote
|
|
7
7
|
from django.utils.safestring import SafeData, mark_safe
|
|
8
8
|
|
|
9
9
|
register = template.Library()
|
|
@@ -20,6 +20,8 @@ WRAPPING_PUNCTUATION = [
|
|
|
20
20
|
(""", """),
|
|
21
21
|
]
|
|
22
22
|
word_split_re = re.compile(r"(\s+)")
|
|
23
|
+
api_root_prefix = r"^" + settings.V3_API_ROOT.replace("/", r"\/")
|
|
24
|
+
href_re = re.compile(api_root_prefix, re.IGNORECASE)
|
|
23
25
|
|
|
24
26
|
|
|
25
27
|
@register.filter(needs_autoescape=True)
|
|
@@ -57,6 +59,9 @@ def urlize_quoted_hrefs(text, trim_url_limit=None, nofollow=True, autoescape=Tru
|
|
|
57
59
|
url = None
|
|
58
60
|
nofollow_attr = ' rel="nofollow"' if nofollow else ""
|
|
59
61
|
|
|
62
|
+
if href_re.match(middle):
|
|
63
|
+
url = smart_urlquote(middle)
|
|
64
|
+
|
|
60
65
|
# Check if it's a real URL
|
|
61
66
|
if url and ("{" in url or "%7B" in url):
|
|
62
67
|
url = None
|
|
@@ -74,8 +79,6 @@ def urlize_quoted_hrefs(text, trim_url_limit=None, nofollow=True, autoescape=Tru
|
|
|
74
79
|
words[i] = mark_safe(word)
|
|
75
80
|
elif autoescape:
|
|
76
81
|
words[i] = escape(word)
|
|
77
|
-
|
|
78
|
-
words[i] = mark_safe(word)
|
|
79
|
-
elif autoescape:
|
|
82
|
+
else:
|
|
80
83
|
words[i] = escape(word)
|
|
81
84
|
return "".join(words)
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import pytest
|
|
2
|
+
from django.conf import settings
|
|
3
|
+
|
|
4
|
+
from pulpcore.app.templatetags import pulp_urls
|
|
5
|
+
|
|
6
|
+
pytestmark = pytest.mark.usefixtures("fake_domain")
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def test_urlize_quoted_hrefs_basic_url():
|
|
10
|
+
"""
|
|
11
|
+
text starts with API_ROOT, defaults. Should be made clickable
|
|
12
|
+
"""
|
|
13
|
+
txt = settings.V3_API_ROOT + "foo/bar/"
|
|
14
|
+
ret = pulp_urls.urlize_quoted_hrefs(txt)
|
|
15
|
+
assert ret == f'<a href="{txt}" rel="nofollow">{txt}</a>'
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
def test_urlize_quoted_hrefs_nofollow():
|
|
19
|
+
"""
|
|
20
|
+
text starts with API_ROOT, defaults. Should be made clickable
|
|
21
|
+
"""
|
|
22
|
+
txt = settings.V3_API_ROOT + "foo/bar/"
|
|
23
|
+
ret = pulp_urls.urlize_quoted_hrefs(txt, nofollow=False)
|
|
24
|
+
assert ret == f'<a href="{txt}">{txt}</a>'
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def test_urlize_quoted_hrefs_trim():
|
|
28
|
+
"""
|
|
29
|
+
text starts with API_ROOT, defaults. Should be made clickable
|
|
30
|
+
"""
|
|
31
|
+
txt = settings.V3_API_ROOT + "foo/bar/"
|
|
32
|
+
trim_txt = txt[0] + "..."
|
|
33
|
+
ret = pulp_urls.urlize_quoted_hrefs(txt, trim_url_limit=4)
|
|
34
|
+
assert ret == f'<a href="{txt}" rel="nofollow">{trim_txt}</a>'
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def test_urlize_quoted_hrefs_basic_url_xss():
|
|
38
|
+
"""
|
|
39
|
+
text starts with API_ROOT, includes XSS, defaults. Should be made clickable, escape XSS
|
|
40
|
+
"""
|
|
41
|
+
txt = settings.V3_API_ROOT + "foo/bar/<script>alert('ALERT!')</script>blech/"
|
|
42
|
+
escapified_linked_text = (
|
|
43
|
+
'<a href="' + settings.V3_API_ROOT + "foo/bar/"
|
|
44
|
+
'%3Cscript%3Ealert('ALERT!')%3C/script%3Eblech/" '
|
|
45
|
+
'rel="nofollow">' + settings.V3_API_ROOT + "foo/bar/<script>"
|
|
46
|
+
"alert('ALERT!')</script>blech/</a>"
|
|
47
|
+
)
|
|
48
|
+
ret = pulp_urls.urlize_quoted_hrefs(txt)
|
|
49
|
+
assert ret == escapified_linked_text
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def test_urlize_quoted_hrefs_basic_escape():
|
|
53
|
+
"""
|
|
54
|
+
text contains XSS. Expect escaped
|
|
55
|
+
"""
|
|
56
|
+
txt = "foo/bar/<script>alert('ALERT!')</script>blech/"
|
|
57
|
+
ret = pulp_urls.urlize_quoted_hrefs(txt)
|
|
58
|
+
assert ret == "foo/bar/<script>alert('ALERT!')</script>blech/"
|
|
@@ -341,6 +341,7 @@ pulpcore/tests/unit/test_cache.py
|
|
|
341
341
|
pulpcore/tests/unit/test_content_guard.py
|
|
342
342
|
pulpcore/tests/unit/test_files.py
|
|
343
343
|
pulpcore/tests/unit/test_import_checks.py
|
|
344
|
+
pulpcore/tests/unit/test_pulp_urls.py
|
|
344
345
|
pulpcore/tests/unit/test_settings.py
|
|
345
346
|
pulpcore/tests/unit/test_util.py
|
|
346
347
|
pulpcore/tests/unit/content/__init__.py
|
|
@@ -5,7 +5,7 @@ asyncio-throttle>=1.0,<=1.0.2
|
|
|
5
5
|
async-timeout>=4.0.3,<4.0.4;python_version<"3.11"
|
|
6
6
|
backoff>=2.1.2,<2.2.2
|
|
7
7
|
click>=8.1.0,<=8.1.7
|
|
8
|
-
cryptography>=38.0.1,<
|
|
8
|
+
cryptography>=38.0.1,<41.0.8
|
|
9
9
|
Django~=4.2.0 # LTS version, switch only if we have a compelling reason to
|
|
10
10
|
django-filter>=23.1,<=23.5
|
|
11
11
|
django-guid>=3.3,<=3.4.0
|
|
@@ -8,7 +8,7 @@ with open("requirements.txt") as requirements:
|
|
|
8
8
|
|
|
9
9
|
setup(
|
|
10
10
|
name="pulpcore",
|
|
11
|
-
version="3.28.
|
|
11
|
+
version="3.28.30",
|
|
12
12
|
description="Pulp Django Application and Related Modules",
|
|
13
13
|
long_description=long_description,
|
|
14
14
|
long_description_content_type="text/markdown",
|
|
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
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/add-signing-service.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/analyze-publication.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/dump-publications-to-fs.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/handle-artifact-checksums.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/remove-signing-service.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/management/commands/reset-admin-password.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0002_increase_artifact_size_field.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0003_remove_upload_completed.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0006_repository_plugin_managed.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0007_delete_progress_proxies.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0008_published_metadata_as_content.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0009_remove_task_non_fatal_errors.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0016_charfield_to_textfield.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0019_add_signing_service_model.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0023_change_exporter_models.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0024_use_local_storage_for_uploads.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0030_taskgroup_all_tasks_dispatched.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0031_import_export_validate_params.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
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0039_change_download_concurrency.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0044_temp_file_artifact_field.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0047_improve_orphan_cleanup.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0049_add_file_field_to_uploadchunk.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0050_namespace_access_policies.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
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0058_accesspolicy_customized.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0060_data_migration_proxy_creds.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0063_repository_retained_versions.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0064_add_new_style_task_columns.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0064_repository_user_hidden.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0068_add_timestamp_of_interest.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0070_rename_retained_versions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0076_remove_reserved_resource.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0077_move_remote_url_credentials.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0078_grouprole_role_userrole.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0081_reapplabel_group_permissions.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0082_add_manage_roles_permissions.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0084_alter_rbaccontentguard_options.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0085_contentredirectcontentguard.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0088_accesspolicy_queryset_scoping.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0094_protect_repository_content.py
RENAMED
|
File without changes
|
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0096_alter_task_logging_cid.py
RENAMED
|
File without changes
|
{pulpcore-3.28.28 → pulpcore-3.28.30}/pulpcore/app/migrations/0097_remove_telemetry_task_schedule.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|