ServiceHook/ServiceHook.ps1
Function Get-TfsServiceHookConsumer { [Cmdletbinding()] [OutputType('Microsoft.VisualStudio.Services.ServiceHooks.WebApi.Consumer')] Param ( [Parameter(Position=0)] [SupportsWildcards()] [Alias('Name')] [Alias('Id')] [string] $Consumer = '*', [Parameter()] [object] $Collection ) Process { $tpc = Get-TfsTeamProjectCollection -Collection $Collection $client = _GetRestClient -Type 'Microsoft.VisualStudio.Services.ServiceHooks.WebApi.ServiceHooksPublisherHttpClient' -Collection $tpc $client.GetConsumersAsync().Result | Where-Object {($_Name -Like $Consumer) -or ($_.Id -Like $Consumer)} } } Function Get-TfsServiceHookNotificationHistory { Param ( [Parameter(Position=0, ValueFromPipeline=$true, Mandatory=$true)] [object] $Subscription, [Parameter()] [object] $Collection ) Process { $tpc = Get-TfsTeamProjectCollection -Collection $Collection $client = _GetRestClient -Type 'Microsoft.VisualStudio.Services.ServiceHooks.WebApi.ServiceHooksPublisherHttpClient' -Collection $tpc if ($Subscription -is [Microsoft.VisualStudio.Services.ServiceHooks.WebApi.Subscription]) { $Subscription = $Subscription.Id } $client.GetNotifications([guid] $Subscription, $null, $null, $null, $null) | Select-Object -ExpandProperty Result } } Function Get-TfsServiceHookPublisher { [Cmdletbinding()] [OutputType('Microsoft.VisualStudio.Services.ServiceHooks.WebApi.Publisher')] Param ( [Parameter(Position=0)] [SupportsWildcards()] [Alias('Name')] [Alias('Id')] [string] $Publisher = '*', [Parameter()] [object] $Collection ) Process { $tpc = Get-TfsTeamProjectCollection -Collection $Collection $client = _GetRestClient -Type 'Microsoft.VisualStudio.Services.ServiceHooks.WebApi.ServiceHooksPublisherHttpClient' -Collection $tpc $client.GetPublishersAsync().Result | Where-Object {($_Name -Like $Publisher) -or ($_.Id -Like $Publisher)} } } Function Get-TfsServiceHookSubscription { [Cmdletbinding()] [OutputType('Microsoft.VisualStudio.Services.ServiceHooks.WebApi.Subscription')] Param ( [Parameter(Position=0)] [Alias('Name')] [string] $Subscription = '*', [Parameter()] [object] $Collection ) Process { $tpc = Get-TfsTeamProjectCollection -Collection $Collection $client = _GetRestClient -Type 'Microsoft.VisualStudio.Services.ServiceHooks.WebApi.ServiceHooksPublisherHttpClient' -Collection $tpc $client.QuerySubscriptionsAsync().Result } } |