workflows/default/hooks/verify/02-git-pushed.ps1
|
param( [string]$TaskId, [string]$Category ) # Check for unpushed commits $issues = @() $details = @{} try { $currentBranch = git rev-parse --abbrev-ref HEAD 2>$null $details['branch'] = $currentBranch # Task branches are squash-merged by the framework — push check not applicable if ($currentBranch -match '^task/') { $details['unpushed_commits'] = 0 $details['skipped'] = 'task branch (merged by framework)' } else { $aheadCount = git rev-list --count "origin/$currentBranch..HEAD" 2>$null if ($LASTEXITCODE -eq 0 -and $aheadCount -gt 0) { $details['unpushed_commits'] = [int]$aheadCount $issues += @{ issue = "$aheadCount unpushed commit(s) on '$currentBranch'" severity = "error" context = "Push changes: git push origin $currentBranch" } } else { $details['unpushed_commits'] = 0 } } } catch { $issues += @{ issue = "Failed to check push status: $($_.Exception.Message)" severity = "error" } } @{ success = ($issues.Count -eq 0) script = "02-git-pushed.ps1" message = if ($issues.Count -eq 0) { "All commits pushed" } else { "Unpushed commits found" } details = $details failures = $issues } | ConvertTo-Json -Depth 10 |