Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Note: This is my first time ever contributing to an open source project. I'm super grateful for the work all of you are putting into the project. Keep it up!
The issue
According to issue #5134, environment variables are expanded when generating a
requirements.txt
file withpipenv requirements
. This leads to credentials being leaked.The fix
The culprit can be found here.
How I understand the code, when calling
pipenv requirements
the lockfile is loaded using thelockfile_content
property of theproject
object. This contains the lockfile as it used during runtime.However, when generating a
requirements.txt
file this is not what we want, since environment variables are expanded.Luckily, the lockfile can be loaded without expanding environment variables.
def load_lockfile(self, expand_env_vars=True):
https://github.com/pypa/pipenv/blob/main/pipenv/project.py#L974
This is what I have done.
The checklist
news/
directory to describe this fix with the extension.bugfix
,.feature
,.behavior
,.doc
..vendor
. or.trivial
(this will appear in the release changelog). Use semantic line breaks and name the file after the issue number or the PR #.