是否可以使用 bash 脚本将新的 wiki 页面上传到配置的 wiki?

问题描述 投票:0回答:3

我正在尝试使用 bash 脚本将 .md 文件的内容上传到我的组织配置的 wiki,但它没有按预期工作。虽然日志表明上传成功,但几分钟后,我收到 503 错误,即使所有 Azure DevOps 服务都在线。这是我正在使用的 bash 脚本:

PAT=$(secretValue) 
README_PATH="$(Build.SourcesDirectory)/redacted/redacted/infra-pipeline-readme.md" WIKI_API_URL="https://dev.azure.com/redacted/redacted/_apis/wiki/wikis/redacted.wiki/pages?path=redacted/redacted&api-version=7.2-preview.1"
CONTENT=$(cat "$README_PATH")
echo "$CONTENT"
RESPONSE=$(curl -v -u :$PAT $WIKI_API_URL -X PUT -H "Content-Type: text/markdown" -H "Content-Length: ${#CONTENT}")
echo "API Response: $RESPONSE"

我检查了 Azure DevOps Services 文档,了解到“从存储库 > 文件或代码 > 文件添加或编辑页面”操作不适用于已配置的 wiki。这也适用于 REST API 吗?我们可以通过 REST API 添加新页面吗?

我尝试更改 URL 路径和 API 版本。但我不断收到 503 错误作为响应。

azure-devops azure-pipelines azure-devops-rest-api
3个回答
0
投票

是的,如果您使用此 API,这是可能的:https://learn.microsoft.com/en-us/rest/api/azure/devops/wiki/pages/create-or-update?view=azure- devops-rest-7.2&tabs=HTTP

此外,请查看此帖子以更新现有页面:Azure DevOps 如何通过 REST API 编辑 Wiki 页面。并使用

Content-Type: application/json

我对curl不熟悉...但也许你需要添加

-d
参数来传递内容?要传递内容,请使用 json 格式:

{"content":"YOUR_CONENT"}


0
投票

其余 api 在这里是正确的:页面 - 创建或更新

卷曲示例如下:

- bash: |
    organization=""
    project=""
    wiki=""
    pagepath="wiki/SamplePage"
    README_PATH="README.md"
    pat=$(PAT)
    url="https://dev.azure.com/$organization/$project/_apis/wiki/wikis/$wiki/pages?path=$pagepath&api-version=7.2-preview.1"

    echo $url

    # Encode the Personal Access Token (PAT)
    encoded_pat=$(printf "%s"":$pat" | base64)

    # Read the content of the READdMe file
    content=$(cat "$README_PATH")

    # Convert the content to JSON
    json_content=$(jq -n --arg content "$content" '{"content": $content}')

    # Update the wiki page
     curl -X PUT $url -H 'Content-Type: application/json' -H "Authorization: Basic $encoded_pat" -d "$json_content"
    
    echo "Wiki page '$pagepath' updated."


0
投票

考虑使用

az devops wiki page
命令:https://learn.microsoft.com/en-us/cli/azure/devops/wiki/page?view=azure-cli-latest

az devops wiki page create --path 'my page' --wiki myprojectwiki --file-path a.txt --encoding utf-8

如何使用 PAT 登录:使用个人访问令牌 (PAT) 登录

© www.soinside.com 2019 - 2024. All rights reserved.