我尝试使用 Rest API 在 Azure DevOps Server 2020 中创建服务端点。
仅当 PAT 具有完全访问权限时才会创建服务器端点。如果我选择自定义范围以及服务连接(读取、查询和管理),则会引发未经授权的错误。
有人可以帮忙吗?
根据Endpoints - Create,范围应该是
vso.serviceendpoint_manage
。
在我这边使用具有范围
vso.serviceendpoint_manage
的PAT进行测试,它按预期工作。
用于创建 npm SC 的 PowerShell 脚本。
$token = "{PAT}"
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes(":$($token)"))
$url="http://***/DefaultCollection/_apis/serviceendpoint/endpoints?api-version=6.0-preview.4"
$body = @'
{
"authorization": {
"parameters": {
"apitoken": "***"
},
"scheme": "Token"
},
"createdBy": {},
"data": {},
"isShared": false,
"isOutdated": false,
"name": "TestAPI3",
"owner": "library",
"type": "externalnpmregistry",
"url": "***",
"administratorsGroup": null,
"description": "",
"groupScopeId": null,
"operationStatus": null,
"readersGroup": null,
"serviceEndpointProjectReferences": [
{
"description": "",
"name": "TestAPI3",
"projectReference": {
"id": "***",
"name": "***"
}
}
]
}
'@
$head = @{ Authorization =" Basic $token" }
Invoke-RestMethod -Uri $url -Method Post -Headers $head -Body $body -ContentType application/json