Clone all your gists locally with R

2 comments
I really like gists as a quick way to include more lengthly code snippets into my blog posts. However, I am not a git user as such, and so I was quite concerned when I noticed that all my gists on this blog had vanished after Christmas. I suppose this was a result of Github's downtime on December 22nd.

Thankfully an email to the support guys at Github resolved the issue within a few hours. Still, I thought it might be a good idea to download my gists locally.

I can see all my gists as a JSON file online here: https://api.github.com/users/MYUSERLOGIN/gists

Thus, I downloaded the file and thanks to the RJSONIO package I was able to clone all my gists locally with a few lines of R:

> sessionInfo()
R Under development (unstable) (2012-10-19 r60974)
Platform: x86_64-apple-darwin9.8.0/x86_64 (64-bit)

locale:
[1] en_GB.UTF-8/en_GB.UTF-8/en_GB.UTF-8/C/en_GB.UTF-8/en_GB.UTF-8

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] RJSONIO_0.98-1

2 comments :

Harald R said...

Hi Markus -

great idea! Following your lead I wrote this short script file I run via Dirk's wonderful littler: "r backupgists.R"


require(httr)
mylogin <- "YOURLOGIN"
gists.url <- paste0("https://api.github.com/users/", mylogin, "/gists")
x <- content(GET(gists.url))
gist.id <- lapply(x, "[[", "id")
lapply(gist.id, function(x){
cmd <- paste0("rm -rf ", x, ";git clone git://gist.github.com/", x)
system(cmd)
}
)

Cheers
harald

Markus Gesmann said...

Thanks Harald, this makes it even easier do download all gists.
Cheers
Markus

Post a Comment