diff --git a/eng/common/scripts/ChangeLog-Operations.ps1 b/eng/common/scripts/ChangeLog-Operations.ps1 index 972e91616c..98769dcd9e 100644 --- a/eng/common/scripts/ChangeLog-Operations.ps1 +++ b/eng/common/scripts/ChangeLog-Operations.ps1 @@ -40,7 +40,6 @@ function Get-ChangeLogEntriesFromContent { $changeLogEntries = [Ordered]@{} try { # walk the document, finding where the version specifiers are and creating lists - $changeLogEntry = $null foreach ($line in $changeLogContent) { if ($line -match $RELEASE_TITLE_REGEX) { $changeLogEntry = [pscustomobject]@{ @@ -48,11 +47,25 @@ function Get-ChangeLogEntriesFromContent { ReleaseStatus = $matches["releaseStatus"] ReleaseTitle = "## {0} {1}" -f $matches["version"], $matches["releaseStatus"] ReleaseContent = @() + Sections = @{} } $changeLogEntries[$changeLogEntry.ReleaseVersion] = $changeLogEntry } else { if ($changeLogEntry) { + if ($line.Trim() -match "^###\s(?.*)") + { + $sectionName = $matches["sectionName"].Trim() + $changeLogEntry.Sections[$sectionName] = @() + $changeLogEntry.ReleaseContent += $line + continue + } + + if ($sectionName) + { + $changeLogEntry.Sections[$sectionName] += $line + } + $changeLogEntry.ReleaseContent += $line } } @@ -195,7 +208,19 @@ function New-ChangeLogEntry { return $null } - if (!$Content) { $Content = @() } + if (!$Content) { + $Content = @() + $Content += "" + $Content += "### Features Added" + $Content += "" + $Content += "### Breaking Changes" + $Content += "" + $Content += "### Key Bugs Fixed" + $Content += "" + $Content += "### Fixed" + $Content += "" + $Content += "" + } $newChangeLogEntry = [pscustomobject]@{ ReleaseVersion = $Version