Examples/TableOfCurrentBranch.ugit.ps1

<#
.SYNOPSIS
    Generates a summary of the current branch
.DESCRIPTION
    This will generate a summary of the current branch, in markdown format.
#>

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 summarizing the main branch."
    return
}

$currentBranchCommits = git log "$($gitRemote.RemoteName)/$headBranch..$CurrentBranch" -Statistics
$currentBranchCommits | Out-Host
$markdownTable = @(
    '|GitUserName|CommitDate|CommitMessage|'
    '|-|:-:|-|'
    foreach ($gitlog in $currentBranchCommits) {    
        '|' + $(
            $gitLog.GitUserName, 
            $gitLog.CommitDate.ToString(), 
            ($gitLog.CommitMessage -replace '(?>\r\n|\n)', '<br/>') -join '|'
        ) + '|'
    }
) -join [Environment]::NewLine

if ($env:GITHUB_STEP_SUMMARY) { 
"
## Branch summary

$markdownTable
"
 |
        Out-File -Append -FilePath $env:GITHUB_STEP_SUMMARY
}