Created
February 5, 2015 16:57
-
-
Save anonymous/aebb4a0639b0af2cfd88 to your computer and use it in GitHub Desktop.
Backup starred GitHub repositories
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
user="CHANGEME" | |
pages=$(curl -I https://api.github.com/users/$user/starred | sed -nr 's/^Link:.*page=([0-9]+).*/\1/p') | |
for page in $(seq 0 $pages); do | |
curl "https://api.github.com/users/$user/starred?page=$page&per_page=100" | jq -r '.[].html_url' | | |
while read rp; do | |
git clone $rp | |
done | |
done |
Also it looks like you need to change Link
to link
these days.
Also it looks like you need to change
Link
tolink
these days.
I found the GitHub API returned header named link
when calling curl as an unauthenticated user and Link
when authenticated (i.e. curl -u $USER:$TOKEN ...
. Both cases are covered when the regex is 's/^[Ll]ink:...
.
Also it looks like you need to change
Link
tolink
these days.
Thanks!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
$(seq 0 $pages)
should start at 1,per_page=100
should be 30, otherwise will be duplicate?