Tools/Add-ChangelogToManifest.ps1


$ProjectModuleRoot = (Get-Item "$PSScriptRoot").Parent.FullName
$ProjectModuleRoot = (Get-Item $ProjectModuleRoot).FullName

if (-not (Test-Path $ProjectModuleRoot)) {
    throw "Project module root path '$ProjectModuleRoot' does not exist."
}

$ProjectName = (Get-Item $ProjectModuleRoot).BaseName

if (-not (Test-Path "$ProjectModuleRoot\$ProjectName.psd1")) {
    throw "Manifest file '$ProjectModuleRoot\$ProjectName.psd1' does not exist."
}

function Get-VersionFromGit {
    $gitDescribe = git describe --tags --abbrev=0 2>$null
    if ($LASTEXITCODE -eq 0) {
        $gitDescribe -replace "v", ""
    }
    else {
        throw "Git command failed"
    }
}

function Filter-ChangeLog {
    [CmdletBinding()]
    param (
        [Parameter(Mandatory=$true, ValueFromPipeline=$true)]
        [string]$ChangeLog
    )
    process {
        if ($ChangeLog -match 'feat:|docs:|fix:') {
            $ChangeLog
        }
    }
}

$ChangeLog = @"
# Release $(Get-VersionFromGit) Notes
 
$(@(& "$PSScriptRoot\Generate-Changelog.ps1" -Nolinks | Filter-ChangeLog) -join "`n")
"@


$ChangeLog 

Update-ModuleManifest `
    -Path "$ProjectModuleRoot\$ProjectName.psd1" `
    -ReleaseNotes  $ChangeLog  #>