diff --git a/demos/rest/curlDemo.txt b/demos/rest/curlDemo.txt new file mode 100644 index 0000000000..cca7dd61a3 --- /dev/null +++ b/demos/rest/curlDemo.txt @@ -0,0 +1,20 @@ +# EQ Linux + +# get the json from the repo api and assign it to the txt file + +# This grads the json file from the API +curl -u https://api.github.com/repos/maertend/opstest > outputtest.txt + +# Reformats the json block to proper json (removes the newlines) +string=$(cat temp.txt) + +# Replace the "private" value to false +find='"private": true' +replace='"private": false' +string2=${string/$find/$replace} + +# push the json block into a txt file +echo $string2 > output.txt + +# Post the updated JSON data to the repo +curl -u https://api.github.com/repos/maertend/opstest --data @output.txt \ No newline at end of file diff --git a/demos/rest/rest.ps1 b/demos/rest/rest.ps1 new file mode 100644 index 0000000000..b478ed2da1 --- /dev/null +++ b/demos/rest/rest.ps1 @@ -0,0 +1,46 @@ +# NOTE: This demo is still in progress and needs validation in Linux +# ------------------------------------ + +#region Setup the credentials for use in HTTP header +$user = '' +$pass= "" +$pair = "${user}:${pass}" +$bytes = [System.Text.Encoding]::ASCII.GetBytes($pair) +$base64 = [System.Convert]::ToBase64String($bytes) +$basicAuthValue = "Basic $base64" +$headers = @{ Authorization = $basicAuthValue } +#endregion + +# Changing the status of a Private GitHub repository to Public + +# URL to PowerShell Github Repo +$PowerShellGithubUri = 'https://api.github.com/repos/maertend/opstest' + +# Get the blob from the Github API as a PS object +$JsonBlock = Invoke-RestMethod -Uri $PowerShellGithubUri -Headers $headers + +# Explore the object (Notice that it is a private repo) +$JsonBlock + +# Given it is an object, you can explore and interact with it +# Change the private value to false +$JsonBlock.private = 'false' + +# Convert the object back to a json +$Json = ConvertTo-Json $JsonBlock + +# Post the updated json block back to the GitHub +Invoke-RestMethod -Uri $PowerShellGithubUri -Headers $headers -Method Post -Body $Json + + +# -------------- + +# We can also use the PS objects to sort the different repos on github + +# If we grab the json from the PowerShell github +Invoke-RestMethod https://api.github.com/users/powershell/repos | sv repoData + +# We can sort it based on the number of forks each repo has +$repoData | Sort-Object -Property forks_count -Descending | ft -f id,name,stargazers_count,forks_count + +$repoData | Sort-Object -Property stargazers_count -Descending | ft -f id,name,stargazers_count,forks_count