Clone all your gists locally with R

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:

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)

[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


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"

mylogin <- "YOURLOGIN"
gists.url <- paste0("", mylogin, "/gists")
x <- content(GET(gists.url)) <- lapply(x, "[[", "id")
lapply(, function(x){
cmd <- paste0("rm -rf ", x, ";git clone git://", x)


Markus Gesmann said...

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

Post a Comment