Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add empty string in non-multi dictionary for empty lines (#1332)
Before 2.2.0, we only accepted input arguments in the form `key=value`. To support the new `wwwauth[]` argument from Git, we added support for these multi-value args `key[]=value`. In changing from an dictionary of `string:string` to `string:list<string>` we accidentally changed the behaviour of dictionary parsing in the case that an empty valued (non-multi) argument was provided. For example: ```text username=\n ``` Previously this was returned as an empty string. Post 2.2.0 this became `null`, causing an error in scenarios were before there was none. One such scenario is with Windows Integrated Authentication (for example when connecting to Azure DevOps Server/TFS instances), whereby we return an empty username and password to Git to signal this auth mode. Git then returns to us the empty username and password in a `store` call. Update the handling in `ParseMultiLine` to restore the previous behaviour for empty-valued arguments being mapped to the empty string. Fixes #1331 --- **Bug reproduction steps:** ```console % printf "url=https://example.com\nusername=\npassword=\n\n" | git credential approve fatal: Missing 'username' input argument ```
- Loading branch information