Использовать новый ключ API от Powershell в Octopus Deploy - PullRequest
0 голосов
/ 04 марта 2020

Я создаю новый ключ API со следующим сценарием Powershell:

function CreateAPIKey{
    Param(
        $OctopusURL,
        $APIKey,
        $UserName,
        $APIKeyPurpose,
        $NewAPIKey
    )
    ##PROCESS
    $header = @{ "X-Octopus-ApiKey" = $APIKey }

    $body = @{
        Purpose = $APIKeyPurpose
    } | ConvertTo-Json

    #Getting all users to filter target user by name
    $allUsers = (Invoke-WebRequest "$OctopusURL/api/users/all" -Headers $header -Method Get -UseBasicParsing).content | ConvertFrom-Json

    #Getting user that owns API Key that will be deleted
    $User = $allUsers | where{$_.username -eq $UserName}

    #Creating API Key
    $CreateAPIKeyResponse = (Invoke-WebRequest "$OctopusURL/api/users/$($User.id)/apikeys" -Method Post -Headers $header -Body $body -UseBasicParsing -Verbose).content | ConvertFrom-Json

    #Printing new API Key
    $NewAPIKey = $($CreateAPIKeyResponse.apikey)
    Write-output "API Key created: $($CreateAPIKeyResponse.apikey)"
}

CreateAPIKey $OctopusURL $APIKey $UserName $APIKeyPurpose $NewAPIKey

Этот сценарий работает нормально и создает новый ключ API, когда я запускаю его из Octopus Deploy. Затем я настраиваю проект в Octopus, где хочу отправить себе электронное письмо с именем пользователя и новым ключом API. У меня есть переменные настройки, где имя пользователя жестко закодировано и отображается в электронной почте нормально. Но я не знаю, какое значение назначить $ NewAPIKey, как показано ниже.

enter image description here

Когда я получаю письмо, все, что я получаю, это # ​​{NewAPIKey}, где APIKey должен быть.

...