Functions/AzureDevOps/Set-ADOEndpoint.ps1
function Set-ADOEndpoint { <# .Synopsis Sets an ADO Endpoint .Description Sets a Azure DevOps Endpoint .Example Set-ADOEndpoint -ID 000-0000-0000 -Key AccessToken -AccessToken testValue Set-ADOEndpoint -ID 000-0000-0000 -Key userVariable -Value testValue Set-ADOEndpoint -ID 000-0000-0000 -Url 'https://example.com/service' .Link https://docs.microsoft.com/en-us/azure/devops/pipelines/scripts/logging-commands #> [CmdletBinding(DefaultParameterSetName='Url')] [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSAvoidUsingWriteHost", "", Justification="Directly outputs in certain scenarios")] [Diagnostics.CodeAnalysis.SuppressMessageAttribute("PSUseShouldProcessForStateChangingFunctions", "", Justification="Confirmation would be impossible within host")] [Diagnostics.CodeAnalysis.SuppressMessageAttribute("Test-ForUnusableFunction", "", Justification="Directly outputs in certain scenarios")] [OutputType([string])] param( # The identifier. [Parameter(Mandatory,ParameterSetName='Url',ValueFromPipelineByPropertyName)] [Parameter(Mandatory,ParameterSetName='AccessToken',ValueFromPipelineByPropertyName)] [Parameter(Mandatory,ParameterSetName='DataParameter',ValueFromPipelineByPropertyName)] [string] $ID, # The endpoint URL. [Parameter(Mandatory,ParameterSetName='Url',ValueFromPipelineByPropertyName)] [Alias('URI','EndpointURL')] [uri] $Url, # The access token [Parameter(Mandatory,ParameterSetName='AccessToken',ValueFromPipelineByPropertyName)] [Alias('AT')] [string] $AccessToken, # The name of the setting. [Parameter(Mandatory,ParameterSetName='DataParameter',ValueFromPipelineByPropertyName)] [Parameter(ParameterSetName='AccessToken',ValueFromPipelineByPropertyName)] [Alias('Key','K','N')] [string] $Name, # The value of the setting. [Parameter(Mandatory,ParameterSetName='DataParameter',ValueFromPipelineByPropertyName)] [Alias('DataParameter','DP','V')] [string] $Value ) process { #region Prepare Output if ($PSCmdlet.ParameterSetName -eq 'Url') { $out = "##vso[task.setendpoint id=$ID;field=url]$Url" } if ($PSCmdlet.ParameterSetName -eq 'AccessToken') { if (-not $name) { $name = 'AccessToken' } $out = "##vso[task.setendpoint id=$ID;field=authParameter;key=$Name]$AccessToken" } if ($PSCmdlet.ParameterSetName -eq 'DataParameter') { $out = "##vso[task.setendpoint id=$ID;field=dataParameter;key=$Name]$Value" } #endregion Prepare Output if ($env:Agent_ID -and $DebugPreference -eq 'SilentlyContinue') { Write-Host $out } else { $out } } } |