1
0
Форкнуть 0
Change the namespace of VSTS authentication types:

  - `Micorsoft.Alm.Authentication` -> `VisualStudioTeamServices.Authentication`
This commit is contained in:
J Wyman ∞ 2018-06-07 12:06:08 -04:00
Родитель dea7b5cb9e
Коммит 36c6be2324
25 изменённых файлов: 198 добавлений и 53 удалений

Просмотреть файл

@ -25,9 +25,10 @@
using System;
using System.Threading.Tasks;
using Microsoft.Alm.Authentication;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
namespace Microsoft.Alm.Authentication
namespace VisualStudioTeamServices.Authentication
{
/// <summary>
/// Interfaces with Azure to perform authentication and identity services.

Просмотреть файл

@ -31,9 +31,10 @@ using System.Net;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Alm.Authentication;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
namespace Microsoft.Alm.Authentication
namespace VisualStudioTeamServices.Authentication
{
/// <summary>
/// Base functionality for performing authentication operations against Visual Studio Online.

Просмотреть файл

@ -25,8 +25,9 @@
using System;
using System.Threading.Tasks;
using Microsoft.Alm.Authentication;
namespace Microsoft.Alm.Authentication
namespace VisualStudioTeamServices.Authentication
{
internal interface IAzureAuthority
{

Просмотреть файл

@ -25,8 +25,9 @@
using System;
using System.Threading.Tasks;
using Microsoft.Alm.Authentication;
namespace Microsoft.Alm.Authentication
namespace VisualStudioTeamServices.Authentication
{
public interface IVstsAadAuthentication
{

Просмотреть файл

@ -25,8 +25,9 @@
using System;
using System.Threading.Tasks;
using Microsoft.Alm.Authentication;
namespace Microsoft.Alm.Authentication
namespace VisualStudioTeamServices.Authentication
{
internal interface IVstsAuthority : IAzureAuthority
{

Просмотреть файл

@ -24,8 +24,9 @@
**/
using System.Threading.Tasks;
using Microsoft.Alm.Authentication;
namespace Microsoft.Alm.Authentication
namespace VisualStudioTeamServices.Authentication
{
public interface IVstsMsaAuthentication
{

Просмотреть файл

@ -5,12 +5,12 @@
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<AppDesignerFolder>Properties</AppDesignerFolder>
<AssemblyName>Microsoft.Vsts.Authentication</AssemblyName>
<AssemblyName>VisualStudioTeamServices.Authentication</AssemblyName>
<NuGetPackageImportStamp />
<OutputType>Library</OutputType>
<ProjectGuid>{19770407-D7D8-4A37-914C-F552FF4B90D4}</ProjectGuid>
<ProjectName>Microsoft.Vsts.Authentication</ProjectName>
<RootNamespace>Microsoft.Alm.Authentication</RootNamespace>
<RootNamespace>VisualStudioTeamServices.Authentication</RootNamespace>
<TargetFrameworkVersion>v4.5.1</TargetFrameworkVersion>
</PropertyGroup>
<Import Project="..\..\build.props" />
@ -85,7 +85,8 @@
<!-- Only download a new copy of nuget.exe if we don't have a copy available -->
<PropertyGroup>
<NugetPath>nuget.exe</NugetPath>
<IsSigned></IsSigned>
<IsSigned>
</IsSigned>
<IsSigned Condition=" '$(SignType)' == '' Or '$(SignType)' == '*Undefined*' ">-unsigned</IsSigned>
<NugetWorkDir>$(OutputPath.TrimEnd('\'))</NugetWorkDir>
</PropertyGroup>

Просмотреть файл

@ -26,7 +26,7 @@
using System;
using System.Diagnostics;
namespace Microsoft.Alm.Authentication
namespace VisualStudioTeamServices.Authentication
{
[DebuggerDisplay("{DebuggerDisplay, nq}")]
public struct PersonalAccessTokenOptions

Просмотреть файл

@ -3,7 +3,7 @@ using System.Resources;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
[assembly: AssemblyTitle("Microsoft VSTS Authentication")]
[assembly: AssemblyTitle("Visual Studio Team Services Authentication")]
[assembly: AssemblyDescription("Microsoft Visual Studio Team Services Authentication Library for Windows")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("Microsoft Corporation")]
@ -19,5 +19,5 @@ using System.Runtime.InteropServices;
// Only expose internals when the binary isn't signed.
#if !SIGNED
[assembly: InternalsVisibleTo("Microsoft.Vsts.Authentication.Test")]
[assembly: InternalsVisibleTo("VisualStudioTeamServices.Authentication.Test")]
#endif

Просмотреть файл

@ -28,9 +28,10 @@ using System.Collections.Generic;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Alm.Authentication;
using Microsoft.Win32;
namespace Microsoft.Alm.Authentication
namespace VisualStudioTeamServices.Authentication
{
/// <summary>
/// A token storage object which interacts with the current user's Visual Studio 2015 hive in the Windows Registry.

Просмотреть файл

@ -25,9 +25,10 @@
using System;
using System.Threading.Tasks;
using Microsoft.Alm.Authentication;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
namespace Microsoft.Alm.Authentication
namespace VisualStudioTeamServices.Authentication
{
/// <summary>
/// Facilitates Azure Directory authentication.

Просмотреть файл

@ -27,11 +27,12 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Security.Cryptography;
using Microsoft.Alm.Authentication;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
namespace Microsoft.Alm.Authentication
namespace VisualStudioTeamServices.Authentication
{
internal class VstsAdalTokenCache : IdentityModel.Clients.ActiveDirectory.TokenCache
internal class VstsAdalTokenCache : Microsoft.IdentityModel.Clients.ActiveDirectory.TokenCache
{
private static readonly IReadOnlyList<IReadOnlyList<string>> AdalCachePaths = new string[][]
{

Просмотреть файл

@ -28,9 +28,10 @@ using System.Net.Http;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using Microsoft.Alm.Authentication;
using static System.Globalization.CultureInfo;
namespace Microsoft.Alm.Authentication
namespace VisualStudioTeamServices.Authentication
{
internal class VstsAzureAuthority : AzureAuthority, IVstsAuthority
{

Просмотреть файл

@ -25,7 +25,7 @@
using System;
namespace Microsoft.Alm.Authentication
namespace VisualStudioTeamServices.Authentication
{
[Serializable]
public sealed class VstsLocationServiceException : Exception, System.Runtime.Serialization.ISerializable

Просмотреть файл

@ -26,9 +26,10 @@
using System;
using System.Diagnostics;
using System.Threading.Tasks;
using Microsoft.Alm.Authentication;
using Microsoft.IdentityModel.Clients.ActiveDirectory;
namespace Microsoft.Alm.Authentication
namespace VisualStudioTeamServices.Authentication
{
public sealed class VstsMsaAuthentication : BaseVstsAuthentication, IVstsMsaAuthentication
{

Просмотреть файл

@ -27,9 +27,10 @@ using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.CompilerServices;
using Microsoft.Alm.Authentication;
using ScopeSet = System.Collections.Generic.HashSet<string>;
namespace Microsoft.Alm.Authentication
namespace VisualStudioTeamServices.Authentication
{
public class VstsTokenScope : TokenScope
{

Просмотреть файл

@ -1,6 +1,32 @@
using System.Diagnostics;
/**** Git Credential Manager for Windows ****
*
* Copyright (c) Microsoft Corporation
* All rights reserved.
*
* MIT License
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the """"Software""""), to deal
* in the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
**/
namespace Microsoft.Alm.Authentication.Test
using System.Diagnostics;
using Microsoft.Alm.Authentication;
namespace VisualStudioTeamServices.Authentication.Test
{
public abstract class AuthenticationTests
{

Просмотреть файл

@ -1,8 +1,34 @@
using System;
/**** Git Credential Manager for Windows ****
*
* Copyright (c) Microsoft Corporation
* All rights reserved.
*
* MIT License
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the """"Software""""), to deal
* in the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
**/
using System;
using System.Threading.Tasks;
using Microsoft.Alm.Authentication;
using Xunit;
namespace Microsoft.Alm.Authentication.Test
namespace VisualStudioTeamServices.Authentication.Test
{
internal class AuthorityFake : IVstsAuthority
{

Просмотреть файл

@ -4,13 +4,13 @@
<Import Project="..\..\packages\xunit.runner.visualstudio.2.3.1\build\net20\xunit.runner.visualstudio.props" Condition="Exists('..\..\packages\xunit.runner.visualstudio.2.3.1\build\net20\xunit.runner.visualstudio.props')" />
<Import Project="..\..\packages\xunit.core.2.3.1\build\xunit.core.props" Condition="Exists('..\..\packages\xunit.core.2.3.1\build\xunit.core.props')" />
<PropertyGroup>
<AssemblyName>Microsoft.Vsts.Authentication.Test</AssemblyName>
<AssemblyName>VisualStudioTeamServices.Authentication.Test</AssemblyName>
<AppDesignerFolder>Properties</AppDesignerFolder>
<IsCodedUITest>False</IsCodedUITest>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
<ProjectGuid>{19781214-5254-464A-BC69-FAC502046564}</ProjectGuid>
<RootNamespace>Microsoft.Alm.Authentication.Test</RootNamespace>
<RootNamespace>VisualStudioTeamServices.Authentication.Test</RootNamespace>
</PropertyGroup>
<Import Project="..\..\test.props" />
<ItemGroup>

Просмотреть файл

@ -1,7 +1,33 @@
using System.Threading.Tasks;
/**** Git Credential Manager for Windows ****
*
* Copyright (c) Microsoft Corporation
* All rights reserved.
*
* MIT License
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the """"Software""""), to deal
* in the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
**/
using System.Threading.Tasks;
using Microsoft.Alm.Authentication;
using Xunit;
namespace Microsoft.Alm.Authentication.Test
namespace VisualStudioTeamServices.Authentication.Test
{
public class VstsAadTests : AuthenticationTests
{

Просмотреть файл

@ -1,7 +1,33 @@
using System.Threading.Tasks;
/**** Git Credential Manager for Windows ****
*
* Copyright (c) Microsoft Corporation
* All rights reserved.
*
* MIT License
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the """"Software""""), to deal
* in the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
**/
using System.Threading.Tasks;
using Microsoft.Alm.Authentication;
using Xunit;
namespace Microsoft.Alm.Authentication.Test
namespace VisualStudioTeamServices.Authentication.Test
{
public class VstsMsaTests : AuthenticationTests
{

Просмотреть файл

@ -1,7 +1,32 @@
using System.Collections.Generic;
/**** Git Credential Manager for Windows ****
*
* Copyright (c) Microsoft Corporation
* All rights reserved.
*
* MIT License
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the """"Software""""), to deal
* in the Software without restriction, including without limitation the rights to
* use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
* the Software, and to permit persons to whom the Software is furnished to do so,
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
* FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
* COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
* AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
* WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
**/
using System.Collections.Generic;
using Xunit;
namespace Microsoft.Alm.Authentication.Test
namespace VisualStudioTeamServices.Authentication.Test
{
public class VstsTokenScopeTests
{

Просмотреть файл

@ -32,6 +32,7 @@ using Microsoft.Alm.Authentication;
using Bitbucket = Atlassian.Bitbucket.Authentication;
using Git = Microsoft.Alm.Authentication.Git;
using Github = GitHub.Authentication;
using Vsts = VisualStudioTeamServices.Authentication;
namespace Microsoft.Alm.Cli
{
@ -84,10 +85,10 @@ namespace Microsoft.Alm.Cli
program.Trace.WriteLine($"detecting authority type for '{operationArguments.TargetUri}'.");
// Detect the authority.
authority = await BaseVstsAuthentication.GetAuthentication(program.Context,
operationArguments.TargetUri,
Program.VstsCredentialScope,
new SecretStore(program.Context, secretsNamespace, BaseVstsAuthentication.UriNameConversion))
authority = await Vsts.BaseVstsAuthentication.GetAuthentication(program.Context,
operationArguments.TargetUri,
Program.VstsCredentialScope,
new SecretStore(program.Context, secretsNamespace, Vsts.BaseVstsAuthentication.UriNameConversion))
?? Github.Authentication.GetAuthentication(program.Context,
operationArguments.TargetUri,
Program.GitHubCredentialScope,
@ -104,12 +105,12 @@ namespace Microsoft.Alm.Cli
if (authority != null)
{
// Set the authority type based on the returned value.
if (authority is VstsMsaAuthentication)
if (authority is Vsts.VstsMsaAuthentication)
{
operationArguments.Authority = AuthorityType.MicrosoftAccount;
goto case AuthorityType.MicrosoftAccount;
}
else if (authority is VstsAadAuthentication)
else if (authority is Vsts.VstsAadAuthentication)
{
operationArguments.Authority = AuthorityType.AzureDirectory;
goto case AuthorityType.AzureDirectory;
@ -135,7 +136,7 @@ namespace Microsoft.Alm.Cli
Guid tenantId = Guid.Empty;
// Get the identity of the tenant.
var result = await BaseVstsAuthentication.DetectAuthority(program.Context, operationArguments.TargetUri);
var result = await Vsts.BaseVstsAuthentication.DetectAuthority(program.Context, operationArguments.TargetUri);
if (result.HasValue)
{
@ -143,10 +144,10 @@ namespace Microsoft.Alm.Cli
}
// Create the authority object.
authority = new VstsAadAuthentication(program.Context,
authority = new Vsts.VstsAadAuthentication(program.Context,
tenantId,
operationArguments.VstsTokenScope,
new SecretStore(program.Context, secretsNamespace, VstsAadAuthentication.UriNameConversion));
new SecretStore(program.Context, secretsNamespace, Vsts.VstsAadAuthentication.UriNameConversion));
}
// Return the allocated authority or a generic AAD backed VSTS authentication object.
@ -182,9 +183,9 @@ namespace Microsoft.Alm.Cli
program.Trace.WriteLine($"authority for '{operationArguments.TargetUri}' is Microsoft Live.");
// Return the allocated authority or a generic MSA backed VSTS authentication object.
return authority ?? new VstsMsaAuthentication(program.Context,
return authority ?? new Vsts.VstsMsaAuthentication(program.Context,
operationArguments.VstsTokenScope,
new SecretStore(program.Context, secretsNamespace, VstsMsaAuthentication.UriNameConversion));
new SecretStore(program.Context, secretsNamespace, Vsts.VstsMsaAuthentication.UriNameConversion));
case AuthorityType.Ntlm:
// Enforce NTLM authentication only.
@ -222,7 +223,7 @@ namespace Microsoft.Alm.Cli
case AuthorityType.AzureDirectory:
case AuthorityType.MicrosoftAccount:
program.Trace.WriteLine($"deleting VSTS credentials for '{operationArguments.TargetUri}'.");
var vstsAuth = authentication as BaseVstsAuthentication;
var vstsAuth = authentication as Vsts.BaseVstsAuthentication;
return await vstsAuth.DeleteCredentials(operationArguments.TargetUri);
case AuthorityType.GitHub:
@ -574,14 +575,14 @@ namespace Microsoft.Alm.Cli
{
program.Trace.WriteLine($"{program.KeyTypeName(KeyType.VstsScope)} = '{value}'.");
VstsTokenScope vstsTokenScope = VstsTokenScope.None;
Vsts.VstsTokenScope vstsTokenScope = Vsts.VstsTokenScope.None;
var scopes = value.Split(TokenScopeSeparatorCharacters.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
for (int i = 0; i < scopes.Length; i += 1)
{
scopes[i] = scopes[i].Trim();
if (VstsTokenScope.Find(scopes[i], out VstsTokenScope scope))
if (Vsts.VstsTokenScope.Find(scopes[i], out Vsts.VstsTokenScope scope))
{
vstsTokenScope = vstsTokenScope | scope;
}
@ -710,8 +711,8 @@ namespace Microsoft.Alm.Cli
case AuthorityType.AzureDirectory:
{
var aadAuth = authentication as VstsAadAuthentication;
var patOptions = new PersonalAccessTokenOptions()
var aadAuth = authentication as Vsts.VstsAadAuthentication;
var patOptions = new Vsts.PersonalAccessTokenOptions()
{
RequireCompactToken = true,
TokenDuration = operationArguments.TokenDuration,
@ -746,8 +747,8 @@ namespace Microsoft.Alm.Cli
case AuthorityType.MicrosoftAccount:
{
var msaAuth = authentication as VstsMsaAuthentication;
var patOptions = new PersonalAccessTokenOptions()
var msaAuth = authentication as Vsts.VstsMsaAuthentication;
var patOptions = new Vsts.PersonalAccessTokenOptions()
{
RequireCompactToken = true,
TokenDuration = operationArguments.TokenDuration,

Просмотреть файл

@ -32,6 +32,7 @@ using Microsoft.Alm.Authentication;
using static System.Globalization.CultureInfo;
using Git = Microsoft.Alm.Authentication.Git;
using Vsts = VisualStudioTeamServices.Authentication;
namespace Microsoft.Alm.Cli
{
@ -85,7 +86,7 @@ namespace Microsoft.Alm.Cli
private string _username;
private bool _useSystemConfig;
private bool _validateCredentials;
private VstsTokenScope _vstsTokenScope;
private Vsts.VstsTokenScope _vstsTokenScope;
private bool _writeLog;
/// <summary>
@ -413,7 +414,7 @@ namespace Microsoft.Alm.Cli
/// <para/>
/// Default value is `<seealso cref="Program.VstsCredentialScope"/>`.
/// </summary>
public virtual VstsTokenScope VstsTokenScope
public virtual Vsts.VstsTokenScope VstsTokenScope
{
get { return _vstsTokenScope; }
set { _vstsTokenScope = value; }

Просмотреть файл

@ -35,6 +35,7 @@ using Microsoft.Alm.Authentication;
using Bitbucket = Atlassian.Bitbucket.Authentication;
using Git = Microsoft.Alm.Authentication.Git;
using Github = GitHub.Authentication;
using Vsts = VisualStudioTeamServices.Authentication;
namespace Microsoft.Alm.Cli
{
@ -77,7 +78,7 @@ namespace Microsoft.Alm.Cli
internal static readonly char[] NewLineChars = Environment.NewLine.ToCharArray();
internal static readonly VstsTokenScope VstsCredentialScope = VstsTokenScope.CodeWrite | VstsTokenScope.PackagingRead;
internal static readonly Vsts.VstsTokenScope VstsCredentialScope = Vsts.VstsTokenScope.CodeWrite | Vsts.VstsTokenScope.PackagingRead;
internal static readonly Github.TokenScope GitHubCredentialScope = Github.TokenScope.Gist | Github.TokenScope.Repo;
internal BasicCredentialPromptDelegate _basicCredentialPrompt = ConsoleFunctions.CredentialPrompt;