pulpcore 3.122.2__tar.gz → 3.123.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (540) hide show
  1. {pulpcore-3.122.2 → pulpcore-3.123.0}/CHANGES.md +119 -0
  2. {pulpcore-3.122.2 → pulpcore-3.123.0}/PKG-INFO +3 -5
  3. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/app/__init__.py +1 -1
  4. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/__init__.py +1 -1
  5. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_download_policies.py +0 -2
  6. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/apps.py +1 -1
  7. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/content.py +10 -2
  8. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/storage.py +0 -25
  9. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/domain.py +0 -45
  10. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/content/handler.py +5 -2
  11. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_crud_domains.py +0 -11
  12. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/content/test_handler.py +76 -0
  13. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/serializers/test_domain.py +0 -12
  14. pulpcore-3.123.0/pulpcore/tests/unit/test_signing_service.py +39 -0
  15. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore.egg-info/PKG-INFO +3 -5
  16. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore.egg-info/SOURCES.txt +1 -0
  17. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore.egg-info/requires.txt +2 -5
  18. {pulpcore-3.122.2 → pulpcore-3.123.0}/pyproject.toml +4 -5
  19. {pulpcore-3.122.2 → pulpcore-3.123.0}/CODE_OF_CONDUCT.md +0 -0
  20. {pulpcore-3.122.2 → pulpcore-3.123.0}/COMMITMENT +0 -0
  21. {pulpcore-3.122.2 → pulpcore-3.123.0}/CONTRIBUTING.md +0 -0
  22. {pulpcore-3.122.2 → pulpcore-3.123.0}/COPYRIGHT +0 -0
  23. {pulpcore-3.122.2 → pulpcore-3.123.0}/LICENSE +0 -0
  24. {pulpcore-3.122.2 → pulpcore-3.123.0}/MANIFEST.in +0 -0
  25. {pulpcore-3.122.2 → pulpcore-3.123.0}/README.md +0 -0
  26. {pulpcore-3.122.2 → pulpcore-3.123.0}/ci_requirements.txt +0 -0
  27. {pulpcore-3.122.2 → pulpcore-3.123.0}/functest_requirements.txt +0 -0
  28. {pulpcore-3.122.2 → pulpcore-3.123.0}/manage.py +0 -0
  29. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/__init__.py +0 -0
  30. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/app/migrations/0001_initial.py +0 -0
  31. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/app/migrations/0002_alter_rhsmcertguard_contentguard_ptr_and_more.py +0 -0
  32. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/app/migrations/__init__.py +0 -0
  33. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/app/models.py +0 -0
  34. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/app/serializers.py +0 -0
  35. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/app/viewsets.py +0 -0
  36. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/pytest_plugin.py +0 -0
  37. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/rhsm/__init__.py +0 -0
  38. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/rhsm/rhsm_check_path.py +0 -0
  39. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/__init__.py +0 -0
  40. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/__init__.py +0 -0
  41. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/api/__init__.py +0 -0
  42. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/api/test_rhsm_certguard.py +0 -0
  43. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/api/test_x509_certguard.py +0 -0
  44. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/rhsm/katello-default-ca.crt +0 -0
  45. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/rhsm/katello-default-ca.key +0 -0
  46. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/rhsm/trusted_but_expired.pem +0 -0
  47. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/rhsm/uber.cert +0 -0
  48. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/rhsm/untrusted_cert-key.pem +0 -0
  49. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/rhsm/untrusted_cert.pem +0 -0
  50. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/1514454871848760713-key.pem +0 -0
  51. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/1514454871848760713.pem +0 -0
  52. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/159442575569388840-key.pem +0 -0
  53. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/rhsm/v1/159442575569388840.pem +0 -0
  54. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/4260035510644027985-key.pem +0 -0
  55. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/4260035510644027985.pem +0 -0
  56. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/5527980418107729172-key.pem +0 -0
  57. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/rhsm/v3/5527980418107729172.pem +0 -0
  58. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/certificates/ca.pem +0 -0
  59. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/genca.sh +0 -0
  60. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/thirdparty_ca/keys/ca.pem +0 -0
  61. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/ca.pem +0 -0
  62. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/client.pem +0 -0
  63. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/server.pem +0 -0
  64. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/un_urlencoded_cert.txt +0 -0
  65. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/x509/certificates/untrusted_client.pem +0 -0
  66. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/x509/genall.sh +0 -0
  67. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/x509/genca.sh +0 -0
  68. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/x509/genclient.sh +0 -0
  69. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/x509/gensrv.sh +0 -0
  70. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/x509/keys/ca.pem +0 -0
  71. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/x509/keys/client.pem +0 -0
  72. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/artifacts/x509/keys/server.pem +0 -0
  73. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/conftest.py +0 -0
  74. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/functional/constants.py +0 -0
  75. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/unit/__init__.py +0 -0
  76. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/unit/certdata.py +0 -0
  77. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_certguard/tests/unit/test_rhsm_check_path.py +0 -0
  78. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/__init__.py +0 -0
  79. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/migrations/0001_initial_squashed_0016_add_domain.py +0 -0
  80. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/migrations/0017_alter_filealternatecontentsource_alternatecontentsource_ptr_and_more.py +0 -0
  81. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/migrations/0018_alter_filecontent_options.py +0 -0
  82. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/migrations/0019_add_filegitremote.py +0 -0
  83. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/migrations/0020_filerepository_last_sync_details.py +0 -0
  84. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/migrations/__init__.py +0 -0
  85. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/modelresource.py +0 -0
  86. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/models.py +0 -0
  87. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/replica.py +0 -0
  88. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/serializers.py +0 -0
  89. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/settings.py +0 -0
  90. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/tasks/__init__.py +0 -0
  91. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/tasks/publishing.py +0 -0
  92. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/tasks/synchronizing.py +0 -0
  93. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/app/viewsets.py +0 -0
  94. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/manifest.py +0 -0
  95. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/pytest_plugin.py +0 -0
  96. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/__init__.py +0 -0
  97. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/__init__.py +0 -0
  98. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/__init__.py +0 -0
  99. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_acs.py +0 -0
  100. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_auto_publish.py +0 -0
  101. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_bad_sync.py +0 -0
  102. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_content_labels.py +0 -0
  103. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_crud_content_unit.py +0 -0
  104. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_crud_remotes.py +0 -0
  105. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_distributed_publication.py +0 -0
  106. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_domains.py +0 -0
  107. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_filesystem_export.py +0 -0
  108. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_generic_list.py +0 -0
  109. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_git_sync.py +0 -0
  110. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_labels.py +0 -0
  111. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_mime_types.py +0 -0
  112. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_overwrite_content.py +0 -0
  113. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_publish.py +0 -0
  114. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_pulp_export.py +0 -0
  115. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_rbac.py +0 -0
  116. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_remote_settings.py +0 -0
  117. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_sync.py +0 -0
  118. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/functional/api/test_sync_optimization.py +0 -0
  119. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/unit/__init__.py +0 -0
  120. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/unit/test_git_sync.py +0 -0
  121. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/unit/test_safe_paths.py +0 -0
  122. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/unit/test_serializers.py +0 -0
  123. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulp_file/tests/unit/test_sync_optimization.py +0 -0
  124. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/__init__.py +0 -0
  125. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/__init__.py +0 -0
  126. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/access_policy.py +0 -0
  127. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/authentication.py +0 -0
  128. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/checks.py +0 -0
  129. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/contexts.py +0 -0
  130. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/entrypoint.py +0 -0
  131. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/files.py +0 -0
  132. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/find_url.py +0 -0
  133. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/global_access_conditions.py +0 -0
  134. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/importexport.py +0 -0
  135. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/loggers.py +0 -0
  136. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/manage.py +0 -0
  137. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/__init__.py +0 -0
  138. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/__init__.py +0 -0
  139. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/add-signing-service.py +0 -0
  140. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/analyze-publication.py +0 -0
  141. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/clean-up-progress-reports.py +0 -0
  142. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/clear-cache.py +0 -0
  143. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/datarepair-2327.py +0 -0
  144. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/datarepair.py +0 -0
  145. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/dump-permissions.py +0 -0
  146. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/dump-publications-to-fs.py +0 -0
  147. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/handle-artifact-checksums.py +0 -0
  148. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/list-signing-services.py +0 -0
  149. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/migrationstat.py +0 -0
  150. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/openapi.py +0 -0
  151. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/optimizemigration.py +0 -0
  152. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/rebasemigrations.py +0 -0
  153. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/remove-plugin.py +0 -0
  154. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/remove-signing-service.py +0 -0
  155. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/repository-size.py +0 -0
  156. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/reset-admin-password.py +0 -0
  157. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/rotate-db-key.py +0 -0
  158. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/management/commands/shell.py +0 -0
  159. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0001_squashed_0090_char_to_text_field.py +0 -0
  160. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0091_systemid.py +0 -0
  161. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0092_alter_upload_options.py +0 -0
  162. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0093_add_info_field_repositoryversion.py +0 -0
  163. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0094_protect_repository_content.py +0 -0
  164. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0095_artifactdistribution.py +0 -0
  165. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0096_alter_task_logging_cid.py +0 -0
  166. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0097_remove_telemetry_task_schedule.py +0 -0
  167. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0098_pulp_labels.py +0 -0
  168. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0099_versions_field.py +0 -0
  169. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0100_upstreampulp.py +0 -0
  170. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0101_add_domain.py +0 -0
  171. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0102_add_domain_relations.py +0 -0
  172. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0103_alter_export_task.py +0 -0
  173. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0104_delete_label.py +0 -0
  174. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0105_abstract_uuid_gen.py +0 -0
  175. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0106_alter_artifactdistribution_distribution_ptr_and_more.py +0 -0
  176. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0107_distribution_hidden.py +0 -0
  177. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0108_task_versions.py +0 -0
  178. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0109_contentartifact_relative_path_index.py +0 -0
  179. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0110_apiappstatus.py +0 -0
  180. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0111_task_enc_args_task_enc_kwargs.py +0 -0
  181. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0112_alter_upstreampulp_options.py +0 -0
  182. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0113_headercontentguard.py +0 -0
  183. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0114_remove_task_args_remove_task_kwargs.py +0 -0
  184. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0115_compositecontentguard.py +0 -0
  185. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0116_alter_remoteartifact_md5_alter_remoteartifact_sha1_and_more.py +0 -0
  186. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0117_task_unblocked_at.py +0 -0
  187. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0118_task_core_task_unblock_2276a4_idx_and_more.py +0 -0
  188. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0119_grouprole_core_groupr_object__250e22_idx_and_more.py +0 -0
  189. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0120_get_url_removal.py +0 -0
  190. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0121_add_profile_artifacts_table.py +0 -0
  191. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0122_record_last_replication_timestamp.py +0 -0
  192. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0123_upstreampulp_q_select.py +0 -0
  193. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0124_task_deferred_task_immediate.py +0 -0
  194. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0125_openpgpdistribution_openpgpkeyring_openpgppublickey_and_more.py +0 -0
  195. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0126_remoteartifact_failed_at.py +0 -0
  196. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0127_remove_upstreampulp_pulp_label_select.py +0 -0
  197. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0128_domain_pulp_labels.py +0 -0
  198. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0129_content_pulp_labels.py +0 -0
  199. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0130_upstreampulp_policy.py +0 -0
  200. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0131_distribution_checkpoint_publication_checkpoint.py +0 -0
  201. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0132_alter_content_options.py +0 -0
  202. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0132_task_profile_options.py +0 -0
  203. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0133_repositoryversion_content_ids.py +0 -0
  204. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0134_task_insert_trigger.py +0 -0
  205. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0135_task_pulp_task_resources_index.py +0 -0
  206. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0136_delete_basedistribution.py +0 -0
  207. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0137_appstatus.py +0 -0
  208. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0138_vulnerabilityreport.py +0 -0
  209. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0139_task_app_lock.py +0 -0
  210. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0140_require_appstatus_zdu.py +0 -0
  211. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0141_alter_appstatus_name.py +0 -0
  212. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0142_task_result.py +0 -0
  213. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0143_require_app_lock_zdu.py +0 -0
  214. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0144_delete_old_appstatus.py +0 -0
  215. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0145_domainize_import_export.py +0 -0
  216. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0146_repository_retain_checkpoints.py +0 -0
  217. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0147_content_pulp_labels_gin.py +0 -0
  218. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0148_artifact_artifact_domain_size_index.py +0 -0
  219. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0149_distributedpublication.py +0 -0
  220. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0150_taskschedule_task_kwargs.py +0 -0
  221. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0151_upstreampulp_connect_timeout_and_more.py +0 -0
  222. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0152_alter_repositoryversion_content_ids.py +0 -0
  223. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0153_taskschedule_pulp_domain_alter_taskschedule_name_and_more.py +0 -0
  224. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0154_task_api_version.py +0 -0
  225. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0155_create_rel_path_domains.py +0 -0
  226. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0156_alter_contentartifact_relative_path_and_more.py +0 -0
  227. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0157_distribution_base_path_constraint.py +0 -0
  228. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0158_domain_default_content_guard.py +0 -0
  229. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0159_alter_contentartifact_relative_path_and_more.py +0 -0
  230. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0160_envvarheadercontentguard.py +0 -0
  231. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/0161_upstreampulp_remote_policy.py +0 -0
  232. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/migrations/__init__.py +0 -0
  233. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/mime_types.py +0 -0
  234. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/modelresource.py +0 -0
  235. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/__init__.py +0 -0
  236. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/access_policy.py +0 -0
  237. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/acs.py +0 -0
  238. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/analytics.py +0 -0
  239. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/base.py +0 -0
  240. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/domain.py +0 -0
  241. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/exporter.py +0 -0
  242. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/fields.py +0 -0
  243. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/generic.py +0 -0
  244. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/importer.py +0 -0
  245. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/openpgp.py +0 -0
  246. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/progress.py +0 -0
  247. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/publication.py +0 -0
  248. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/replica.py +0 -0
  249. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/repository.py +0 -0
  250. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/role.py +0 -0
  251. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/status.py +0 -0
  252. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/task.py +0 -0
  253. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/upload.py +0 -0
  254. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/models/vulnerability_report.py +0 -0
  255. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/netutil.py +0 -0
  256. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/openpgp.py +0 -0
  257. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/protobuf/__init__.py +0 -0
  258. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/protobuf/analytics_pb2.py +0 -0
  259. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/pulp_hashlib.py +0 -0
  260. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/pulpcore_gunicorn_application.py +0 -0
  261. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/redis_connection.py +0 -0
  262. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/replica.py +0 -0
  263. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/response.py +0 -0
  264. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/role_util.py +0 -0
  265. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/__init__.py +0 -0
  266. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/access_policy.py +0 -0
  267. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/acs.py +0 -0
  268. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/base.py +0 -0
  269. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/content.py +0 -0
  270. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/exporter.py +0 -0
  271. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/fields.py +0 -0
  272. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/importer.py +0 -0
  273. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/openpgp.py +0 -0
  274. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/orphans.py +0 -0
  275. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/progress.py +0 -0
  276. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/publication.py +0 -0
  277. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/purge.py +0 -0
  278. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/reclaim.py +0 -0
  279. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/repair.py +0 -0
  280. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/replica.py +0 -0
  281. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/repository.py +0 -0
  282. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/status.py +0 -0
  283. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/task.py +0 -0
  284. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/upload.py +0 -0
  285. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/user.py +0 -0
  286. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/serializers/vulnerability_report.py +0 -0
  287. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/settings.py +0 -0
  288. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/__init__.py +0 -0
  289. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/analytics.py +0 -0
  290. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/base.py +0 -0
  291. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/datarepair.py +0 -0
  292. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/export.py +0 -0
  293. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/importer.py +0 -0
  294. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/migrate.py +0 -0
  295. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/orphan.py +0 -0
  296. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/purge.py +0 -0
  297. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/reclaim_space.py +0 -0
  298. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/replica.py +0 -0
  299. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/repository.py +0 -0
  300. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/telemetry.py +0 -0
  301. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/test.py +0 -0
  302. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/upload.py +0 -0
  303. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/tasks/vulnerability_report.py +0 -0
  304. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/templates/rest_framework/api.html +0 -0
  305. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/templatetags/__init__.py +0 -0
  306. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/templatetags/pulp_urls.py +0 -0
  307. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/urls.py +0 -0
  308. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/util.py +0 -0
  309. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/views/__init__.py +0 -0
  310. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/views/datarepair.py +0 -0
  311. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/views/importer.py +0 -0
  312. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/views/orphans.py +0 -0
  313. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/views/repair.py +0 -0
  314. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/views/status.py +0 -0
  315. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/__init__.py +0 -0
  316. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/access_policy.py +0 -0
  317. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/acs.py +0 -0
  318. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/base.py +0 -0
  319. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/content.py +0 -0
  320. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/custom_filters.py +0 -0
  321. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/domain.py +0 -0
  322. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/exporter.py +0 -0
  323. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/importer.py +0 -0
  324. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/openpgp.py +0 -0
  325. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/orphans.py +0 -0
  326. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/publication.py +0 -0
  327. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/reclaim.py +0 -0
  328. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/replica.py +0 -0
  329. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/repository.py +0 -0
  330. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/task.py +0 -0
  331. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/upload.py +0 -0
  332. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/user.py +0 -0
  333. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/viewsets/vulnerability_report.py +0 -0
  334. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/workload_identity/__init__.py +0 -0
  335. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/workload_identity/authentication.py +0 -0
  336. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/workload_identity/authz.py +0 -0
  337. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/workload_identity/backend.py +0 -0
  338. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/workload_identity/config.py +0 -0
  339. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/workload_identity/principal.py +0 -0
  340. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/workload_identity/rules.py +0 -0
  341. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/app/wsgi.py +0 -0
  342. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/backends.py +0 -0
  343. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/cache/__init__.py +0 -0
  344. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/cache/cache.py +0 -0
  345. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/constants.py +0 -0
  346. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/content/__init__.py +0 -0
  347. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/content/authentication.py +0 -0
  348. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/content/entrypoint.py +0 -0
  349. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/content/instrumentation.py +0 -0
  350. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/download/__init__.py +0 -0
  351. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/download/base.py +0 -0
  352. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/download/factory.py +0 -0
  353. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/download/file.py +0 -0
  354. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/download/http.py +0 -0
  355. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/exceptions/__init__.py +0 -0
  356. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/exceptions/base.py +0 -0
  357. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/exceptions/plugin.py +0 -0
  358. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/exceptions/validation.py +0 -0
  359. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/filters.py +0 -0
  360. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/metrics.py +0 -0
  361. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/middleware.py +0 -0
  362. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/migrations.py +0 -0
  363. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/openapi/__init__.py +0 -0
  364. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/openapi/hooks.py +0 -0
  365. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/pagination.py +0 -0
  366. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/__init__.py +0 -0
  367. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/access_policy.py +0 -0
  368. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/actions.py +0 -0
  369. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/apps.py +0 -0
  370. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/authentication/__init__.py +0 -0
  371. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/cache/__init__.py +0 -0
  372. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/constants.py +0 -0
  373. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/content.py +0 -0
  374. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/download/__init__.py +0 -0
  375. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/exceptions.py +0 -0
  376. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/files.py +0 -0
  377. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/find_url.py +0 -0
  378. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/importexport.py +0 -0
  379. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/migrations.py +0 -0
  380. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/modelresources.py +0 -0
  381. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/models/__init__.py +0 -0
  382. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/models/role.py +0 -0
  383. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/publication_utils.py +0 -0
  384. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/pulp_hashlib.py +0 -0
  385. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/replica.py +0 -0
  386. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/repo_version_utils.py +0 -0
  387. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/responses.py +0 -0
  388. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/serializers/__init__.py +0 -0
  389. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/serializers/content.py +0 -0
  390. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/stages/__init__.py +0 -0
  391. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/stages/api.py +0 -0
  392. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/stages/artifact_stages.py +0 -0
  393. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/stages/content_stages.py +0 -0
  394. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/stages/declarative_version.py +0 -0
  395. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/stages/models.py +0 -0
  396. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/storage.py +0 -0
  397. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/sync.py +0 -0
  398. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/tasking.py +0 -0
  399. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/util.py +0 -0
  400. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/viewsets/__init__.py +0 -0
  401. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/plugin/viewsets/content.py +0 -0
  402. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/pytest_plugin.py +0 -0
  403. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/responses.py +0 -0
  404. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/saml2/backends.py +0 -0
  405. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tasking/__init__.py +0 -0
  406. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tasking/_util.py +0 -0
  407. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tasking/entrypoint.py +0 -0
  408. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tasking/kafka.py +0 -0
  409. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tasking/redis_locks.py +0 -0
  410. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tasking/redis_tasks.py +0 -0
  411. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tasking/redis_worker.py +0 -0
  412. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tasking/storage.py +0 -0
  413. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tasking/tasks.py +0 -0
  414. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tasking/worker.py +0 -0
  415. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/__init__.py +0 -0
  416. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/__init__.py +0 -0
  417. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/__init__.py +0 -0
  418. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_access_policy.py +0 -0
  419. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_api_docs.py +0 -0
  420. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_api_root_rewrite.py +0 -0
  421. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_artifact_distribution.py +0 -0
  422. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_auth.py +0 -0
  423. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_correlation_id.py +0 -0
  424. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_crd_artifacts.py +0 -0
  425. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_filter.py +0 -0
  426. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_login.py +0 -0
  427. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_openapi_schema.py +0 -0
  428. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_openpgp.py +0 -0
  429. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_replication.py +0 -0
  430. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_repos.py +0 -0
  431. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_role.py +0 -0
  432. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_root_endpoint.py +0 -0
  433. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_scoping.py +0 -0
  434. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_signing_service.py +0 -0
  435. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_status.py +0 -0
  436. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_task_purge.py +0 -0
  437. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_tasking.py +0 -0
  438. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_upload.py +0 -0
  439. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_users_groups.py +0 -0
  440. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_v4_status.py +0 -0
  441. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/test_workers.py +0 -0
  442. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/__init__.py +0 -0
  443. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_cdn_cache_validation.py +0 -0
  444. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_checkpoint.py +0 -0
  445. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_content_access.py +0 -0
  446. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_content_cache.py +0 -0
  447. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_content_delivery.py +0 -0
  448. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_content_directory.py +0 -0
  449. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_content_path.py +0 -0
  450. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_content_promotion.py +0 -0
  451. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_contentguard.py +0 -0
  452. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_crud_repos.py +0 -0
  453. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_distributions.py +0 -0
  454. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_filesystemexport.py +0 -0
  455. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_labels.py +0 -0
  456. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_migrate.py +0 -0
  457. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_orphans.py +0 -0
  458. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_pagination.py +0 -0
  459. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_prn.py +0 -0
  460. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_proxy.py +0 -0
  461. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_pulpimport.py +0 -0
  462. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_reclaim_disk_space.py +0 -0
  463. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_repair.py +0 -0
  464. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_repo_versions.py +0 -0
  465. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_tasks.py +0 -0
  466. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/api/using_plugin/test_unlinking_repo.py +0 -0
  467. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/assets/__init__.py +0 -0
  468. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/content_with_coverage.py +0 -0
  469. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/functional/utils.py +0 -0
  470. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/performance/__init__.py +0 -0
  471. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/performance/test_performance.py +0 -0
  472. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/__init__.py +0 -0
  473. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/conftest.py +0 -0
  474. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/content/__init__.py +0 -0
  475. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/content/test_heartbeat.py +0 -0
  476. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/download/__init__.py +0 -0
  477. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/download/test_downloader_base.py +0 -0
  478. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/download/test_downloader_factory.py +0 -0
  479. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/download/test_downloader_file.py +0 -0
  480. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/export/test_local_fs_export.py +0 -0
  481. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/metrics/__init__.py +0 -0
  482. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/metrics/conftest.py +0 -0
  483. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/metrics/test_aiohttp_instrumentation.py +0 -0
  484. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/metrics/test_django_instrumentation.py +0 -0
  485. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/migration/__init__.py +0 -0
  486. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/models/__init__.py +0 -0
  487. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/models/test_base.py +0 -0
  488. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/models/test_content.py +0 -0
  489. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/models/test_content_ids_migration.py +0 -0
  490. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/models/test_distribution.py +0 -0
  491. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/models/test_publication_retention.py +0 -0
  492. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/models/test_remote.py +0 -0
  493. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/models/test_repository.py +0 -0
  494. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/models/test_task.py +0 -0
  495. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/roles/__init__.py +0 -0
  496. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/roles/test_adjust_roles.py +0 -0
  497. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/roles/test_roles.py +0 -0
  498. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/serializers/__init__.py +0 -0
  499. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/serializers/test_base.py +0 -0
  500. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/serializers/test_fields.py +0 -0
  501. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/serializers/test_orphans_cleanup.py +0 -0
  502. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/serializers/test_pulpexport.py +0 -0
  503. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/serializers/test_repository.py +0 -0
  504. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/serializers/test_user.py +0 -0
  505. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/stages/__init__.py +0 -0
  506. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/stages/test_artifactdownloader.py +0 -0
  507. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/stages/test_resource_budget.py +0 -0
  508. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/stages/test_stages.py +0 -0
  509. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/tasking/__init__.py +0 -0
  510. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/tasking/test_delete_tasks.py +0 -0
  511. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/tasking/test_missing_worker_cleanup.py +0 -0
  512. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/tasking/test_orphan_redis_locks.py +0 -0
  513. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/tasking/test_redis_fetch_task.py +0 -0
  514. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/tasking/test_waiting_tasks_metric.py +0 -0
  515. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_cache.py +0 -0
  516. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_chunked_file.py +0 -0
  517. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_clear_cache_command.py +0 -0
  518. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_content_guard.py +0 -0
  519. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_fetch_task_hol_blocking.py +0 -0
  520. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_files.py +0 -0
  521. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_gpg_verify.py +0 -0
  522. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_import_checks.py +0 -0
  523. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_list_signing_services_command.py +0 -0
  524. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_middleware.py +0 -0
  525. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_pulp_urls.py +0 -0
  526. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_replica.py +0 -0
  527. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_settings.py +0 -0
  528. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_util.py +0 -0
  529. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_viewsets.py +0 -0
  530. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/test_vulnerability_report.py +0 -0
  531. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/viewsets/__init__.py +0 -0
  532. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/viewsets/test_viewset_base.py +0 -0
  533. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/workload_identity/__init__.py +0 -0
  534. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore/tests/unit/workload_identity/test_workload_identity.py +0 -0
  535. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore.egg-info/dependency_links.txt +0 -0
  536. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore.egg-info/entry_points.txt +0 -0
  537. {pulpcore-3.122.2 → pulpcore-3.123.0}/pulpcore.egg-info/top_level.txt +0 -0
  538. {pulpcore-3.122.2 → pulpcore-3.123.0}/setup.cfg +0 -0
  539. {pulpcore-3.122.2 → pulpcore-3.123.0}/test_requirements.txt +0 -0
  540. {pulpcore-3.122.2 → pulpcore-3.123.0}/unittest_requirements.txt +0 -0
