2 回答
TA贡献1821条经验 获得超4个赞
默认情况下,我们只能通过登录用户添加评论。
但是,您可以使用 REST API 将评论添加到与另一个用户的讨论中,以更新启用System.ChangedBy字段的值bypassRules:
以下样本供您参考:
Param(
[string]$baseurl = "http://server:8080/tfs/DefaultCollection",
[string]$projectName = "ProjectName",
[string]$workitemID = "26",
[string]$user = "username",
[string]$token = "token/Password"
)
# Base64-encodes the Personal Access Token (PAT) appropriately
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $user,$token)))
write-host $WorkitemType
function CreateJsonBody
{
$value = @"
[
{
"op": "add",
"path": "/fields/System.History",
"value": "Comment here"
},
{
"op": "add",
"path": "/fields/System.ChangedBy",
"value": "user@oxxx.com"
}
]
"@
return $value
}
$json = CreateJsonBody
$uri = "$baseurl/$($projectName)/_apis/wit/workitems/$($workitemID)?bypassRules=true&api-version=2.2"
Write-Host $uri
$result = Invoke-RestMethod -Uri $uri -Method Patch -Body $json -ContentType "application/json-patch+json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)}
"value": "user@oxxx.com" 可以是其他用户的有效用户 ID (guid) 或用户电子邮件。
TA贡献1921条经验 获得超9个赞
仅当您使用他的凭据登录时,您才能以其他用户的身份向讨论添加评论:
NetworkCredential cred = new NetworkCredential("anotherUserName", "password");
TfsTeamProjectCollection _tfs = new TfsTeamProjectCollection(new Uri("serverUrl"), cred);
_tfs.EnsureAuthenticated();
在您像其他用户一样进行身份验证后,您将文本添加到“历史记录”字段,您将在讨论中看到作为其他用户登录的文本。
- 2 回答
- 0 关注
- 186 浏览
添加回答
举报