Plugins/Gist.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# Author: Miodrag Milic <miodrag.milic@gmail.com> # Last Change: 24-Sep-2016. param( $Info, # Gist id, leave empty to create a new gist [string] $Id, # Github ApiKey, create in Github profile -> Settings -> Personal access tokens -> Generate new token # Make sure token has 'gist' scope set. [string] $ApiKey, # File paths to attach to gist [string[]] $Path, # Gist description [string] $Description = "Update-AUPackages Report #powershell #chocolatey" ) # Create gist $gist = @{ description = $Description public = $true files = @{} } ls $Path | % { $name = Split-Path $_ -Leaf $content = gc $_ -Raw $gist.files[$name] = @{content = "$content"} } # request $uri = 'https://api.github.com/gists' $params = @{ ContentType = 'application/json' Method = if ($Id) { "PATCH" } else { "POST" } Uri = if ($Id) { "$uri/$Id" } else { $uri } Body = $gist | ConvertTo-Json UseBasicparsing = $true } if ($ApiKey) { $params.Headers = @{ Authorization = 'Basic ' + [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes($ApiKey)) } } $res = iwr @params $id = Split-Path ($res.Content | ConvertFrom-Json).url -Leaf "https://gist.github.com/$id" |