{"id":13726526,"url":"https://github.com/jrieke/year-on-github","last_synced_at":"2026-03-15T02:24:10.163Z","repository":{"id":41381939,"uuid":"323113323","full_name":"jrieke/year-on-github","owner":"jrieke","description":"🐙 Share your Github stats for 2020 on Twitter","archived":false,"fork":false,"pushed_at":"2022-01-05T22:25:39.000Z","size":4518,"stargazers_count":133,"open_issues_count":0,"forks_count":8,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-10T09:04:53.018Z","etag":null,"topics":["2020","developer","git","github","github-api","github2020","streamlit","streamlit-webapp","twitter","year"],"latest_commit_sha":null,"homepage":"http://gh2020.jrieke.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jrieke.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-12-20T16:18:16.000Z","updated_at":"2025-02-14T23:09:17.000Z","dependencies_parsed_at":"2022-08-25T13:30:23.400Z","dependency_job_id":null,"html_url":"https://github.com/jrieke/year-on-github","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrieke%2Fyear-on-github","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrieke%2Fyear-on-github/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrieke%2Fyear-on-github/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jrieke%2Fyear-on-github/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jrieke","download_url":"https://codeload.github.com/jrieke/year-on-github/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248943520,"owners_count":21186978,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2020","developer","git","github","github-api","github2020","streamlit","streamlit-webapp","twitter","year"],"created_at":"2024-08-03T01:03:10.519Z","updated_at":"2026-03-15T02:24:10.096Z","avatar_url":"https://github.com/jrieke.png","language":"Python","readme":"# Year on Github 🐙\n\n[![Heroku App Status](http://heroku-shields.herokuapp.com/year-on-github)](http://gh2020.jrieke.com)\n\n**Share your Github stats for last year on Twitter.**\n\nThis project contains a small web app that let's you share stats about your Github \nactivity from last year. It's like Spotify's \"year in review\" but for Github. The app \nis built with [Streamlit](https://www.streamlit.io/), queries Github's API via \n[ghapi](https://ghapi.fast.ai/), and let's you share the generated stats directly on \n[Twitter](https://twitter.com/).\n\n\u003cbr\u003e\n\n---\n\n\u003ch3 align=\"center\"\u003e\n    🎉 Try it out: \u003ca href=\"http://gh.jrieke.com\"\u003egh.jrieke.com\u003c/a\u003e 🎉\n\u003c/h3\u003e\n\n---\n\n\u003c!-- \u003ch3 align=\"center\"\u003e\n    🎉 Year on Github is now live! 🎉\n    \u003cbr\u003e\u003cbr\u003e\n    Try it out: \u003cbr\u003e\n    \u003ca href=\"http://gh2020.jrieke.com\"\u003egh2020.jrieke.com\u003c/a\u003e\n\u003c/h3\u003e --\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"http://gh.jrieke.com/\"\u003e\u003cimg src=\"images/demo.gif\" width=700\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n*For updates [follow me on Twitter](https://twitter.com/jrieke) and if you like this project, please [consider sponsoring](https://github.com/sponsors/jrieke) ☺️*\n\n\u003cbr\u003e\n\n---\n\n\u003cbr\u003e\n\n**Note: The steps below are only required if you want to work on the app. If you just want to use it, go [here](http://gh2020.jrieke.com/).**\n\n## Installation\n\n```bash\ngit clone https://github.com/jrieke/my-year-on-github.git\ncd my-year-on-github\npip install -r requirements.txt\n```\n\n**Known issues**\n\n- **Doesn't work with Python 3.8 and 3.9!** Both versions throw an error related to \n  ghapi/multiprocessing that I couldn't resolve yet \n  (`RuntimeError: An attempt has been made to start a new process before the current process has finished its bootstrapping phase` \n  and subsequently an `EOFError`). Please use Python 3.7 for now.\n\n- [ghapi](https://ghapi.fast.ai/) has (as of 26 December 2020) a small bug in the \n  `paged` method (see [here](https://github.com/fastai/ghapi/issues/24)), which may \n  cause problems, therefore the commands above will install it from \n  [my fork](https://github.com/jrieke/ghapi) (you can also install it manually from \n  there with `pip install -U git+https://github.com/jrieke/ghapi`).\n\n\n## Running locally\n\n```bash\nstreamlit run app/main.py\n```\n\nMake sure to run always from the `my-year-on-github` dir (not from the `app `dir), \notherwise the app will not be able to find the css file.\n\n## Deploying to Heroku\n\nFirst, [install heroku and login](https://devcenter.heroku.com/articles/getting-started-with-python#set-up). \nTo create a new deployment, run inside `my-year-on-github`:\n\n```\nheroku create\ngit push heroku main\nheroku open\n```\n\nTo update the deployed app, commit your changes and run:\n\n```\ngit push heroku main\n```\n\n## TODO\n\nPRs are welcome! Please open an issue before you start working to coordinate. \n\n- [ ] New stars for repos \u003e40k stars are not properly calculated because the Github\n  API only returns the first 40k stars. Improve this by using the current \n  stargazers_count to calculate/estimate the number of new stars.\n- [ ] Maybe: Use stargazers_count in `query_repo` so it's not required to read the last\n  page of stargazers. This requires to disable hashing for stargazers_count in \n  streamlit's cache function.\n- [ ] Right now, new stars for 2021 are also counted. Fix this.","funding_links":["https://github.com/sponsors/jrieke"],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjrieke%2Fyear-on-github","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjrieke%2Fyear-on-github","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjrieke%2Fyear-on-github/lists"}