You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过Azure DevOps API关联工作项与Wiki页面后,Wiki未显示关联

工作项与Wiki页面双向关联的API实现问题

问题描述

在Azure DevOps GUI中关联工作项与Wiki页面时,可实现双向关联:Wiki页面会显示对应的工作项链接,工作项的“Links”列表中也会出现名为“Wiki Page”的链接,双方可互相访问。

由于需自动创建Wiki页面,尝试通过Azure DevOps API关联工作项与Wiki页面。目前已成功在工作项端关联Wiki页面,但Wiki页面上未显示对应的工作项关联。请问是否遗漏了操作步骤?是否需要在其他位置完成工作项与Wiki页面的关联?

关联代码如下:

$workItemUri = "$orgUrl/$ProjectName/_apis/wit/workitems/$WorkItemID?$apiVersion"
$wikiRelationUrl = 'vstfs:///Wiki/WikiPage/' + $wikiPagePath
$relationBody = '
[
  {
    "op": "add",
    "path": "/relations/-",
    "value": {
      "rel": "ArtifactLink",
      "url": "'+ $wikiRelationUrl + '",
      "attributes": {
        "name": "Wiki Page"
      }
    }
  }
]' 

$wiResponse = Invoke-RestMethod -Uri $workItemUri -body $relationBody -Headers $headers -Method Patch -ContentType "application/json-patch+json" -ErrorAction SilentlyContinue
if ($wiResponse.count -eq 0) {
    Write-Host "Relation to WorkItem added successfully."
}
else {
    Write-Host "Relation to WorkItem already exists."
}

执行结果显示工作项已成功关联Wiki页面,但Wiki页面无任何关联显示。

解决方案

你目前只完成了单向关联(工作项→Wiki页面),要实现GUI中的双向关联效果,还需要在Wiki页面侧添加到工作项的反向关联,以下两种方式均可实现:

方式1:在Wiki页面内容中插入工作项引用

Azure DevOps会自动识别页面内容中的工作项格式(#工作项ID),并在页面右侧显示关联的工作项。创建或更新Wiki页面时,在内容中加入该引用即可:

# 替换{wikiId}为你的Wiki ID,可通过Wiki列表API查询获取
$wikiPageUri = "$orgUrl/$ProjectName/_apis/wiki/wikis/{wikiId}/pages?path=$wikiPagePath&apiVersion=7.1-preview.1"

# 页面内容中包含工作项引用
$pageContent = @"
# 你的Wiki页面标题
关联工作项:#$WorkItemID
"@

$wikiBody = @{
    content = $pageContent
} | ConvertTo-Json

Invoke-RestMethod -Uri $wikiPageUri -Body $wikiBody -Headers $headers -Method Put -ContentType "application/json"

直接调用Wiki页面的关联API,添加指向工作项的ArtifactLink,与工作项侧的关联逻辑对应:

# 替换{wikiId}和{pageId}为实际的Wiki ID和页面ID
$wikiRelationUri = "$orgUrl/$ProjectName/_apis/wiki/wikis/{wikiId}/pages/{pageId}/relations?api-version=7.1-preview.1"
$workItemArtifactUrl = "vstfs:///WorkItemTracking/WorkItem/$WorkItemID"

$relationBody = @(
    @{
        op = "add"
        path = "/relations/-"
        value = @{
            rel = "ArtifactLink"
            url = $workItemArtifactUrl
            attributes = @{
                name = "Work Item"
            }
        }
    }
) | ConvertTo-Json

Invoke-RestMethod -Uri $wikiRelationUri -Body $relationBody -Headers $headers -Method Patch -ContentType "application/json-patch+json"

注意:Wiki ID和页面ID可通过调用GET https://dev.azure.com/{org}/{proj}/_apis/wiki/wikis和GET https://dev.azure.com/{org}/{proj}/_apis/wiki/wikis/{wikiId}/pages?path=$wikiPagePath接口查询获取。

内容的提问来源于stack exchange,提问作者Mehdi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 22:59:58