public/release/Add-PSTSReleaseDefinitionArtefact.ps1

function Add-PSTSReleaseDefinitionArtefact
{
    param(
        [Parameter(Mandatory=$true)][string] $project,
        [Parameter(Mandatory=$true)][string] $buildName,
        [Parameter(Mandatory=$true)][string] $aliasName,
        [Parameter(Mandatory=$true)][object] $definition
    )

    process {

            $pr = Get-PSTSProject | Where-Object {$_.name -eq $project}
            $bd = Get-PSTSBuildDefinition -project $project | Where-Object {$_.name -eq $buildName}

            [ReleaseDefinitionArtefact]$artefact = [ReleaseDefinitionArtefact]::new()
            $artefact.alias = $aliasName

            $artefact.definitionReference.project.id = $pr.id
            $artefact.definitionReference.project.name = $pr.name

            $artefact.definitionReference.definition.id = $bd.id
            $artefact.definitionReference.definition.name = $bd.name

            $artefact.definitionReference.IsMultiDefinitionType.id = "false"
            $artefact.definitionReference.IsMultiDefinitionType.name = "false"

            $artefact.definitionReference.artifactSourceDefinitionUrl.id = "https://dev.azure.com/tgits-code/_permalink/_build/index?collectionId=ff34ac67-1eb2-48aa-8c7d-7af711f4816a&projectId=$($pr.id)&definitionId=$($bd.id)"

            $artefact.type = "Build"
            $artefact.sourceId = "$($pr.id):$($bd.id)"

            $artefact.definitionReference.defaultVersionType.id = "latestType"
            $artefact.definitionReference.defaultVersionType.name = "Latest"

            $artefact.isPrimary = $true
            $artefact.isRetained = $false

            $definition.artifacts+=$artefact
            return $definition
    }
}