private/Get-ExtensionSource.ps1

function Get-ExtensionSource {
    <#
    .SYNOPSIS
        Get the PHP extension.
    .PARAMETER ExtensionUrl
        Extension URL
    .PARAMETER ExtensionRef
        Extension Reference
    #>

    [OutputType()]
    param (
        [Parameter(Mandatory = $false, Position=0, HelpMessage='Extension URL')]
        $ExtensionUrl = '',
        [Parameter(Mandatory = $false, Position=1, HelpMessage='Extension Reference')]
        $ExtensionRef = ''
    )
    begin {
    }
    process {
        if($env:GITHUB_ACTIONS -eq "true") {
            if($null -eq $ExtensionUrl -or $ExtensionUrl -eq '') {
                $ExtensionUrl = "https://github.com/$env:GITHUB_REPOSITORY"
            }
            if($null -eq $ExtensionRef -or $ExtensionRef -eq '') {
                if($env:GITHUB_EVENT_NAME -contains "pull_request") {
                    $ExtensionRef = $env:GITHUB_REF
                } elseif($null -ne $env:GITHUB_REF_NAME) {
                    $ExtensionRef = $env:GITHUB_REF_NAME
                } else {
                    $ExtensionRef = $env:GITHUB_SHA
                }
            }
        } else {
            if($null -eq $ExtensionRef -or $ExtensionRef -eq '') {
                try {
                    if(Test-Path package.xml) {
                        $xml = [xml](Get-Content package.xml)
                        $ExtensionRef = $xml.package.version.release
                    } elseif(Test-Path .git) {
                        $tag = git tag --points-at HEAD | Where-Object { $_ -match '^v?(\d+(\.\d+){0,2})$' } | Select-Object -First 1
                        if($tag) {
                            $ExtensionRef = $tag
                        } else {
                            $ExtensionRef = (git rev-parse --abbrev-ref HEAD) -replace 'origin/', ''
                        }
                    } else {
                        $ExtensionRef = 'local'
                    }
                } catch {
                    $ExtensionRef = 'local'
                }
            }
        }
        return [PSCustomObject]@{
            url = $ExtensionUrl;
            ref = $ExtensionRef
            local = ($null -eq $ExtensionUrl -or $ExtensionUrl -eq '')
        }
    }
    end {
    }
}