AzureDevops 任务在 azure wiki 中创建文档

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

在azuredevops服务器管道任务中,我有一个任务是从kubernetes get命令输出创建.csv文件,并且该文件按预期工作。正在寻找一种方法将此 .csv 表格式发布到 Azure-wiki,并且该管道需要每 5 分钟安排一次,以便 wiki 将使用当前详细信息动态更新。

- bash: |
     kubectl get vpa -A -o json | jq -r '["Namespace", "AppName", "ContainerName", "LowerBoundCPU","LowerBoundMemmory", "upperBoundCPU", "upperBoundmemmory", "TargetCPU", "TargetMem"], (.items[] | [.metadata.namespace, .metadata.name] +(.status.recommendation.containerRecommendations[] | [.containerName, .lowerBound.cpu, .lowerBound.memory, .upperBound.cpu, .upperBound.memory, .target.cpu, .target.memory])) | @csv' >output.csv
  displayName: 'VPA Report Creation'
azure-devops azure-pipelines azure-devops-rest-api azure-devops-extensions readme
1个回答
0
投票

寻找一种方法将此 .csv 表格式发布到 Azure-wiki

这应该可以通过 REST API 端点实现 Pages - 更新

VPA Report Creation
任务之后,添加一个脚本任务以将
output.csv
转换为可推送到 Azure Wiki 的 Markdown 表格格式。
然后使用
curl
或其他 HTTP 客户端调用 Azure DevOps REST API 来更新 Wiki 页面。

schedules:
- cron: "*/5 * * * *"
  displayName: Every 5 minutes
  branches:
    include:
    - main  # Replace with your target branch
  always: true

jobs:
- job: UpdateWiki
  steps:
  - bash: |
      kubectl get vpa -A -o json | jq -r '["Namespace", "AppName", "ContainerName", "LowerBoundCPU","LowerBoundMemmory", "upperBoundCPU", "upperBoundmemmory", "TargetCPU", "TargetMem"], (.items[] | [.metadata.namespace, .metadata.name] +(.status.recommendation.containerRecommendations[] | [.containerName, .lowerBound.cpu, .lowerBound.memory, .upperBound.cpu, .upperBound.memory, .target.cpu, .target.memory])) | @csv' >output.csv
    displayName: 'VPA Report Creation'

  - bash: |
      # Your script here to convert output.csv into a Markdown table and save it as output.md
    displayName: 'Convert CSV to Markdown'

  - bash: |
      PAT=$(System.AccessToken) 
      URI="https://dev.azure.com/{organization}/{project}/_apis/wiki/wikis/{wikiIdentifier}/pages?path={path}&api-version=6.0"
      CONTENT=$(<output.md)

      curl -u ":$PAT" -X PUT "$URI" -H "Content-Type: application/json" --data "{'content': '$CONTENT'}"
    displayName: 'Update Azure Wiki'

请将

{organization}
{project}
{wikiIdentifier}
替换为适合您的 Azure DevOps 设置的值。
变量
System.AccessToken
包含自动注入到管道运行中的 Azure DevOps PAT(个人访问令牌)。确保此令牌具有更新 Wiki 的权限。

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