public/release/Add-PSTSReleaseDefinitionTrigger.ps1

function Add-PSTSReleaseDefinitionTrigger
{
    param(
        [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)][object] $releaseDefinition,
        [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)][string] $environment,
        [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)][string] $artifactAlias,
        [Parameter(ValueFromPipelineByPropertyName = $true)][string] $tag=$null
    )

    process {

      

        [ReleaseDefinitionTrigger]$trigger = [ReleaseDefinitionTrigger]::new()
        
        if (($null -ne $tag) -and ("" -ne $tag)) {

            [ReleaseDefinitionTriggerCondition]$triggerCondition = [ReleaseDefinitionTriggerCondition]::new()
            $triggerCondition.sourceBranch = $environment
            $triggerCondition.useBuildDefinitionBranch = $false
            $triggerCondition.createReleaseOnbuildTagging = $false

            $triggerCondition.tags+=$tag
            $trigger.triggerConditions +=$triggerCondition
        }

        $trigger.artifactAlias = $artifactAlias
        $trigger.triggerType = 1

        $releaseDefinition.triggers+=$trigger

        return $releaseDefinition
    }
}