diff --git a/news/5994.bugfix.rst b/news/5994.bugfix.rst new file mode 100644 index 00000000..2203dfff --- /dev/null +++ b/news/5994.bugfix.rst @@ -0,0 +1 @@ +Pass through pipfile index urls when creating https session so that keyring fully works diff --git a/pipenv/project.py b/pipenv/project.py index 291607ef..7e96db12 100644 --- a/pipenv/project.py +++ b/pipenv/project.py @@ -243,6 +243,7 @@ class Project: 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..04ab91cc 100644 --- a/pipenv/utils/internet.py +++ b/pipenv/utils/internet.py @@ -8,10 +8,15 @@ 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: