Есть ли способ автоматически загружать защищенные файлы в библиотеку Azure devops?

#azure-devops #azure-pipelines #azure-devops-rest-api

#azure-devops #azure-конвейеры #azure-devops-rest-api

Вопрос:

Я пытаюсь загрузить ключи в azure devops в виде защищенных файлов для использования в контексте конвейера, я нашел только ручную загрузку, но это не вариант, есть ли способ автоматизировать тщательную powershell или любые задачи конвейера? пожалуйста, предложите.

Ответ №1:

Для этого можно использовать REST API:

 POST https://dev.azure.com/{organization}/{project}/_apis/distributedtask/securefiles?api-version=5.0-preview.1amp;name={fileName}

Content-Type=application/octet-stream
 

Пожалуйста, ознакомьтесь с этой темой на GitHub.

Вы найдете там даже сценарий powershell:

 param
(
    [Parameter(Mandatory=$true)] [string] $PAT,
    [Parameter(Mandatory=$True)][ValidateNotNullOrEmpty()]$AzureDevOpsOrg,
    [Parameter(Mandatory=$True)][ValidateNotNullOrEmpty()]$AzureDevOpsProjectID,
    [Parameter(Mandatory=$true)] [string] $SecureNameFile2Upload,
    [Parameter(Mandatory=$true)] [string] $SecureNameFilePath2Upload
)

try{
    $base64AuthInfo=[Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "",$PAT)))
    $uploadSecureFileURI="https://dev.azure.com/$AzureDevOpsOrg/$AzureDevOpsProjectID/_apis/distributedtask/securefiles?api-version=5.0-preview.1amp;name=$SecureNameFile2Upload"
    $headers = @{
        Authorization=("Basic {0}" -f $base64AuthInfo)
    }
    Invoke-RestMethod -Uri $uploadSecureFileURI -Method Post -ContentType "application/octet-stream" -Headers $headers -InFile "$SecureNameFilePath2Upload"
}
catch
{
    write-host -f Red "Error upload client certificate file [$SecureNameFilePath2Upload] to AzureDevOps secure file!" $_.Exception.Message
    throw "Error occors -> $_.Exception.Message"
}
 

Комментарии:

1. @BalaMurali круто. Можете ли вы проголосовать за мой ответ, если он был полезен для вас?

2. конечно. Это действительно помогло, по крайней мере, я не нашел в документах Microsoft.

3. знаете ли вы область AD этого API? Я пытаюсь сделать это с помощью az rest, но мне нужно указать область действия. Я не могу понять, что это за область.