我有一个自动分支实用程序,可以执行各种操作。 我们已升级到VSTS,我在使用新服务器的Tfs调用时遇到问题:
//login
NetworkCredential netCred = new NetworkCredential("emailAddress", password");
BasicAuthCredential basicCred = new BasicAuthCredential(netCred);
TfsClientCredentials tfsCred = new TfsClientCredentials(basicCred);
tfsCred.AllowInteractive = false;
TfsTeamProjectCollection tfsServer = new TfsTeamProjectCollection(new Uri("https://myco.visualstudio.com/mycoll"), tfsCred);
// get a local workspace
VersionControlServer sc = server.GetService(typeof(VersionControlServer)) as VersionControlServer;
... other code
再繁荣! “您无权访问https://myco.visualstudio.com/mycoll”
某处有设置吗?
我应该尝试使用REST API吗?
我是否打电话给我不应该?
我已尝试过各种格式的URI,其中:8080,路径中的/ tfs无效!
答案 0 :(得分:1)
您可以使用PAT(个人访问令牌)访问VSTS。在VSTS中单击您的配置文件,然后转到安全菜单项。您可以在那里定义PAT。保持PAT保存,因为它只会显示一次。
您可以使用PAT访问TFS REST API,如以下PowerShell示例所示。使用https://yourAccount.visualstudio.com或https://yourAccount.visualstudio.com/DefaultCollection获取ColletionUri参数即可。
param(
[Parameter(Mandatory=$true)]
[string] $token,
[Parameter(Mandatory=$true)]
[string] $collectionUri
)
$User=""
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $User,$token)));
$header = @{Authorization=("Basic {0}" -f $base64AuthInfo)};
$Uri = $collectionUri + '/_apis/projects?api-version=1.0'
$projects = Invoke-RestMethod -Method Get -ContentType application/json -Uri $Uri -Headers $header
您可以在https://www.domstamand.com/accessing-tfs-2017-programmatically/
找到C#代码示例