🐙
Year on Github
Share your Github stats for 2020 on Twitter.
This project contains a small web app that let's you share stats about your Github activity from last year. It's like Spotify's "year in review" but for Github. The app is built with Streamlit, queries Github's API via ghapi, and let's you share the generated stats directly on Twitter.
🎉
Try it out: gh2020.jrieke.com
🎉
For updates follow me on Twitter and if you like this project, please consider sponsoring
Note: The steps below are only required if you want to work on the app. If you just want to use it, go here.
Installation
git clone https://github.com/jrieke/my-year-on-github.git
cd my-year-on-github
pip install -r requirements.txt
Known issues
-
Doesn't work with Python 3.8 and 3.9! Both versions throw an error related to ghapi/multiprocessing that I couldn't resolve yet (
RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase
and subsequently anEOFError
). Please use Python 3.7 for now. -
ghapi has (as of 26 December 2020) a small bug in the
paged
method (see here), which may cause problems, therefore the commands above will install it from my fork (you can also install it manually from there withpip install -U git+https://github.com/jrieke/ghapi
).
Running locally
streamlit run app/main.py
Make sure to run always from the my-year-on-github
dir (not from the app
dir), otherwise the app will not be able to find the css file.
Deploying to Heroku
First, install heroku and login. To create a new deployment, run inside my-year-on-github
:
heroku create
git push heroku main
heroku open
To update the deployed app, commit your changes and run:
git push heroku main
TODO
PRs are welcome! Please open an issue before you start working to coordinate.
- New stars for repos >40k stars are not properly calculated because the Github API only returns the first 40k stars. Improve this by using the current stargazers_count to calculate/estimate the number of new stars.
- Maybe: Use stargazers_count in
query_repo
so it's not required to read the last page of stargazers. This requires to disable hashing for stargazers_count in streamlit's cache function. - Right now, new stars for 2021 are also counted. Fix this.