# pr-list.ps1 - List pull requests on Gitea or GitHub # Usage: .\pr-list.ps1 [-State state] [-Label label] [-Author author] [CmdletBinding()] param( [Alias("s")] [ValidateSet("open", "closed", "merged", "all")] [string]$State = "open", [Alias("l")] [string]$Label, [Alias("a")] [string]$Author, [Alias("n")] [int]$Limit = 100, [Alias("h")] [switch]$Help ) $ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path . "$ScriptDir\detect-platform.ps1" function Show-Usage { @" Usage: pr-list.ps1 [OPTIONS] List pull requests from the current repository (Gitea or GitHub). Options: -State, -s STATE Filter by state: open, closed, merged, all (default: open) -Label, -l LABEL Filter by label -Author, -a USER Filter by author -Limit, -n N Maximum PRs to show (default: 100) -Help, -h Show this help message Examples: .\pr-list.ps1 # List open PRs .\pr-list.ps1 -s all # All PRs .\pr-list.ps1 -s merged -a username # Merged PRs by user "@ exit 1 } if ($Help) { Show-Usage } $platform = Get-GitPlatform switch ($platform) { "github" { $cmd = @("gh", "pr", "list", "--state", $State, "--limit", $Limit) if ($Label) { $cmd += @("--label", $Label) } if ($Author) { $cmd += @("--author", $Author) } & $cmd[0] $cmd[1..($cmd.Length-1)] } "gitea" { $cmd = @("tea", "pr", "list", "--state", $State, "--limit", $Limit) if ($Label) { Write-Warning "Label filtering may require manual review for Gitea" } if ($Author) { Write-Warning "Author filtering may require manual review for Gitea" } & $cmd[0] $cmd[1..($cmd.Length-1)] } default { Write-Error "Could not detect git platform" exit 1 } }