From 7a0b4821df6e57a9465f78d71fb1b80fab86c875 Mon Sep 17 00:00:00 2001 From: Mark Adamson <3154635+mungojam@users.noreply.github.com> Date: Tue, 24 Oct 2023 23:03:29 +0100 Subject: [PATCH] pass through pipfile index urls when creating https session so that keyring works --- pipenv/project.py | 3 ++- pipenv/utils/internet.py | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/pipenv/project.py b/pipenv/project.py index 291607ef..15ade367 100644 --- a/pipenv/project.py +++ b/pipenv/project.py @@ -239,10 +239,11 @@ class Project: if self.sessions.get(source["name"]): session = self.sessions[source["name"]] else: - session = get_requests_session( + session = get_requests_session( self.s.PIPENV_MAX_RETRIES, source.get("verify_ssl", True), cache_dir=self.s.PIPENV_CACHE_DIR, + source=source.get("url"), ) self.sessions[source["name"]] = session return session diff --git a/pipenv/utils/internet.py b/pipenv/utils/internet.py index 77c68302..6ed420c8 100644 --- a/pipenv/utils/internet.py +++ b/pipenv/utils/internet.py @@ -8,10 +8,11 @@ from pipenv.patched.pip._internal.network.download import PipSession from pipenv.patched.pip._vendor.urllib3 import util as urllib3_util -def get_requests_session(max_retries=1, verify_ssl=True, cache_dir=USER_CACHE_DIR): +def get_requests_session(max_retries=1, verify_ssl=True, cache_dir=USER_CACHE_DIR, source=None): """Load requests lazily.""" pip_client_cert = os.environ.get("PIP_CLIENT_CERT") - requests_session = PipSession(cache=cache_dir, retries=max_retries) + index_urls = [source] if source else None + requests_session = PipSession(cache=cache_dir, retries=max_retries, index_urls=index_urls) if pip_client_cert: requests_session.cert = pip_client_cert if verify_ssl is False: