我有一个2017年在线TFS试用版,我正试图找到一种使用powershell命令上传文件的方法。我尝试使用包装的api命令安装一些相关的模块,但它们都没有类似的东西。
有任何建议吗?here are actually the two commands i am trying to execute through ps
答案 0 :(得分:0)
为什么你必须这样做?通过门户网站的行动更方便和友好。
无论您如何尝试使用REST API。
创建文件夹 :(在下面的示例中test0232
下创建文件夹$/0522TFVCScrum/
)
Param(
[string]$vsoAccount = "YourInstance",
[string]$keepForever = "true",
[string]$user = "test@hotmail.com",
[string]$token = "PAT or Password here"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
function CreateJsonBody
{
$value = @"
{"changes":[{"changeType":1,"item":{"path":"$/0522TFVCScrum/test0232","isFolder":true}}],"comment":"Added folder test0232"}
"@
return $value
}
$json = CreateJsonBody
$uri = "https://$($vsoAccount).visualstudio.com/_apis/tfvc/changesets?api-version=4.1-preview.3"
$result = Invoke-RestMethod -Uri $uri -Method Post -Body $json -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
Write-host $result
使用以下正文创建文件 :(只需替换上面脚本中的Jsonbody,此示例中创建的0229test.ps1
)
{"changes":[{"changeType":1,"item":{"path":"$/0522TFVCScrum/0229test.ps1","contentMetadata":{"encoding":65001}},"newContent":{"content":"test0229","contentType":0}}],"comment":"Added file 0229test.ps1"}
上传文件:
找不到直接使用REST API上传文件的方法,但是您可以首先尝试copy files到工作区,然后使用Add command添加源控件中的文件,然后检入文件Checkin command。
下载为Zip:
您可以使用工具跟踪API,然后您可以获得如下所示的URL:
https://{your account}.visualstudio.com/b3cbc52a-22f6-4de9-ae78-b2b305365ff8/_api/_versioncontrol/itemContentZipped?repositoryId=&path=%24%2F0522TFVCScrum%2Ftest0228&version=T&__v=5
然后你可以尝试在脚本中使用该url下载。