Creation of all UsernamePasswordCredentials ensure non-null password #2248
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.
This is to avoid runtime errors when using personal access tokens to authenticate
when fetching etc. from private github repos.
The standard way to authenticate:
new UsernamePasswordCredentials
{
Username = "github-personal-access-token", // GITVERSION_REMOTE_USERNAME
Password = string.Empty
};
GitVersion should support this authentication scheme necessary when having 2FA.
When using environment variables to propagate credentials password will end up
being null, because GITVERSION_REMOTE_PASSWORD is not present when passing empty
value.
This commit guards against libgit2sharp throwing LibGit2SharpException:
"UsernamePasswordCredentials contains a null Username or Password."
Description, Motivation and Context
Fixes #2247.
How Has This Been Tested?
I have cross-compiled (self-contained) gitversion.exe for win-x64 and seen that all my builds of private github repos with this 5.2.5-xxxx does succeed again.
Checklist:
My change can be done in various ways. 3 changes (in 3 different files) are where UsernamePasswordCredentials are instantiated and passed to libgit2sharp. Feel free to refactor.
No tests, because the change is trivial, and should not break anybodys use of gitversion.