Skip to content

Commit b80a837

Browse files
author
Robert Holt
committed
WIP
1 parent 496a3f5 commit b80a837

File tree

3 files changed

+49
-234
lines changed

3 files changed

+49
-234
lines changed

tools/ChangelogTools.psm1

Lines changed: 2 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,7 @@ filter Get-ChangelogItemFromCommit
3030

3131
[Parameter(Mandatory)]
3232
[string]
33-
$GitHubToken,
34-
35-
[Parameter()]
36-
[hashtable]
37-
$KnownUserEmails
33+
$GitHubToken
3834
)
3935

4036
foreach ($singleCommit in $Commit)
@@ -72,96 +68,4 @@ filter Get-ChangelogItemFromCommit
7268
}
7369
}
7470

75-
function New-ChangelogSection
76-
{
77-
param(
78-
[Parameter(Mandatory)]
79-
[string]
80-
$ReleaseName,
81-
82-
[Parameter(Mandatory)]
83-
[string]
84-
$RepositoryUrl,
85-
86-
[Parameter(ValueFromPipeline)]
87-
[ChangelogItem[]]
88-
$ChangelogItem,
89-
90-
[Parameter()]
91-
[string]
92-
$DateFormat = 'dddd, dd MMMM yyyy',
93-
94-
[Parameter()]
95-
[datetime]
96-
$Date = ([datetime]::Now)
97-
)
98-
99-
begin
100-
{
101-
$repoDetails = GetHumanishRepositoryDetails -RemoteUrl $RepositoryUrl
102-
$repository = $repoDetails.Repository
103-
$organization = $repoDetails.Organization
104-
105-
$clBuilder = [System.Text.StringBuilder]::new()
106-
$null = $clBuilder.Append("##$ReleaseName`n")
107-
$null = $clBuilder.Append("###$($Date.ToString($DateFormat))`n")
108-
$null = $clBuilder.Append("####[$repository]($RepositoryUrl)`n`n")
109-
}
110-
111-
process
112-
{
113-
foreach ($clItem in $ChangelogItem)
114-
{
115-
if ($clItem.Labels -contains 'ignore')
116-
{
117-
continue
118-
}
119-
120-
if (-not $clItem.BodyText)
121-
{
122-
continue
123-
}
124-
125-
if ($clItem.IssueNumber -gt 0)
126-
{
127-
$issueNumber = $clItem.IssueNumber
128-
}
129-
elseif ($clItem.PRNumber -gt 0)
130-
{
131-
$issueNumber = $clItem.PRNumber
132-
}
133-
134-
if ($issueNumber)
135-
{
136-
$itemHeader = "$repository #$issueNumber"
137-
}
138-
else
139-
{
140-
$itemHeader = "$repository"
141-
}
142-
143-
$itemLink = "https://github.com/$organization/$repository"
144-
if ($clItem.PRNumber -ge 0)
145-
{
146-
$prNum = $clItem.PRNumber
147-
$itemLink += "/pull/$prNum"
148-
}
149-
150-
$indentedBody = ($clItem.BodyText.Split("`n") | Where-Object { $_ } | ForEach-Object { " $_" }) -join "`n"
151-
152-
if ($script:NoThanks -notcontains $clItem.ContributingUser)
153-
{
154-
$thanks = " (thanks @$($clItem.ContributingUser)!)"
155-
}
156-
157-
$itemText = "- [$itemHeader]($itemLink) -`n$indentedBody$thanks`n"
158-
159-
$null = $clBuilder.Append($itemText)
160-
}
161-
}
162-
163-
end
164-
{
165-
return $clBuilder.Append("`n").ToString()
166-
}
167-
}
71+
Export-ModuleMember -Function Get-ChangelogItemFromCommit

tools/GitHubTools.psm1

Lines changed: 9 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -663,139 +663,12 @@ function Publish-GitHubRelease
663663
return $response
664664
}
665665

