devpi-server 6.20.0__tar.gz → 6.20.1__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.
- {devpi_server-6.20.0 → devpi_server-6.20.1}/CHANGELOG +9 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/CHANGELOG.short.rst +9 -29
- {devpi_server-6.20.0 → devpi_server-6.20.1}/PKG-INFO +10 -30
- devpi_server-6.20.1/devpi_server/__init__.py +1 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/views.py +9 -3
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server.egg-info/PKG-INFO +10 -30
- devpi_server-6.20.0/devpi_server/__init__.py +0 -1
- {devpi_server-6.20.0 → devpi_server-6.20.1}/.flake8 +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/LICENSE +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/MANIFEST.in +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/README.rst +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/__main__.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/auth.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/auth_basic.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/auth_devpi.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/cfg/__init__.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/cfg/crontab.template +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/cfg/devpi.service.template +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/cfg/launchd-macos.txt.template +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/cfg/nginx-devpi-caching-http.conf.template +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/cfg/nginx-devpi-caching-location.conf.template +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/cfg/nginx-devpi-caching-proxy.conf.template +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/cfg/nginx-devpi-caching-server.conf.template +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/cfg/nginx-devpi.conf.template +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/cfg/supervisor-devpi.conf.template +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/cfg/supervisord.conf.template +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/cfg/windows-service.txt.template +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/compat.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/config.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/exceptions.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/filestore.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/filestore_db.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/filestore_fs.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/filestore_fs_base.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/filestore_hash_hl.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/fileutil.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/fsck.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/genconfig.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/hookspecs.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/htmlpage.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/httpclient.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/importexport.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/init.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/interfaces.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/keyfs.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/keyfs_sqlite.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/keyfs_sqlite_fs.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/keyfs_types.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/log.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/main.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/markers.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/middleware.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/mirror.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/model.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/mythread.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/normalized.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/passwd.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/proxy.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/py.typed +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/readonly.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/replica.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/sizeof.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/view_auth.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server.egg-info/SOURCES.txt +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server.egg-info/dependency_links.txt +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server.egg-info/entry_points.txt +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server.egg-info/requires.txt +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server.egg-info/top_level.txt +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/mypy.ini +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/pyproject.toml +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/pytest_devpi_server/__init__.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/setup.cfg +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/__init__.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/conftest.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/example.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/functional.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/badindexname/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/badusername/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/basescycle/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/createdmodified/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/dashes_v1/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/dashes_v1/user1/dev/hello/hello-1.2_3.tar.gz +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/deletedbase/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/mirrordata/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/mirrordata/root/pypi/dddttt/0.1.dev1/dddttt-0.1.dev1.tar.gz +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/modifiedpypi/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/no_history_log/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/no_history_log/user1/dev/hello/hello-1.0.tar.gz +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/nocreatedmodified/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/normalization/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/normalization/root/dev/hello.pkg/hello.pkg-1.0.tar.gz +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/normalization_merge/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/normalization_merge/root/dev/hello-pkg/hello.pkg-1.1.tar.gz +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/normalization_merge/root/dev/hello.pkg/hello.pkg-1.0.tar.gz +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/norootpypi/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/nouser/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/removedindexplugin/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/removedindexplugin/user/dev/pkg/pkg-1.0.tar.gz +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/toxresult_naming_scheme/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/toxresult_naming_scheme/root/dev/hello/0.9/hello-0.9.tar.gz +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/toxresult_naming_scheme/root/dev/hello/sha256=ed7002b439e9ac845f22357d822bac1444730fbdb6016d3ec9432297b9ec9f73/hello-0.9.tar.gz.toxresult0 +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/toxresult_upload_default/dataindex.json +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/plugin.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/py.typed +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/reqmock.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/simpypi.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_auth.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_authcheck.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_config.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_conftest.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_filestore.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_filestore_fs.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_fileutil.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_fsck.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_genconfig.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_importexport.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_keyfs.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_log.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_main.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_mirror.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_mirror_no_project_list.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_model.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_mythread.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_nginx.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_nginx_replica.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_permissions.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_readonly.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_replica.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_replica_functional.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_stage_customizer.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_streaming.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_streaming_nginx.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_streaming_replica.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_streaming_replica_nginx.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_view_auth.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_views.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_views_patch.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_views_push_external.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_views_status.py +0 -0
- {devpi_server-6.20.0 → devpi_server-6.20.1}/tox.ini +0 -0
|
@@ -9,6 +9,15 @@ Changelog
|
|
|
9
9
|
|
|
10
10
|
.. towncrier release notes start
|
|
11
11
|
|
|
12
|
+
6.20.1 (2026-05-11)
|
|
13
|
+
===================
|
|
14
|
+
|
|
15
|
+
Bug Fixes
|
|
16
|
+
---------
|
|
17
|
+
|
|
18
|
+
- Pass through request headers when streaming .metadata from mirror. Refs #1018
|
|
19
|
+
|
|
20
|
+
|
|
12
21
|
6.20.0 (2026-04-30)
|
|
13
22
|
===================
|
|
14
23
|
|
|
@@ -66,32 +75,3 @@ Bug Fixes
|
|
|
66
75
|
|
|
67
76
|
- Always allow replicas to access deleted releases to get the proper ``410 Gone`` instead of ``403 Forbidden`` when ``devpi-lockdown`` is in use.
|
|
68
77
|
|
|
69
|
-
|
|
70
|
-
6.19.0 (2026-02-06)
|
|
71
|
-
===================
|
|
72
|
-
|
|
73
|
-
Features
|
|
74
|
-
--------
|
|
75
|
-
|
|
76
|
-
- Add ``--autocreate-users`` server option.
|
|
77
|
-
Automatically creates users that don't exist in devpi, but have successfully authenticated via an authentication plugin.
|
|
78
|
-
A typical example of when to enable this would be when authenticating via an LDAP directory.
|
|
79
|
-
Automatically created users do not have passwords, and have no password hash to prevent local authentication.
|
|
80
|
-
|
|
81
|
-
- Add ``replica-files-in-sync-at``, ``replica-init-queue-finished-at`` and ``replica-metadata-in-sync-at`` to status view, the existing ``replica-in-sync-at`` is now a combination of all three instead of just metadata.
|
|
82
|
-
|
|
83
|
-
- Warn when an unknown option is found in config file to detect typos. Be aware that some commands don't use all the options, that is why this only warns instead of exiting.
|
|
84
|
-
|
|
85
|
-
- Add new ``devpiserver_user_created`` hook which can be used to create default indexes or other setup for newly created users.
|
|
86
|
-
|
|
87
|
-
Bug Fixes
|
|
88
|
-
---------
|
|
89
|
-
|
|
90
|
-
- Fix ``+status`` json encoding errors by making sure the ``FatalResponse.url`` attribute is a string.
|
|
91
|
-
|
|
92
|
-
- Ignore existing unknown index options from uninstalled plugins when patching other options with ``+=`` and ``-=``.
|
|
93
|
-
|
|
94
|
-
- Fix removal with ``-=`` of index options with default values from ``devpiserver_indexconfig_defaults`` hooks.
|
|
95
|
-
|
|
96
|
-
- Fix #1110: a list for the ``listen`` option in a config file stopped working in 6.18.0.
|
|
97
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devpi-server
|
|
3
|
-
Version: 6.20.
|
|
3
|
+
Version: 6.20.1
|
|
4
4
|
Summary: devpi-server: backend for hosting private package indexes and PyPI on-demand mirrors
|
|
5
5
|
Maintainer-email: Florian Schulze <mail@pyfidelity.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -121,6 +121,15 @@ Changelog
|
|
|
121
121
|
|
|
122
122
|
.. towncrier release notes start
|
|
123
123
|
|
|
124
|
+
6.20.1 (2026-05-11)
|
|
125
|
+
===================
|
|
126
|
+
|
|
127
|
+
Bug Fixes
|
|
128
|
+
---------
|
|
129
|
+
|
|
130
|
+
- Pass through request headers when streaming .metadata from mirror. Refs #1018
|
|
131
|
+
|
|
132
|
+
|
|
124
133
|
6.20.0 (2026-04-30)
|
|
125
134
|
===================
|
|
126
135
|
|
|
@@ -178,32 +187,3 @@ Bug Fixes
|
|
|
178
187
|
|
|
179
188
|
- Always allow replicas to access deleted releases to get the proper ``410 Gone`` instead of ``403 Forbidden`` when ``devpi-lockdown`` is in use.
|
|
180
189
|
|
|
181
|
-
|
|
182
|
-
6.19.0 (2026-02-06)
|
|
183
|
-
===================
|
|
184
|
-
|
|
185
|
-
Features
|
|
186
|
-
--------
|
|
187
|
-
|
|
188
|
-
- Add ``--autocreate-users`` server option.
|
|
189
|
-
Automatically creates users that don't exist in devpi, but have successfully authenticated via an authentication plugin.
|
|
190
|
-
A typical example of when to enable this would be when authenticating via an LDAP directory.
|
|
191
|
-
Automatically created users do not have passwords, and have no password hash to prevent local authentication.
|
|
192
|
-
|
|
193
|
-
- Add ``replica-files-in-sync-at``, ``replica-init-queue-finished-at`` and ``replica-metadata-in-sync-at`` to status view, the existing ``replica-in-sync-at`` is now a combination of all three instead of just metadata.
|
|
194
|
-
|
|
195
|
-
- Warn when an unknown option is found in config file to detect typos. Be aware that some commands don't use all the options, that is why this only warns instead of exiting.
|
|
196
|
-
|
|
197
|
-
- Add new ``devpiserver_user_created`` hook which can be used to create default indexes or other setup for newly created users.
|
|
198
|
-
|
|
199
|
-
Bug Fixes
|
|
200
|
-
---------
|
|
201
|
-
|
|
202
|
-
- Fix ``+status`` json encoding errors by making sure the ``FatalResponse.url`` attribute is a string.
|
|
203
|
-
|
|
204
|
-
- Ignore existing unknown index options from uninstalled plugins when patching other options with ``+=`` and ``-=``.
|
|
205
|
-
|
|
206
|
-
- Fix removal with ``-=`` of index options with default values from ``devpiserver_indexconfig_defaults`` hooks.
|
|
207
|
-
|
|
208
|
-
- Fix #1110: a list for the ``listen`` option in a config file stopped working in 6.18.0.
|
|
209
|
-
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "6.20.1"
|
|
@@ -20,6 +20,7 @@ from .model import InvalidUserconfig
|
|
|
20
20
|
from .model import ReadonlyIndex
|
|
21
21
|
from .model import RemoveValue
|
|
22
22
|
from .normalized import normalize_name
|
|
23
|
+
from .proxy import clean_request_headers
|
|
23
24
|
from .proxy import clean_response_headers
|
|
24
25
|
from .readonly import get_mutable_deepcopy
|
|
25
26
|
from collections import defaultdict
|
|
@@ -1585,7 +1586,9 @@ class PyPIView:
|
|
|
1585
1586
|
return apireturn(404, "mirror_provides_core_metadata disabled")
|
|
1586
1587
|
url = url.replace(path=f"{url.path}.metadata")
|
|
1587
1588
|
try:
|
|
1588
|
-
app_iter = iter_stream_remote_file(
|
|
1589
|
+
app_iter = iter_stream_remote_file(
|
|
1590
|
+
stage, url, clean_request_headers(request)
|
|
1591
|
+
)
|
|
1589
1592
|
headers = next(app_iter)
|
|
1590
1593
|
except BadGateway as e:
|
|
1591
1594
|
if e.code == 404:
|
|
@@ -1901,9 +1904,12 @@ class FileStreamer:
|
|
|
1901
1904
|
raise err
|
|
1902
1905
|
|
|
1903
1906
|
|
|
1904
|
-
def iter_stream_remote_file(stage, url):
|
|
1907
|
+
def iter_stream_remote_file(stage, url, headers):
|
|
1905
1908
|
with contextlib.ExitStack() as cstack:
|
|
1906
|
-
|
|
1909
|
+
headers.pop("User-Agent", None)
|
|
1910
|
+
r = stage.http.stream(
|
|
1911
|
+
cstack, "GET", url, allow_redirects=True, extra_headers=headers
|
|
1912
|
+
)
|
|
1907
1913
|
if r.status_code != 200:
|
|
1908
1914
|
r.close()
|
|
1909
1915
|
msg = f"error {r.status_code} getting {url}"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: devpi-server
|
|
3
|
-
Version: 6.20.
|
|
3
|
+
Version: 6.20.1
|
|
4
4
|
Summary: devpi-server: backend for hosting private package indexes and PyPI on-demand mirrors
|
|
5
5
|
Maintainer-email: Florian Schulze <mail@pyfidelity.com>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -121,6 +121,15 @@ Changelog
|
|
|
121
121
|
|
|
122
122
|
.. towncrier release notes start
|
|
123
123
|
|
|
124
|
+
6.20.1 (2026-05-11)
|
|
125
|
+
===================
|
|
126
|
+
|
|
127
|
+
Bug Fixes
|
|
128
|
+
---------
|
|
129
|
+
|
|
130
|
+
- Pass through request headers when streaming .metadata from mirror. Refs #1018
|
|
131
|
+
|
|
132
|
+
|
|
124
133
|
6.20.0 (2026-04-30)
|
|
125
134
|
===================
|
|
126
135
|
|
|
@@ -178,32 +187,3 @@ Bug Fixes
|
|
|
178
187
|
|
|
179
188
|
- Always allow replicas to access deleted releases to get the proper ``410 Gone`` instead of ``403 Forbidden`` when ``devpi-lockdown`` is in use.
|
|
180
189
|
|
|
181
|
-
|
|
182
|
-
6.19.0 (2026-02-06)
|
|
183
|
-
===================
|
|
184
|
-
|
|
185
|
-
Features
|
|
186
|
-
--------
|
|
187
|
-
|
|
188
|
-
- Add ``--autocreate-users`` server option.
|
|
189
|
-
Automatically creates users that don't exist in devpi, but have successfully authenticated via an authentication plugin.
|
|
190
|
-
A typical example of when to enable this would be when authenticating via an LDAP directory.
|
|
191
|
-
Automatically created users do not have passwords, and have no password hash to prevent local authentication.
|
|
192
|
-
|
|
193
|
-
- Add ``replica-files-in-sync-at``, ``replica-init-queue-finished-at`` and ``replica-metadata-in-sync-at`` to status view, the existing ``replica-in-sync-at`` is now a combination of all three instead of just metadata.
|
|
194
|
-
|
|
195
|
-
- Warn when an unknown option is found in config file to detect typos. Be aware that some commands don't use all the options, that is why this only warns instead of exiting.
|
|
196
|
-
|
|
197
|
-
- Add new ``devpiserver_user_created`` hook which can be used to create default indexes or other setup for newly created users.
|
|
198
|
-
|
|
199
|
-
Bug Fixes
|
|
200
|
-
---------
|
|
201
|
-
|
|
202
|
-
- Fix ``+status`` json encoding errors by making sure the ``FatalResponse.url`` attribute is a string.
|
|
203
|
-
|
|
204
|
-
- Ignore existing unknown index options from uninstalled plugins when patching other options with ``+=`` and ``-=``.
|
|
205
|
-
|
|
206
|
-
- Fix removal with ``-=`` of index options with default values from ``devpiserver_indexconfig_defaults`` hooks.
|
|
207
|
-
|
|
208
|
-
- Fix #1110: a list for the ``listen`` option in a config file stopped working in 6.18.0.
|
|
209
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__version__ = "6.20.0"
|
|
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
|
{devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/cfg/nginx-devpi-caching-http.conf.template
RENAMED
|
File without changes
|
|
File without changes
|
{devpi_server-6.20.0 → devpi_server-6.20.1}/devpi_server/cfg/nginx-devpi-caching-proxy.conf.template
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/importexportdata/nouser/dataindex.json
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
|
|
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
|
{devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_mirror_no_project_list.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
|
{devpi_server-6.20.0 → devpi_server-6.20.1}/test_devpi_server/test_streaming_replica_nginx.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|