Examples/ChangesByExtension.ugit.ps1
<# .SYNOPSIS Generates a Mermaid graph of changes by extension. .DESCRIPTION Generates a Mermaid graph of changes by extension, for the current branch. #> param() $gitRemote = git remote $headBranch = git remote | Select-Object -First 1 | git remote show | Select-Object -ExpandProperty HeadBranch $currentBranch = git branch | ? IsCurrentBranch if ($currentBranchName -eq $headBranch) { Write-Warning "Not graphing the main branch." return } $currentBranchCommits = git log "$($gitRemote.RemoteName)/$headBranch..$CurrentBranch" -Statistics $changesByExtension = $currentBranchCommits | Foreach-Object { $_.Changes } | Group-Object { ($_.FilePath -split '\.')[-1] -replace '\p{P}+$'} if ($env:GITHUB_STEP_SUMMARY) { " ~~~mermaid $( @( "pie title Changes by Extension" foreach ($changeSet in $changesByExtension) { (' ' * 4) + '"' + $($changeSet.Name) + '"' + ' : ' + ($changeSet.Group.LinesChanged | Measure-Object -Sum).Sum } ) -join [Environment]::NewLine) ~~~ " | Out-File -Append -FilePath $env:GITHUB_STEP_SUMMARY } |