666-
filter New-ChangelogItem
667-
{
668-
param(
669-
[Parameter(Mandatory, ValueFromPipeline, Position=0)]
670-
[GitHubCommitInfo[]]
671-
$Commit,
672-
673-
[Parameter(Mandatory)]
674-
[string]
675-
$GitHubToken
676-
)
677-
678-
foreach ($singleCommit in $Commit)
679-
{
680-
$changelogItem = [ChangelogItem]@{
681-
Commit = $singleCommit
682-
BodyText = $singleCommit.Body
683-
Labels = $singleCommit.CommitLabels
684-
}
685-
686-
if ($Commit.PRNumber -ge 0)
687-
{
688-
$getPrParams = @{
689-
Organization = $singleCommit.Organization
690-
Repository = $singleCommit.Repository
691-
PullNumber = $singleCommit.PRNumber
692-
GitHubToken = $GitHubToken
693-
}
694-
$pr = Get-GitHubPR @getPrParams
695-
696-
$changelogItem.PR = $pr
697-
$changelogItem.PRNumber = $pr.Number
698-
699-
$closedIssueInfos = $pr.GetClosedIssueInfos()
700-
if ($closedIssueInfos)
701-
{
702-
$changelogItem.ClosedIssues = $closedIssueInfos | Get-GitHubIssue
703-
$changelogItem.IssueNumber = $closedIssueInfos[0].Number
704-
$changelogItem.Labels += ($closedIssueInfos | ForEach-Object { $_.Labels })
705-
}
706-
}
707-
708-
$changelogItem
709-
}
710-
}
711-
712-
function New-ChangelogSection
713-
{
714-
param(
715-
[Parameter(Mandatory)]
716-
[string]
717-
$ReleaseName,
718-
719-
[Parameter(Mandatory)]
720-
[string]
721-
$RepositoryUrl,
722-
723-
[Parameter(ValueFromPipeline)]
724-
[ChangelogItem[]]
725-
$ChangelogItem,
726-
727-
[Parameter()]
728-
[string]
729-
$DateFormat = 'dddd, dd MMMM yyyy',
730-
731-
[Parameter()]
732-
[datetime]
733-
$Date = ([datetime]::Now)
734-
)
735-
736-
begin
737-
{
738-
$repoDetails = GetHumanishRepositoryDetails -RemoteUrl $RepositoryUrl
739-
$repository = $repoDetails.Repository
740-
$organization = $repoDetails.Organization
741-
742-
$clBuilder = [System.Text.StringBuilder]::new()
743-
$null = $clBuilder.Append("##$ReleaseName`n")
744-
$null = $clBuilder.Append("###$($Date.ToString($DateFormat))`n")
745-
$null = $clBuilder.Append("####[$repository]($RepositoryUrl)`n`n")
746-
}
747-
748-
process
749-
{
750-
foreach ($clItem in $ChangelogItem)
751-
{
752-
if ($clItem.Labels -contains 'ignore')
753-
{
754-
continue
755-
}
756-
757-
if (-not $clItem.BodyText)
758-
{
759-
continue
760-
}
761-
762-
if ($clItem.IssueNumber -gt 0)
763-
{
764-
$issueNumber = $clItem.IssueNumber
765-
}
766-
elseif ($clItem.PRNumber -gt 0)
767-
{
768-
$issueNumber = $clItem.PRNumber
769-
}
770-
771-
if ($issueNumber)
772-
{
773-
$itemHeader = "$repository #$issueNumber"
774-
}
775-
else
776-
{
777-
$itemHeader = "$repository"
778-
}
779-
780-
$itemLink = "https://github.com/$organization/$repository"
781-
if ($clItem.PRNumber -ge 0)
782-
{
783-
$prNum = $clItem.PRNumber
784-
$itemLink += "/pull/$prNum"
785-
}
786-
787-
$indentedBody = ($clItem.BodyText.Split("`n") | Where-Object { $_ } | ForEach-Object { " $_" }) -join "`n"
788-
789-
$itemText = "- [$itemHeader]($itemLink) -`n$indentedBody`n"
790-
791-
$null = $clBuilder.Append($itemText)
792-
}
793-
}
794-
795-
end
796-
{
797-
return $clBuilder.Append("`n").ToString()
798-
}
799-
}
800-
801-
Export-ModuleMember -Function Copy-GitRepository,Submit-GitChanges,New-GitHubPR,Get-GitHubPR,Get-GitHubIssue,Publish-GitHubRelease,New-ChangelogItem,New-ChangelogSection
666+
Export-ModuleMember -Function @(
667+
'Copy-GitRepository',
668+
'Submit-GitChanges',
669+
'Get-GitCommit',
670+
'New-GitHubPR',
671+
'Get-GitHubPR',
672+
'Get-GitHubIssue',
673+
'Publish-GitHubRelease'
674+
)

tools/changelog/updateChangelog.ps1

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
using module ../ChangelogTools.psm1
2+
using module ../GitHubTools.psm1
3+
4+
param(
5+
[Parameter()]
6+
$RepositoryLocation = (Resolve-Path "$PSScriptRoot/../../")
7+
)
8+
9+
$script:ChangelogConfig = @{
10+
DefaultCategory = 'General'
11+
Categories = @(
12+
@{
13+
Name = 'Debugging'
14+
Issue = 'Area-Debugging'
15+
},
16+
@{
17+
Name = 'CodeLens'
18+
Issue = 'Area-CodeLens'
19+
},
20+
@{
21+
Name = 'Script Analysis'
22+
Issue = 'Area-Script Analysis'
23+
},
24+
@{
25+
Name = 'Formatting'
26+
Issue = 'Area-Formatting'
27+
},
28+
@{
29+
Name = 'Integrated Console'
30+
Issue = 'Area-Integrated Console','Area-PSReadLine'
31+
}
32+
@{
33+
Name = Intellisense
34+
Issue = 'Area-Intellisense'
35+
}
36+
)
37+
}
38+

0 commit comments

Comments
 (0)