@@ -8,6 +8,36 @@
8
8
 
9
9
  [//]: # (towncrier release notes start)
10
10
 
11
+ ## 3.123.0 (2026-10-21) {: #3.123.0 }
12
+
13
+ ### REST API {: #3.123.0-rest-api }
14
+
15
+ #### Bugfixes {: #3.123.0-rest-api-bugfix }
16
+
17
+ - Fixed a foreign key error when a first-time pull-through download fails digest validation; the content app now reports the intended checksum error and closes the connection.
18
+ - Fixed repository version serialization failing with `LookupError` when the version contains a content type that has no registered viewset.
19
+
20
+ #### Removals {: #3.123.0-rest-api-removal }
21
+
22
+ - Removed SFTP storage support because it was unreliable and could corrupt files; it also did not support object-storage redirects or on-demand downloads.
23
+
24
+ ### Plugin API {: #3.123.0-plugin-api }
25
+
26
+ #### Features {: #3.123.0-plugin-api-feature }
27
+
28
+ - `SigningService.sign()` and `asign()` now accept an optional `pubkey_fingerprint` to sign with a key other than the one the signing service was created with.
29
+ [#7942](https://github.com/pulp/pulpcore/issues/7942)
30
+
31
+ ### Pulp File {: #3.123.0-pulp-file }
32
+
33
+ No significant changes.
34
+
35
+ ### Pulp Cert Guard {: #3.123.0-pulp-cert-guard }
36
+
37
+ No significant changes.
38
+
39
+ ---
40
+
11
41
  ## 3.122.2 (2026-10-15) {: #3.122.2 }
12
42
 
13
43
  ### REST API {: #3.122.2-rest-api }
@@ -303,6 +333,26 @@ No significant changes.
303
333
 
304
334
  ---
305
335
 
336
+ ## 3.118.3 (2026-10-15) {: #3.118.3 }
337
+
338
+ ### REST API {: #3.118.3-rest-api }
339
+
340
+ No significant changes.
341
+
342
+ ### Plugin API {: #3.118.3-plugin-api }
343
+
344
+ No significant changes.
345
+
346
+ ### Pulp File {: #3.118.3-pulp-file }
347
+
348
+ No significant changes.
349
+
350
+ ### Pulp Cert Guard {: #3.118.3-pulp-cert-guard }
351
+
352
+ No significant changes.
353
+
354
+ ---
355
+
306
356
  ## 3.118.2 (2026-10-13) {: #3.118.2 }
307
357
 
308
358
  ### REST API {: #3.118.2-rest-api }
@@ -1456,6 +1506,51 @@ No significant changes.
1456
1506
 
1457
1507
  ---
1458
1508
 
1509
+ ## 3.105.23 (2026-10-15) {: #3.105.23 }
1510
+
1511
+ ### REST API {: #3.105.23-rest-api }
1512
+
1513
+ No significant changes.
1514
+
1515
+ ### Plugin API {: #3.105.23-plugin-api }
1516
+
1517
+ No significant changes.
1518
+
1519
+ ### Pulp File {: #3.105.23-pulp-file }
1520
+
1521
+ No significant changes.
1522
+
1523
+ ### Pulp Cert Guard {: #3.105.23-pulp-cert-guard }
1524
+
1525
+ No significant changes.
1526
+
1527
+ ---
1528
+
1529
+ ## 3.105.22 (2026-10-14) {: #3.105.22 }
1530
+
1531
+ ### REST API {: #3.105.22-rest-api }
1532
+
1533
+ #### Bugfixes {: #3.105.22-rest-api-bugfix }
1534
+
1535
+ - Fixed an issue where users were able to list (but not modify) uploads they didn't have permissions to view.
1536
+ - Fixed vulnerability report rescans to update existing reports.
1537
+ - Optimized `scope_queryset` SQL queries when using a domain scoped endpoint.
1538
+ - Repeated object lookups in a single API request now reuse the retrieved object.
1539
+
1540
+ ### Plugin API {: #3.105.22-plugin-api }
1541
+
1542
+ No significant changes.
1543
+
1544
+ ### Pulp File {: #3.105.22-pulp-file }
1545
+
1546
+ No significant changes.
1547
+
1548
+ ### Pulp Cert Guard {: #3.105.22-pulp-cert-guard }
1549
+
1550
+ No significant changes.
1551
+
1552
+ ---
1553
+
1459
1554
  ## 3.105.21 (2026-10-01) {: #3.105.21 }
1460
1555
 
1461
1556
  ### REST API {: #3.105.21-rest-api }
@@ -2944,6 +3039,30 @@ No significant changes.
2944
3039
 
2945
3040
  ---
2946
3041
 
3042
+ ## 3.85.32 (2026-10-14) {: #3.85.32 }
3043
+
3044
+ ### REST API {: #3.85.32-rest-api }
3045
+
3046
+ #### Bugfixes {: #3.85.32-rest-api-bugfix }
3047
+
3048
+ - Fixed directory listings for published content displaying publication time instead of repository added date.
3049
+ - Fixed vulnerability report rescans to update existing reports.
3050
+ - Removed parent directory sizes and fixed wrong last modified timestamp in content app listings.
3051
+
3052
+ ### Plugin API {: #3.85.32-plugin-api }
3053
+
3054
+ No significant changes.
3055
+
3056
+ ### Pulp File {: #3.85.32-pulp-file }
3057
+
3058
+ No significant changes.
3059
+
3060
+ ### Pulp Cert Guard {: #3.85.32-pulp-cert-guard }
3061
+
3062
+ No significant changes.
3063
+
3064
+ ---
3065
+
2947
3066
  ## 3.85.31 (2026-09-23) {: #3.85.31 }
2948
3067
 
2949
3068
  ### REST API {: #3.85.31-rest-api }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulpcore
3
- Version: 3.122.2
3
+ Version: 3.123.0
4
4
  Summary: Pulp Django Application and Related Modules
5
5
  Author-email: Pulp Team <pulp-list@redhat.com>
6
6
  License-Expression: GPL-2.0-or-later
@@ -46,7 +46,7 @@ Requires-Dist: opentelemetry-api<1.46,>=1.27.0
46
46
  Requires-Dist: opentelemetry-sdk<1.46,>=1.27.0
47
47
  Requires-Dist: opentelemetry-exporter-otlp-proto-http<1.46,>=1.27.0
48
48
  Requires-Dist: protobuf<8.0,>=4.21.1
49
- Requires-Dist: pulp-glue<0.41,>=0.35.0
49
+ Requires-Dist: pulp-glue<0.42,>=0.35.0
50
50
  Requires-Dist: PyOpenSSL<27.0,>=26.3.0
51
51
  Requires-Dist: pygtrie<2.7,>=2.5
52
52
  Requires-Dist: psycopg[binary]<3.4,>=3.3.4
@@ -59,8 +59,6 @@ Requires-Dist: url-normalize<3.1,>=1.4.3
59
59
  Requires-Dist: uuid6<=2025.0.1,>=2023.5.2
60
60
  Requires-Dist: whitenoise<6.13.0,>=5.0
61
61
  Requires-Dist: yarl<1.26,>=1.12.0
62
- Provides-Extra: sftp
63
- Requires-Dist: django-storages[sftp]==1.14.6; extra == "sftp"
64
62
  Provides-Extra: s3
65
63
  Requires-Dist: django-storages[boto3]==1.14.6; extra == "s3"
66
64
  Provides-Extra: google
@@ -73,7 +71,7 @@ Provides-Extra: saml2
73
71
  Requires-Dist: djangosaml2<1.13,>=1.12.0; extra == "saml2"
74
72
  Provides-Extra: kafka
75
73
  Requires-Dist: cloudevents==1.11.0; extra == "kafka"
76
- Requires-Dist: confluent-kafka<2.16.0,>=2.4.0; extra == "kafka"
74
+ Requires-Dist: confluent-kafka<2.17.0,>=2.4.0; extra == "kafka"
77
75
  Provides-Extra: diagnostics
78
76
  Requires-Dist: pyinstrument~=5.0; extra == "diagnostics"
79
77
  Requires-Dist: memray~=1.17; extra == "diagnostics"
@@ -6,6 +6,6 @@ class PulpCertGuardPluginAppConfig(PulpPluginAppConfig):
6
6
 
7
7
  name = "pulp_certguard.app"
8
8
  label = "certguard"
9
- version = "3.122.2"
9
+ version = "3.123.0"
10
10
  python_package_name = "pulpcore"
11
11
  domain_compatible = True
@@ -8,6 +8,6 @@ class PulpFilePluginAppConfig(PulpPluginAppConfig):
8
8
 
9
9
  name = "pulp_file.app"
10
10
  label = "file"
11
- version = "3.122.2"
11
+ version = "3.123.0"
12
12
  python_package_name = "pulpcore"
13
13
  domain_compatible = True
@@ -54,8 +54,6 @@ def test_download_policy(
54
54
  ):
55
55
  """Test that "on_demand" and "streamed" download policies work as expected."""
56
56
  settings = pulp_settings
57
- if download_policy == "on_demand" and "SFTP" in settings.STORAGES["default"]["BACKEND"]:
58
- pytest.skip("This storage technology is not properly supported.")
59
57
 
60
58
  remote = file_remote_ssl_factory(
61
59
  manifest_path=range_header_manifest_path, policy=download_policy
@@ -238,7 +238,7 @@ class PulpAppConfig(PulpPluginAppConfig):
238
238
  label = "core"
239
239
 
240
240
  # The version of this app
241
- version = "3.122.2"
241
+ version = "3.123.0"
242
242
 
243
243
  # The python package name providing this app
244
244
  python_package_name = "pulpcore"
@@ -814,7 +814,7 @@ class SigningService(BaseModel):
814
814
  env.update(env_vars)
815
815
  return {**os.environ, **env}
816
816
 
817
- def sign(self, filename, env_vars=None):
817
+ def sign(self, filename, env_vars=None, pubkey_fingerprint=None):
818
818
  """
819
819
  Signs the file provided via 'filename' by invoking an external script (or executable).
820
820
 
@@ -825,6 +825,8 @@ class SigningService(BaseModel):
825
825
  Args:
826
826
  filename (str): A relative path to a file which is intended to be signed.
827
827
  env_vars (dict): dictionary of environment variables
828
+ pubkey_fingerprint (str): fingerprint of the key to sign with. Defaults to the
829
+ signing service's own key.
828
830
 
829
831
  Raises:
830
832
  RuntimeError: If the return code of the script is not equal to 0.
@@ -832,6 +834,9 @@ class SigningService(BaseModel):
832
834
  Returns:
833
835
  A dictionary as validated by the validate() method.
834
836
  """
837
+ if pubkey_fingerprint:
838
+ env_vars = {**(env_vars or {}), "PULP_SIGNING_KEY_FINGERPRINT": pubkey_fingerprint}
839
+
835
840
  completed_process = subprocess.run(
836
841
  [self.script, filename],
837
842
  env=self._env_variables(env_vars),
@@ -849,8 +854,11 @@ class SigningService(BaseModel):
849
854
 
850
855
  return return_value
851
856
 
852
- async def asign(self, filename, env_vars=None):
857
+ async def asign(self, filename, env_vars=None, pubkey_fingerprint=None):
853
858
  """Async version of sign."""
859
+ if pubkey_fingerprint:
860
+ env_vars = {**(env_vars or {}), "PULP_SIGNING_KEY_FINGERPRINT": pubkey_fingerprint}
861
+
854
862
  process = await asyncio.create_subprocess_exec(
855
863
  self.script,
856
864
  filename,
@@ -99,31 +99,6 @@ class FileSystem(FileSystemStorage):
99
99
  return str(name).replace("\\", "/")
100
100
 
101
101
 
102
- try:
103
- from storages.backends.sftpstorage import SFTPStorage
104
-
105
- class PulpSFTPStorage(SFTPStorage):
106
- """Upstream class is missing the file_overwrite option."""
107
-
108
- def get_available_name(self, name, max_length=None):
109
- """
110
- Returns a filename for the file even if it already exists.
111
-
112
- Content adressable storage must be saved with the expected filename.
113
-
114
- Args:
115
- name (string): Requested file name
116
- max_length (int): Maximum length of the filename. Not used in this implementation.
117
-
118
- Returns:
119
- Name of the file.
120
- """
121
- return name
122
-
123
- except ImportError:
124
- pass
125
-
126
-
127
102
  class DomainStorage:
128
103
  """Storage class for FileFields to use that allows for uploading to a domain's storage."""
129
104
 
@@ -21,7 +21,6 @@ from pulpcore.app.util import get_prn
21
21
 
22
22
  BACKEND_CHOICES = (
23
23
  ("pulpcore.app.models.storage.FileSystem", "Use local filesystem as storage"),
24
- # ("pulpcore.app.models.storage.PulpSFTPStorage", "Use SFTP server as storage"),
25
24
  ("storages.backends.s3boto3.S3Boto3Storage", "Use Amazon S3 as storage [deprecated]"),
26
25
  ("storages.backends.s3.S3Storage", "Use Amazon S3 as storage"),
27
26
  ("storages.backends.azure_storage.AzureStorage", "Use Azure Blob as storage"),
@@ -107,36 +106,6 @@ class FileSystemSettingsSerializer(BaseSettingsClass):
107
106
  directory_permissions_mode = serializers.IntegerField(allow_null=True, default=None)
108
107
 
109
108
 
110
- class SFTPSettingsSerializer(BaseSettingsClass):
111
- """A Serializer for SFTP storage settings."""
112
-
113
- STORAGE_CLASS = "pulpcore.app.models.storage.PulpSFTPStorage"
114
- SETTING_MAPPING = {
115
- "sftp_storage_host": "host",
116
- "sftp_storage_params": "params",
117
- "sftp_storage_interactive": "interactive",
118
- "sftp_storage_file_mode": "file_mode",
119
- "sftp_storage_dir_mode": "dir_mode",
120
- "sftp_storage_uid": "uid",
121
- "sftp_storage_gid": "gid",
122
- "sftp_known_host_file": "known_host_file",
123
- "sftp_storage_root": "root_path",
124
- "media_url": "base_url",
125
- "sftp_base_url": "base_url",
126
- }
127
-
128
- host = serializers.CharField(required=True)
129
- root_path = serializers.CharField(required=True)
130
- params = serializers.DictField(default={}, write_only=True)
131
- file_mode = serializers.IntegerField(allow_null=True, default=None)
132
- dir_mode = serializers.IntegerField(allow_null=True, default=None)
133
- uid = serializers.CharField(allow_null=True, default=None)
134
- gid = serializers.CharField(allow_null=True, default=None)
135
- base_url = serializers.CharField(allow_null=True, default=None)
136
- interactive = serializers.HiddenField(default=False)
137
- known_host_file = serializers.HiddenField(default=None)
138
-
139
-
140
109
  class TransferConfigSerializer(serializers.Serializer):
141
110
  """A Serializer for the boto3.S3 Transfer Config object."""
142
111
 
@@ -342,7 +311,6 @@ class StorageSettingsSerializer(serializers.Serializer):
342
311
 
343
312
  STORAGE_MAPPING = {
344
313
  "pulpcore.app.models.storage.FileSystem": FileSystemSettingsSerializer,
345
- "pulpcore.app.models.storage.PulpSFTPStorage": SFTPSettingsSerializer,
346
314
  "storages.backends.s3.S3Storage": AmazonS3SettingsSerializer,
347
315
  "storages.backends.s3boto3.S3Boto3Storage": AmazonS3SettingsSerializer,
348
316
  "storages.backends.azure_storage.AzureStorage": AzureSettingsSerializer,
@@ -509,19 +477,6 @@ class DomainSerializer(BackendSettingsValidator, ModelSerializer):
509
477
  storage_class = data.get("storage_class") or self.instance.storage_class
510
478
  storage_settings = data.get("storage_settings") or self.instance.storage_settings
511
479
  self._validate_storage_backend(storage_class, storage_settings)
512
-
513
- redirect = data.get("redirect_to_object_storage", True)
514
- if self.instance and "redirect_to_object_storage" not in data:
515
- redirect = self.instance.redirect_to_object_storage
516
-
517
- if redirect and storage_class == "pulpcore.app.models.storage.PulpSFTPStorage":
518
- raise serializers.ValidationError(
519
- detail={
520
- "redirect_to_object_storage": _(
521
- "This field does not support being used with the SFTP backend."
522
- )
523
- }
524
- )
525
480
  return data
526
481
 
527
482
  class Meta:
@@ -1442,8 +1442,11 @@ class Handler:
1442
1442
  extra_data={"disable_retry_list": (DigestValidationError,)}
1443
1443
  )
1444
1444
  except DigestValidationError:
1445
- remote_artifact.failed_at = timezone.now()
1446
- await remote_artifact.asave()
1445
+ # First-time pull-through RAs point at an unsaved ContentArtifact, so saving would
1446
+ # violate the foreign key.
1447
+ if not remote_artifact.content_artifact._state.adding:
1448
+ remote_artifact.failed_at = timezone.now()
1449
+ await remote_artifact.asave()
1447
1450
  close_tcp_connection(request.transport._sock)
1448
1451
  REMOTE_CONTENT_FETCH_FAILURE_COOLDOWN = settings.REMOTE_CONTENT_FETCH_FAILURE_COOLDOWN
1449
1452
  raise RuntimeError(
@@ -195,7 +195,6 @@ def test_special_domain_creation(pulpcore_bindings, gen_object_with_cleanup, pul
195
195
  # This test needs to account for which environment it is running in
196
196
  storage_types = {
197
197
  "pulpcore.app.models.storage.FileSystem",
198
- # "pulpcore.app.models.storage.PulpSFTPStorage",
199
198
  "storages.backends.s3boto3.S3Boto3Storage",
200
199
  "storages.backends.s3.S3Storage",
201
200
  "storages.backends.azure_storage.AzureStorage",
@@ -204,14 +203,6 @@ def test_special_domain_creation(pulpcore_bindings, gen_object_with_cleanup, pul
204
203
 
205
204
  storage_settings = {
206
205
  "pulpcore.app.models.storage.FileSystem": {"media_root": ""},
207
- "pulpcore.app.models.storage.PulpSFTPStorage": {
208
- "SFTP_STORAGE_HOST": "sftp-storage-host",
209
- "SFTP_STORAGE_ROOT": "/storage/",
210
- "SFTP_STORAGE_PARAMS": {
211
- "username": "foo",
212
- "key_filename": "/etc/pulp/certs/storage_id_ed25519",
213
- },
214
- },
215
206
  "storages.backends.s3.S3Storage": {
216
207
  "AWS_ACCESS_KEY_ID": "random",
217
208
  "AWS_SECRET_ACCESS_KEY": "random",
@@ -247,8 +238,6 @@ def test_special_domain_creation(pulpcore_bindings, gen_object_with_cleanup, pul
247
238
  "storage_class": backend,
248
239
  "storage_settings": storage_settings[backend],
249
240
  }
250
- if backend == "pulpcore.app.models.storage.PulpSFTPStorage":
251
- body["redirect_to_object_storage"] = False
252
241
  try:
253
242
  domain = gen_object_with_cleanup(pulpcore_bindings.DomainsApi, body)
254
243
  except ApiException as e:
@@ -20,6 +20,7 @@ from pulpcore.content.handler import (
20
20
  PathNotResolved,
21
21
  _current_distribution,
22
22
  )
23
+ from pulpcore.exceptions import DigestValidationError
23
24
  from pulpcore.plugin.models import (
24
25
  Artifact,
25
26
  Content,
@@ -788,3 +789,78 @@ async def test_async_pull_through_add(ca1, monkeypatch, app_status):
788
789
  await repo.adelete()
789
790
  if task:
790
791
  await task.adelete()
792
+
793
+
794
+ @pytest.fixture
795
+ def digest_failure_downloader(monkeypatch):
796
+ class FailingDownloader:
797
+ path = None
798
+
799
+ async def handle_data(self, data):
800
+ pass
801
+
802
+ async def finalize(self):
803
+ pass
804
+
805
+ async def run(self, extra_data=None):
806
+ raise DigestValidationError("actual", "expected", url="https://123/c123")
807
+
808
+ monkeypatch.setattr(Remote, "get_downloader", lambda self, **kwargs: FailingDownloader())
809
+ close_mock = Mock()
810
+ monkeypatch.setattr("pulpcore.content.handler.close_tcp_connection", close_mock)
811
+ return close_mock
812
+
813
+
814
+ def _failing_stream_args():
815
+ request = Mock(match_info={"path": "c123"}, http_range=Mock(start=None, stop=None))
816
+ response = web.StreamResponse()
817
+ response.write_eof = AsyncMock()
818
+ return request, response
819
+
820
+
821
+ def _assert_not_completed_cleanly(close_mock, request, response):
822
+ """The connection is force-closed and the response is never finished for the client."""
823
+ close_mock.assert_called_once_with(request.transport._sock)
824
+ response.write_eof.assert_not_awaited()
825
+
826
+
827
+ @pytest.mark.asyncio
828
+ @pytest.mark.django_db
829
+ async def test_pull_through_digest_failure_new_content_artifact(digest_failure_downloader):
830
+ """A failed digest on a first-time pull-through raises the checksum error, not IntegrityError."""
831
+ remote = await create_remote()
832
+ ca = ContentArtifact(relative_path="c123")
833
+ ra = RemoteArtifact(remote=remote, url="https://123/c123", content_artifact=ca, sha256="bad")
834
+ request, response = _failing_stream_args()
835
+
836
+ try:
837
+ with pytest.raises(RuntimeError, match="failed checksum validation"):
838
+ await Handler()._stream_remote_artifact(request, response, ra, save_artifact=True)
839
+ _assert_not_completed_cleanly(digest_failure_downloader, request, response)
840
+ assert ra.failed_at is None
841
+ assert not await RemoteArtifact.objects.filter(url="https://123/c123").aexists()
842
+ finally:
843
+ await remote.adelete()
844
+
845
+
846
+ @pytest.mark.asyncio
847
+ @pytest.mark.django_db
848
+ async def test_pull_through_digest_failure_existing_content_artifact(digest_failure_downloader):
849
+ """A failed digest on an existing ContentArtifact still records failed_at."""
850
+ content = await create_content()
851
+ ca = await create_content_artifact(content)
852
+ remote = await create_remote()
853
+ ra = await RemoteArtifact.objects.acreate(
854
+ remote=remote, url="https://123/c123", content_artifact=ca, sha256="bad"
855
+ )
856
+ request, response = _failing_stream_args()
857
+
858
+ try:
859
+ with pytest.raises(RuntimeError, match="failed checksum validation"):
860
+ await Handler()._stream_remote_artifact(request, response, ra, save_artifact=True)
861
+ _assert_not_completed_cleanly(digest_failure_downloader, request, response)
862
+ await ra.arefresh_from_db()
863
+ assert ra.failed_at is not None
864
+ finally:
865
+ await content.adelete()
866
+ await remote.adelete()
@@ -4,7 +4,6 @@ import pytest
4
4
  from rest_framework import serializers
5
5
 
6
6
  from pulpcore.app.serializers.domain import (
7
- # SFTPSettingsSerializer,
8
7
  AmazonS3SettingsSerializer,
9
8
  AzureSettingsSerializer,
10
9
  # GoogleSettingsSerializer,
@@ -244,17 +243,6 @@ def test_hidden_settings(storage_class, serializer_class, all_settings):
244
243
  assert hidden_fields[field] == is_set, field
245
244
 
246
245
 
247
- # class TestDomainSFTPSettingsSerializer(DomainSettingsBaseMixin, TestCase):
248
- # storage_class = "pulpcore.app.models.storage.PulpSFTPStorage"
249
- # serializer_class = SFTPSettingsSerializer
250
- # required_settings = {"host": "http://testing", "root_path": "/storage_sftp/"}
251
- #
252
- # @classmethod
253
- # def setUpClass(cls):
254
- # super().setUpClass()
255
- # cls.min_domain_settings["redirect_to_object_storage"] = False
256
-
257
-
258
246
  # class TestDomainGoogleSettingsSerializer(DomainSettingsBaseMixin, TestCase):
259
247
  # storage_class = "storages.backends.gcloud.GoogleCloudStorage"
260
248
  # serializer_class = GoogleSettingsSerializer
@@ -0,0 +1,39 @@
1
+ import os
2
+
3
+ import pytest
4
+
5
+ from pulpcore.app.models.content import AsciiArmoredDetachedSigningService
6
+
7
+
8
+ @pytest.fixture
9
+ def signing_service(tmp_path):
10
+ """A signing service whose script reports the fingerprint and env vars it was invoked with."""
11
+ script = tmp_path / "echo_env.sh"
12
+ script.write_text(
13
+ '#!/bin/sh\nprintf \'{"fingerprint": "%s", "extra": "%s"}\''
14
+ ' "$PULP_SIGNING_KEY_FINGERPRINT" "$EXTRA"\n'
15
+ )
16
+ script.chmod(0o755)
17
+ return AsciiArmoredDetachedSigningService(
18
+ name="echo-env",
19
+ public_key="public-key",
20
+ pubkey_fingerprint="SERVICE_KEY",
21
+ script=str(script),
22
+ )
23
+
24
+
25
+ def test_sign_defaults_to_service_key(signing_service):
26
+ assert signing_service.sign(os.devnull)["fingerprint"] == "SERVICE_KEY"
27
+
28
+
29
+ def test_sign_override_replaces_key_and_keeps_env_vars(signing_service):
30
+ return_value = signing_service.sign(
31
+ os.devnull, env_vars={"EXTRA": "kept"}, pubkey_fingerprint="OTHER_KEY"
32
+ )
33
+ assert return_value == {"fingerprint": "OTHER_KEY", "extra": "kept"}
34
+
35
+
36
+ @pytest.mark.asyncio
37
+ async def test_asign_override_replaces_key(signing_service):
38
+ return_value = await signing_service.asign(os.devnull, pubkey_fingerprint="OTHER_KEY")
39
+ assert return_value["fingerprint"] == "OTHER_KEY"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pulpcore
3
- Version: 3.122.2
3
+ Version: 3.123.0
4
4
  Summary: Pulp Django Application and Related Modules
5
5
  Author-email: Pulp Team <pulp-list@redhat.com>
6
6
  License-Expression: GPL-2.0-or-later
@@ -46,7 +46,7 @@ Requires-Dist: opentelemetry-api<1.46,>=1.27.0
46
46
  Requires-Dist: opentelemetry-sdk<1.46,>=1.27.0
47
47
  Requires-Dist: opentelemetry-exporter-otlp-proto-http<1.46,>=1.27.0
48
48
  Requires-Dist: protobuf<8.0,>=4.21.1
49
- Requires-Dist: pulp-glue<0.41,>=0.35.0
49
+ Requires-Dist: pulp-glue<0.42,>=0.35.0
50
50
  Requires-Dist: PyOpenSSL<27.0,>=26.3.0
51
51
  Requires-Dist: pygtrie<2.7,>=2.5
52
52
  Requires-Dist: psycopg[binary]<3.4,>=3.3.4
@@ -59,8 +59,6 @@ Requires-Dist: url-normalize<3.1,>=1.4.3
59
59
  Requires-Dist: uuid6<=2025.0.1,>=2023.5.2
60
60
  Requires-Dist: whitenoise<6.13.0,>=5.0
61
61
  Requires-Dist: yarl<1.26,>=1.12.0
62
- Provides-Extra: sftp
63
- Requires-Dist: django-storages[sftp]==1.14.6; extra == "sftp"
64
62
  Provides-Extra: s3
65
63
  Requires-Dist: django-storages[boto3]==1.14.6; extra == "s3"
66
64
  Provides-Extra: google
@@ -73,7 +71,7 @@ Provides-Extra: saml2
73
71
  Requires-Dist: djangosaml2<1.13,>=1.12.0; extra == "saml2"
74
72
  Provides-Extra: kafka
75
73
  Requires-Dist: cloudevents==1.11.0; extra == "kafka"
76
- Requires-Dist: confluent-kafka<2.16.0,>=2.4.0; extra == "kafka"
74
+ Requires-Dist: confluent-kafka<2.17.0,>=2.4.0; extra == "kafka"
77
75
  Provides-Extra: diagnostics
78
76
  Requires-Dist: pyinstrument~=5.0; extra == "diagnostics"
79
77
  Requires-Dist: memray~=1.17; extra == "diagnostics"
@@ -485,6 +485,7 @@ pulpcore/tests/unit/test_middleware.py
485
485
  pulpcore/tests/unit/test_pulp_urls.py
486
486
  pulpcore/tests/unit/test_replica.py
487
487
  pulpcore/tests/unit/test_settings.py
488
+ pulpcore/tests/unit/test_signing_service.py
488
489
  pulpcore/tests/unit/test_util.py
489
490
  pulpcore/tests/unit/test_viewsets.py
490
491
  pulpcore/tests/unit/test_vulnerability_report.py
@@ -25,7 +25,7 @@ opentelemetry-api<1.46,>=1.27.0
25
25
  opentelemetry-sdk<1.46,>=1.27.0
26
26
  opentelemetry-exporter-otlp-proto-http<1.46,>=1.27.0
27
27
  protobuf<8.0,>=4.21.1
28
- pulp-glue<0.41,>=0.35.0
28
+ pulp-glue<0.42,>=0.35.0
29
29
  PyOpenSSL<27.0,>=26.3.0
30
30
  pygtrie<2.7,>=2.5
31
31
  psycopg[binary]<3.4,>=3.3.4
@@ -51,7 +51,7 @@ django-storages[google]==1.14.6
51
51
 
52
52
  [kafka]
53
53
  cloudevents==1.11.0
54
- confluent-kafka<2.16.0,>=2.4.0
54
+ confluent-kafka<2.17.0,>=2.4.0
55
55
 
56
56
  [prometheus]
57
57
  django-prometheus
@@ -62,8 +62,5 @@ django-storages[boto3]==1.14.6
62
62
  [saml2]
63
63
  djangosaml2<1.13,>=1.12.0
64
64
 
65
- [sftp]
66
- django-storages[sftp]==1.14.6
67
-
68
65
  [uvloop]
69
66
  uvloop<0.24,>=0.20