Public/Get-GitHubWorkflow.ps1
<# .SYNOPSIS Short description .DESCRIPTION Long description .PARAMETER Owner Parameter description .PARAMETER Repo Parameter description .PARAMETER Token Parameter description .PARAMETER Name Parameter description .PARAMETER ID Parameter description .PARAMETER PageSize Parameter description .EXAMPLE An example .NOTES https://docs.github.com/en/rest/reference/actions#list-repository-workflows #> Function Get-GitHubWorkflow { [CmdletBinding(DefaultParameterSetName = 'ByName')] param ( [Parameter()] [string] $Owner = $script:Owner, [Parameter()] [string] $Repo = $script:Repo, [Parameter()] [string] $Token = $script:Token, [Parameter(ParameterSetName = 'ByName')] [string] $Name, [Parameter(ParameterSetName = 'ByID')] [string] $ID, [Parameter()] [int] $PageSize = 30 ) $processedPages = 0 $workflows = @() do { $processedPages += 1 $Response = Invoke-GitHubAPI -Method GET -APIEndpoint "repos/$Owner/$Repo/actions/workflows?per_page=$PageSize&page=$processedPages" $workflows += $Response.workflows | Where-Object name -Match $name | Where-Object id -Match $id } while ($workflows.count -ne $Response.total_count) return $workflows } |