AL/Get-BranchNameForDependencies.ps1

function Get-BranchNameForDependencies {
    param (
        # path that contains the source code of the dependent app
        [Parameter(Mandatory=$false)]
        [string]$Path = (Get-Location),
        [Parameter(Mandatory=$true)]        
        [string]$DependencyProject,
        [Parameter(Mandatory=$false)]
        [string]$DependencyRepo
    )
    
    if ($null -ne (Get-EnvironmentKeyValue -SourcePath $Path -KeyName 'dependencyBranch')) {
        return (Get-EnvironmentKeyValue -SourcePath $Path -KeyName 'dependencyBranch')
    }

    if ($null -ne (Get-TFSConfigKeyValue -KeyName 'dependencyBranches')) {
        [Version]$PlatformVersion = [Version]::new()
        if (!([Version]::TryParse((Get-AppKeyValue -SourcePath $Path -KeyName 'platform'), [ref]$PlatformVersion))) {
            return ''
        }

        $DependencyBranches = Get-TFSConfigKeyValue -KeyName 'dependencyBranches'
        foreach ($DependencyBranch in $DependencyBranches) {
            [Version]$FromVersion = [Version]::new()
            [Version]$ToVersion = [Version]::new()
            if ([Version]::TryParse($DependencyBranch.from, [ref]$FromVersion) -and 
                ([Version]::TryParse($DependencyBranch.to, [ref]$ToVersion))) {
                    if(($PlatformVersion -ge $FromVersion) -and ($PlatformVersion -le $ToVersion)) {
                        $BranchExists = Get-RefIsInRepository -ProjectName $DependencyProject -RepositoryName $DependencyRepo -RefName $DependencyBranch.branch
                    } else {
                        if($PlatformVersion -lt $FromVersion){
                            $BranchExists = Get-RefIsInRepository -ProjectName $DependencyProject -RepositoryName $DependencyRepo -RefName $DependencyBranch.branch
                        }
                    }
                    if($BranchExists){
                        return $DependencyBranch.branch
                    }
            }
        }
    }

    return ''
}

Export-ModuleMember -Function Get-BranchNameForDependencies