Avoid having a public signature with a default value parameter by add ing a `GeneratePersonalAccessToken` overload without `tokenDuration` parameter, and removing default value on origin method signature.
Refactor the `Where.FindApp()` method to reduce complexity.
- [x] Break the method logic into five seperate parts.
- [x] Use local functions to avoid polluting the `Where` type with single use functions.
When detecting if an authority is VSTS
- Use the actual URL when it is available
- Query the server and check for Vsts specific headers
- Use the Www-Authenticate header when available to determine the resource tenant.
When attempting to determine which authentication options are available, use `TargetUri.ActualUri` when it is available because the actual URL is more likely to provide accurate options than the query URL (when they're different).
Read the request's "actual URL" from the input stream. To enable easier development debugging when setting the `OperationArguments.GitRemoteHttpCommandLine` value without having to execute "git-remote-http(s)" prior to GCM being started.
Unbranched configuration can make life very difficult, therefore the more configuration that can be branched the easier out lives get? Not sure this is true.
Move the VSTS CI configuration from the CI system into the repository via the "vsts-ci.yml" file.
Due to struct size differences, the remote URL capture via command line sniffing failed.
Instead of relying on fixed size and offset value, the p/invoke layer should use the offset and size values which align with the bitness of the process.
Improve the credential key generation for VSTS account credentials. Update the pattern to use {host}/{organization} for the format when the repository is Azure hosted.
Only append the "X-GitHub-OTP" header if there's a value to append with it. Including the header without a value appears cause github.com to emit 2FA SMS messages.
- Restore the create nupkg build target to 'Microsoft.Vsts.Authentication' project.
- Update the 'Microsoft.Alm.Authentication.nuspec' to hard code author, copyright, and owner values.
Group all of the shared projects under the same folder "Shared/", and update all referencing projects.
- Move "Shared/" -> "Shared/Win32/"
- Move "Cli/Shared/" -> "Shared/Cli/".
- Move "Gui-Shared/" -> "Shared/Gui/".
- Update project and solution files.
Add the ability to read the remote name and URL from the parent git-remote-http(s).exe process. The process must a parent of the current process.
Update `TargetUri` to accept a `commandUri` as part of its constructor; enabling the type to carry the URL read from the git-remote-http(s).exe process.
Add new `.CreateWith(...)` methods to `TargetUri` to more easily create new instances with only partial updates.
Actually check the for a host-name match when validting if a URI is a potential VSTS URL.
Additoinally, use the common conversion routine when it can be used instead of local implementations.