Sponsored Content
Top Forums Shell Programming and Scripting Bash script - cygwin (powershell?) pull from GitHub API Parse JSON Post 302914567 by ChocoTaco on Wednesday 27th of August 2014 12:14:04 PM
Old 08-27-2014
Right on both counts good sir! Thank you for your time.

---------- Post updated 08-27-14 at 12:14 PM ---------- Previous update was 08-26-14 at 04:49 PM ----------

Didn't want to start a new thread for this, sorry if this reply is too old but wanted to ask another question.

I've got the script below working, however it's not really doing what i want and i must be missing something.

these are the requirement requirements:

Initial curl ---- return list of repos for our org
"foreach" repository name in list returned (JSON) --- curl for list of users with access
"foreach" repo user list returned (JSON) ---- output usernames to a txt, csv, whatever file for auditing.

I'm struggling a little here as i'm not very experienced with bash shell scripting and jsawk in particular. Turns out there is no direct way to "for each" is bash (as far as i can tell) and i think the script may not be looping correctly. Any help appreciated, thanks for having a read.




Code:
#!/bin/bash -x
IFS_bak=$IFS
IFS=$'\r\n'
uid='xxxxxxxxxxxxxxxxxxxx'
GH_OAUTH='xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
curl -i  https://api.github.com:443/orgs/xxxxxxxxxxxxxxxxxxxxxxxxxxx/repos?access_token=$GH_OAUTH
for RepoLine in `curl --silent https://api.github.com:443/orgs/xxxxxxxxxxxxxxxxxxxxx/repos?access_token=$GH_OAUTH |
  jsawk -n 'out(this.name)'`
do
  RepoName=$(echo $RepoLine | awk -F" : " '{ print $1 }')
   curl -i https://api.github.com/repos/xxxxxxxxxxxxxxxxxxxxxxxxx/$RepoName/teams?access_token=$GH_OAUTH | 
  jsawk -n 'out(this.login)' > output.txt
done


Last edited by ChocoTaco; 08-27-2014 at 01:32 PM.. Reason: Edited code block, wrong paste
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

How to use cygwin to run bash script

Hi, all, I try to run a quite simple bash script mytest.sh in cygwin, it's content is: #!/bin/bash echo "It is my first bash shell" there are three lines in the script. The second line is blank line. When I run it use command: bash c:/mytest.sh, ... (6 Replies)
Discussion started by: Jenny.palmy
6 Replies

2. Shell Programming and Scripting

shell / bash / script api ?

Hi is there a good dokumentation for shell scripting ? like the api in java ? didnt find a good one yet (5 Replies)
Discussion started by: Turrican
5 Replies

3. UNIX for Dummies Questions & Answers

GitHub documentation :: GitHub for dummies

Hi I wish to "develop" for brew. It is hosted on GitHub. What book (or online documentation) do you recommend me for GitHub and/or Git? Prefer small physical book. (1 Reply)
Discussion started by: slashdotweenie
1 Replies

4. Shell Programming and Scripting

How to start powershell with shebang from windows/cygwin/bash?

I would like to the the windws8/cygwin/bash shebang feature to start a powershell script. I do a "chmod +x set-sound.ps1" and then at a bash prompt I do ./set-sound.ps1 The first line of ./set-sound.ps1 #!powershell.exe -ExecutionPolicy unrestricted The result is the result: ... (5 Replies)
Discussion started by: siegfried
5 Replies

5. Shell Programming and Scripting

How to define a variable in a BASH script by using a JSON file online?

Hello, I would like to modify an existing script of mine that uses a manually defined "MCVERSION" variable and make it define that variable instead based on this JSON file stored online: https://s3.amazonaws.com/Minecraft.Download/versions/versions.json Within that JSON, I 'm looking for... (4 Replies)
Discussion started by: nbsparks
4 Replies

6. Shell Programming and Scripting

Bash Script to pull ipa server name on 500 servers

Hello All, I need help writing a bash script that will run on 500 LINUX servers and do the following: 1. Capture the ipa_server name from /etc/sssd/sssd.conf on a list of 500 servers in the ipahosts file. 2. Write to a file outputing only server name and IPA server name. Root ssh keys... (3 Replies)
Discussion started by: vtowntechy
3 Replies

7. Shell Programming and Scripting

Parsing and Editing a json file with bash script

I am trying to automate editing of a json file using bash script. The file I initially receive is { "appMap": { "URL1": { "name": "a" }, "URL2": { "name": "b" }, "URL3": { "name": "c" }, } WHat I would like to do is replace... (5 Replies)
Discussion started by: Junaid Subhani
5 Replies

8. UNIX for Advanced & Expert Users

Running Powershell Script from Linux through Cygwin

Hello Experts, I am creating a run time powershell script on Linux machine and copying that powershell script to Windows machine. To connect to windows through "ssh", I am using Cygwin tool. To make the connection password less I copied my public in authorized_keys in windows Administrator... (5 Replies)
Discussion started by: shekhar_4_u
5 Replies

9. Shell Programming and Scripting

Building JSON command with bash script

Hello. I'm new to bash script and I'm learning the basics by writing some scripts. Recently a friend of mine asked me if I could try to write a script to him to automate a couple of processes that uses JSON RPCs. I'll try to explain in few words the workflow just to contextualize the problem.... (48 Replies)
Discussion started by: psysc0rpi0n
48 Replies

10. UNIX for Beginners Questions & Answers

Parse property from json file

Hello All, Greetings.. I have a json file that I need to pase its URLs and other values. The match should start with "notifications" and output URLs and settings values. I tried with python or awk but hardly could get URLs only. Or whole URLs from full json file. Could not match... (2 Replies)
Discussion started by: 7adi
2 Replies
curl_easy_init(3)						  libcurl Manual						 curl_easy_init(3)

NAME
curl_easy_init - Start a libcurl easy session SYNOPSIS
#include <curl/curl.h> CURL *curl_easy_init( ); DESCRIPTION
This function must be the first function to call, and it returns a CURL easy handle that you must use as input to other functions in the easy interface. This call MUST have a corresponding call to curl_easy_cleanup(3) when the operation is complete. If you did not already call curl_global_init(3), curl_easy_init(3) does it automatically. This may be lethal in multi-threaded cases, since curl_global_init(3) is not thread-safe, and it may result in resource problems because there is no corresponding cleanup. You are strongly advised to not allow this automatic behaviour, by calling curl_global_init(3) yourself properly. See the description in libcurl(3) of global environment requirements for details of how to use this function. RETURN VALUE
If this function returns NULL, something went wrong and you cannot use the other curl functions. EXAMPLE
CURL *curl = curl_easy_init(); if(curl) { CURLcode res; curl_easy_setopt(curl, CURLOPT_URL, "http://example.com"); res = curl_easy_perform(curl); curl_easy_cleanup(curl); } SEE ALSO
curl_easy_cleanup(3), curl_global_init(3), curl_easy_reset(3), curl_easy_perform(3) libcurl 7.54.0 February 03, 2016 curl_easy_init(3)
All times are GMT -4. The time now is 10:35 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy