草生やしていますか?
GitHubに作成したリポジトリに対して、コミットやissuesの作成などを行うとプロフィールページに表示されるcontribution↓
どこかの界隈ではこれを「草」と呼ぶみたいです(納得?)。個人的には、コミットなどの総称して「草を生やす」と言い、このcontribution graphを「芝生」と呼びたい。
これをGitHub以外の場所でも表示させたい時には、javascriptモジュールのCal-HeatMap(kamisama::cal-heatmap@GitHub
)を使うと楽。可視化に必要なデータはjson
, csv
, tsv
, txt
に対応しています。
問題
- プライベートリポジトリへのcontributionsが見えない
- データをどこから取ってくるか
- cal-heatmapが読み込める形式に変換
プライベートリポジトリへのcontributionsが見えない
ログインしていると自分のcontribution graphはプライベートリポジトリへのcontributionsが表示されますが、他のユーザーからは見えません↓。プライベートリポジトリにばかり貢献している人だと、ほとんど草が生えていない状態になります。
どうせならプライベートリポジトリを含んだcontribution graphを表示させたいところです。
データをどこから取ってくるか
GitHubから取得します。URLはprivateのcontributionsを含んだものになっています。username
の場所はそれぞれ置換してください。
URL: https://github.com/users/{username}/contributions_calendar_data
cal-heatmapが読み込める形式に変換 (with R)
先ほどのURLをcal-heatmap.jsで参照しても表示されません。cal-heatmapが読み込める形式(unix time stamp)に変換する必要があります。
変換にはR
とjsonlite
およびhttr
という2つのパッケージを使います。
ref) Calendar Heatmap with rCharts
library(jsonlite)
library(httr)
data1 <- fromJSON("https://github.com/users/uribo/contributions_calendar_data")
colnames(data1) <- c("Date", "Value")
data2 <- transform(data1, Date = as.numeric(as.POSIXct(Date)))
myjson <- toJSON(data2, pretty=TRUE)
cat(myjson)
write(myjson, "myjson.json")
myjson.json
というファイルが変換したファイルになります。これを読み込むように指定します。
Enjoy!?
ちらしのうら
もう少し賢い方法がきっとある...。