Azure DevOps Services REST API 5.0 - Wiki Pages
每当对存储库进行更改时,我都试图动态更新Azure DevOps Wiki页面,并在其顶部显示最新的提交。 当我尝试将提交历史记录放入Wiki页面时,正文中的内容字段为空。
该请求通过Powershell完成,如下所示:
function postToWiki($Commits) {
$wikiUrl = "https://dev.azure.com/$organization/$project/_apis/wiki/wikis/Ekonomiredovisning.wiki/pages?path=MyWikiPage&api-version=5.0"
$Etag = getWikiPageVersion
$headers = @{
Authorization = "Bearer $env:SYSTEM_ACCESSTOKEN";
'If-Match' = $Etag}
$body = @{ content = $Commits }
$json = $body | ConvertTo-Json
Invoke-WebRequest -Uri $wikiUrl -Headers $headers -Body $json -ContentType "application/json" -Method Put
}
可能有用的其他信息:
答案 0 :(得分:0)
我今天有同样的问题。我的身体中包含特殊的HTML字符,但在请求中并未转义。
请尝试转义特殊字符(éè...)。 在PowerShell中,您可以使用以下程序集:
Add-Type -AssemblyName System.Web
$encodedBody = [System.Web.HttpUtility]::HtmlEncode($Commits)
结果:
# Construct the wiki REST URI
# $uri = $WikiUri +$WikiPath + $($contentPackage.version)
$uri = "$($env:WikiUri)$($contentPackage)&api-version=5.0"
# Encode and convert to json
Add-Type -AssemblyName System.Web
$encodedContent = [System.Web.HttpUtility]::HtmlEncode($content)
$data = @{ Content=$encodedContent; } | ConvertTo-Json;
# Set Request
$params = @{uri = "$($uri)";
Method = 'PUT';
Headers = $header;
ContentType = "application/json";
Body = $data;
}
# Call
Invoke-WebRequest @params
答案 1 :(得分:0)
我试图做类似的事情来获取Wiki上的页面内容。有一个名为includeContent的标志,该标志自动默认为false,需要为true。
到