Events.psm1
|
function Get-GithubEvent { [CmdletBinding(DefaultParameterSetName='ByRepo')] [OutputType('Github.Event')] param( [Parameter(ParameterSetName='ByRepo', ValueFromPipelineByPropertyName)] [string] $RepositoryId = '.', [Parameter(Mandatory, ParameterSetName='ByUser')] [string] $Username, [Parameter(Mandatory, ParameterSetName='ByOrg')] [Alias('Org')] [string] $Organization, [Parameter()] [uint] $MaxPages, [switch] [Parameter()] $All, [Parameter()] [string] $Select ) $MaxPages = Resolve-GithubMaxPages -MaxPages:$MaxPages -All:$All switch ($PSCmdlet.ParameterSetName) { 'ByRepo' { $Repo = Resolve-GithubRepository $RepositoryId # https://docs.github.com/en/rest/activity/events#list-repository-events Invoke-GithubApi GET "repos/$Repo/events" -MaxPages $MaxPages | New-GithubObject 'Github.Event' | Add-Member -NotePropertyMembers @{ RepositoryId = $Repo } -PassThru | Get-FilteredObject $Select } 'ByUser' { # https://docs.github.com/en/rest/activity/events#list-events-for-the-authenticated-user Invoke-GithubApi GET "users/$Username/events" -MaxPages $MaxPages | New-GithubObject 'Github.Event' | Get-FilteredObject $Select } 'ByOrg' { # https://docs.github.com/en/rest/activity/events#list-organization-events Invoke-GithubApi GET "orgs/$Organization/events" -MaxPages $MaxPages | New-GithubObject 'Github.Event' | Get-FilteredObject $Select } } } |