Save information about your GitHub starred repos into Google Sheets, Zinc, and SQLite!
Thanks to https://github.com/yks0000/starred-repo-toc for the inspiration!
GraphQL and Google Sheets auth notes at ./dev_notes.md
scoop bucket add bbkane https://github.com/bbkane/scoop-bucket
scoop install bbkane/starghaze
- Download Mac/Linux/Windows executable: GitHub releases
- Go:
go install go.bbkane.com/starghaze@latest
- Build with goreleaser after cloning:
goreleaser --snapshot --skip-publish --rm-dist
GITHUB_TOKEN=my_github_token starghaze download \
--include-readmes true \
--output stars.jsonl
starghaze format \
--format csv \
--include-readmes false \
--output stars.csv
GOOGLE_APPLICATION_CREDENTIALS=/path/to/keys.json starghaze gsheets upload \
--csv-path stars.csv \
--sheet-id 0 \
--spreadsheet-id 15AXUtql31P62zxvEnqxNnb8ZcCWnBUYpROAsrtAhOV0 \
--timeout 30s
Click here to see My GitHub Stars Google Sheet
Save Stars to Zinc
starghaze format \
--include-readmes true \
--format zinc \
--output stars.zinc \
--zinc-index-name starghaze
Using default settings - See Zinc repo for more details.
curl http://localhost:4080/api/_bulk -i -u admin:Complexpass#123 --data-binary "@stars.zinc"
Format Downloaded Stars to SQLite (with full text search)
starghaze format \
--format sqlite \
--include-readmes true \
--sqlite-dsn starghaze.db
For example, find the top 10 languages (as measured by number of repos) in the starred collection.
$ sqlite3 starghaze.db '
SELECT
l.Name ,
COUNT(lr.Language_id) as Repo_Count
FROM
Language_Repo lr JOIN Language l ON lr.Language_id = l.id
GROUP BY Language_id
ORDER BY Repo_Count DESC
LIMIT 10
'
-- Loading resources from /Users/bbkane/.sqliterc
┌────────────┬────────────┐
│ Name │ Repo_Count │
├────────────┼────────────┤
│ Shell │ 939 │
│ JavaScript │ 617 │
│ HTML │ 598 │
│ Python │ 540 │
│ Makefile │ 519 │
│ CSS │ 432 │
│ Dockerfile │ 403 │
│ Go │ 367 │
│ C │ 305 │
│ C++ │ 230 │
└────────────┴────────────┘