用途:以 curl 调用 Azure DevOps REST API 操作 Wiki,支持列出项目 Wiki(project wiki 与 code wiki)、浏览页面树、读取页面内容、搜索 Wiki 页面,以及经用户确认后创建或更新页面。不提供删除、移动、重命名,需要时请用户到网页操作。
主要能力:列出 Wiki 返回 id、name、type、repositoryId、mappedPath、versions 与 remoteUrl;浏览页面树用 recursionLevel=oneLevel 或 full;读取页面可带 includeContent=true 并用 -D - 取得 ETag;搜索走 almsearch.dev.azure.com 的 wikisearchresults,支持 AND、OR、NOT、双引号短语与结尾 * 通配符,$top 限 1 到 1000。
使用方式:组织读环境变量 AZURE_DEVOPS_ORG,令牌用 -u ":$AZURE_DEVOPS_PAT"(或 AZURE_DEVOPS_EXT_PAT、Bearer 令牌),令牌只从环境变量读取,不要贴进对话或写入文件。读取需 Wiki (Read),写入需 Wiki (Read & write)。路径与查询串需 URL 编码,$ 写成 %24。创建页面用 PUT 且不带 If-Match,成功回 201;更新必须带 If-Match(照 ETag 原样含双引号),先显示 git diff --no-index --unified=3 old.md new.md 并确认,成功回 200;版本不符时重新读取、重新显示 diff,不要去掉 If-Match 或沿用旧 ETag。
限制:页面标题不能含 /、\、#,不能以 . 开头或结尾;含仓库网址的完整路径上限 235 字符,单页上限 18 MB。code wiki 写入会直接 commit 到发布分支,分支有 PR 策略时可能被拒,需改用 repos-pull-request-write 开 PR。Windows PowerShell 需用 curl.exe,且不支持 <<'EOF',应先把 JSON 主体写入暂存文件再以 --data-binary "@body.json" 发送。401、403、203 或返回 HTML 登录页表示令牌无效或权限不足;404 表示组织、项目、Wiki 或页面路径有误;code wiki 指定不存在分支回 500(TF401175)。