If the user supplies the path, give it priority for setting for setting `TargetUri.ActualUri`. Needed for DevOps urls which require host/path[0] to authenticate
- [x] Change all text, strings, and other resources which refer to Visual Studio Team Services [VSTS] to refer to Azure DevOps instead.
- [x] Change the VisualStudioTeamServices namespace and type names from Visual Studio Team Services / VSTS to Azure DevOps.
- [x] Change the VisualStudioTeamServices named projects to AzureDevops. Update all solution and cross-project references to accomodate for the changes.
- [x] Change the VisualStudioTeamServices named projects to AzureDevops. Update all solution and cross-project references to accomodate for the changes.
- [x] Move all files from 'VisualStudioTeamServices' into 'AzureDevOps' folders.
- [x] Update all solution and project references.
- [x] Update test data to use the new "Devops" name.
- [x] Since users won't be ready to update their branded configuration values, we need to retain support for the VSTS branded options; which emitting a warning for the deprecated option usage.
Standardize and clean up the CLI code.
- [x] Use a common style for all p/invoke callsites.
- [x] Properly indent and scope `switch` statements.
- [x] Ensure use of correct comparer types.
- [x] Adopt use of inline declaration where suitable.
- [x] Adopt use of `var` where suitable / avoid use of `var` where not suitable.
- [x] Clean up `using` statements in file headers.
- [x] Adopt `using static` statements where suitable.
- [x] Implement debugger display attributes where needed.
Clean up the proxy project files by adding a 'proxy.props' file to the root of the repository with common properties for proxy projects.
Update all proxy projects to reference the common 'proxy.props' file and remove the common properties from the individual project files.
VSTS has made a series of changes to their Identity service.
One such change is that the '_apis/connectiondata' always returns either "200 OK" or "404 Not Found". This means the returned content must be examined to determine if the credentials are valida or not.
Another change is that requests lacking "accepts", "accepts-encoding", and "cache-control" headers are aways given the 'anonymous user' response.
- [x] Provide a method of detection for anonymous accounts during credential validation.
- [x] Ensure that credential validation requests can handle HTTP cookies as part of their response flow.
- [x] Add "accepts", "accepts-encoding", and "cache-control" headers to all network requests.
- [x] Provide handling of "content-encoding" content of "gzip" and "deflate".
Provide a mechanism for setting `TargetUri.ActualUri` via environment variables.
- [x] Add `UrlOverride` property to `OperationArguments`.
- [x] Add `UrlOverride` to the `KeyType` enumeration.
- [x] Modify `OperationArguments` to use `UrlOverride` in its calculation of `TargetUri`.
- [x] Add feature validation test.
Provide capture and reply proxy project for 'Github.Authentication'.
- [x] Provide capture proxy.
- [x] Provide replay proxy.
- [x] Extend `Microsoft.Alm.Authentication.Test.UnitTestBase` with specialized support for GitHub vua `IGui`.
In preparation for establishing capture and replay framework, global static services need to be replaced with context provided services.
- [x] Provide a settings service provider.
- [x] Abstract `System.Environment` functionality through service provider.
- [x] Adopt contextual service provider settings abstraction.
In preparation for adding capture and replay proxies, more and more content cannot be static. In order to achieve this, as many static values are moved into instance values in the `Program` class.
The shape of the `ProcessBasicInformation` was incorrect, this change fixes the shape and aligns it with the definition on Microsoft Docs.
Adds documentation comments to several types defined in the 'Microsoft.Alm.Win32' project.
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.
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.
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.