Functions/Public/Remove-GitHubGist.ps1
function Remove-GitHubGist { <# .Synopsis This command deletes a GitHub Gist code snippet. .Description This command is responsible for deleting GitHub Gist code snippets or files. .Parameter Id The Id of the Gist to remove or remove files from. .Parameter FileName If this parameter is used, only specified files will be removed from the gist. .Example PS C:\> Get-GitHubGist -Id 265482c76983daedc83f | Remove-GitHubGist -Confirm:$false .Example PS C:\> Remove-GitHubGist -Id 265482c76983daedc83f -FileName File1.ps1, File2.ps1 -Confirm:$false .Notes This cmdlet will compliment Get-GitHubGist nicely. .Link https://trevorsullivan.net http://dotps1.github.io https://developer.github.com/v3/gists #> [CmdletBinding(ConfirmImpact = 'High', SupportsShouldProcess = $true)] [OutputType([Void])] Param ( [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true)] [String[]] $Id, [Parameter()] [String[]]$FileName ) Process { foreach ($item in $Id) { if ($PSCmdlet.ShouldProcess($item)) { if ($FileName -ne $null) { [HashTable]$body = @{ files = @{} } foreach ($file in $FileName) { $body.files.Add($file, $null) } $restMethod = 'PATCH' } else { $body = $null $restMethod = 'DELETE' } $ApiCall = @{ Body = ConvertTo-Json -InputObject $body RestMethod = 'gists/{0}' -f $item Method = $restMethod } Invoke-GitHubApi @ApiCall } } } } |