{"id":21771706,"url":"https://github.com/antonkomarev/github-trending-archive","last_synced_at":"2025-04-13T16:41:57.949Z","repository":{"id":263449917,"uuid":"890441376","full_name":"antonkomarev/github-trending-archive","owner":"antonkomarev","description":"Daily archive historical GitHub trending repositories \u0026 developers by most popular programming and markup languages.","archived":false,"fork":false,"pushed_at":"2025-04-09T02:01:39.000Z","size":11590,"stargazers_count":12,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-09T03:19:16.198Z","etag":null,"topics":["github-trending","github-trending-archive"],"latest_commit_sha":null,"homepage":"https://komarev.com","language":"TypeScript","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/antonkomarev.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"custom":"https://paypal.me/antonkomarev"}},"created_at":"2024-11-18T15:16:21.000Z","updated_at":"2025-04-09T02:01:43.000Z","dependencies_parsed_at":"2025-04-09T03:29:16.344Z","dependency_job_id":null,"html_url":"https://github.com/antonkomarev/github-trending-archive","commit_stats":null,"previous_names":["antonkomarev/github-trending-archive"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antonkomarev%2Fgithub-trending-archive","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antonkomarev%2Fgithub-trending-archive/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antonkomarev%2Fgithub-trending-archive/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/antonkomarev%2Fgithub-trending-archive/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/antonkomarev","download_url":"https://codeload.github.com/antonkomarev/github-trending-archive/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248747318,"owners_count":21155428,"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":["github-trending","github-trending-archive"],"created_at":"2024-11-26T14:18:12.237Z","updated_at":"2025-04-13T16:41:53.291Z","avatar_url":"https://github.com/antonkomarev.png","language":"TypeScript","funding_links":["https://paypal.me/antonkomarev"],"categories":["TypeScript"],"sub_categories":[],"readme":"# GitHub Trending Archive\n\n## Introduction\n\nThis project aims to track and daily archive historical GitHub trending repositories \u0026 developers\nby most popular programming and markup languages. As GitHub's trending list is constantly\nchanging and GitHub does not provide API to get this information retrospectively,\nthis repository helps in maintaining a historical archive using GitHub Actions.\n\n## Another one archive\n\nThere are many GitHub Trending archives already, but I've decided to make my own.\nAll of them doesn't satisfy one or many of my requirements:\n1. Store data in JSON.\n2. Guarantee of data scraping.\n3. Archive must be as small as possible.\n4. Archive must include Repositories \u0026 Developers.\n5. Archive must include `All languages` trends.\n6. Archive should include all popular languages.\n\nDetailed motivation could be found in the [FAQ](#faq).\n\n## How it works\n\nThe main implementation of this project involves the following steps:\n- GitHub Actions: We utilize GitHub Actions to automate the process of updating the archive on a regular basis. You can find the workflow configuration in the `.github/workflows` directory.\n- Scraping GitHub Trending: We use web scraping techniques to request and parse GitHub's trending HTML pages for selected languages.\n- Data Storage: Extracted data is stored in a structured JSON format in the `archive` directory.\n\n## What languages are supported\n\n**Programming languages**\n\n- C\n- C#\n- C++\n- Dart\n- Elixir\n- Erlang\n- Go\n- Haskell\n- Java\n- JavaScript\n- Kotlin\n- Lua\n- Perl\n- PHP\n- Python\n- R\n- Ruby\n- Rust\n- Scala\n- Shell\n- Swift\n- TypeScript\n\n**Markup languages**\n\n- CSS\n- HTML\n- Markdown\n\n**Frontend frameworks**\n\n- Svelte\n- Vue\n\n**Other**\n- HCL (HashiCorp Configuration Language)\n- Makefile\n- Lua\n- WebAssembly\n\n## FAQ\n\n#### Why there are no weekly or monthly trends in repository?\n\nI think that having daily trends we may compute weekly/monthly trends ourselves. \n\n#### Why there is no meta information like stars count or repository description in the archive?\n\nI've tried to make this archive simple and as small as possible.\nAll related information may be fetched using GitHub API.\n\n#### Why trends parsing runs hourly, but stored only once a day?\n\nI haven't found description of the GitHub Trends logic.\nBut, after doing some researches I've made an assumption that daily trends displayed not for today or yesterday,\nbut in a 24 hours window. For example, when you are opening trending page in 13:00,\nyou will see trends from 13:00 yesterday to 13:00 today.\n\nOther projects with such functionality updating trends every hour,\nbut at the end of the day they all will have trends from 23:00 yesterday to 23:00 today.\n\nRunning workflows hourly protects us from trends page outage.\nIf we can't fetch the data, we will try to get it one more time 1 hour later.\n\n#### Why project implemented on TypeScript?\n\nI was inspired by [other project](https://github.com/Leko/github-trending-archive) implemented on TypeScript. Just wanted to reduce time on development.\n\n## License\n\n- `GitHub Trending Archive` project is open-sourced software licensed under the [MIT license](LICENSE) by [Anton Komarev].\n\n## 🌟 Stargazers over time\n\n[![Stargazers over time](https://chart.yhype.me/github/repository-star/v1/R_kgDONRMOoA.svg)](https://yhype.me?utm_source=github\u0026utm_medium=antonkomarev-github-trending-archive\u0026utm_content=chart-repository-star-cumulative)\n\n## About CyberCog\n\n[CyberCog] is a Social Unity of enthusiasts. Research the best solutions in product \u0026 software development is our passion.\n\n- [Follow us on Twitter](https://twitter.com/cybercog)\n\n\u003ca href=\"https://cybercog.su\"\u003e\u003cimg src=\"https://cloud.githubusercontent.com/assets/1849174/18418932/e9edb390-7860-11e6-8a43-aa3fad524664.png\" alt=\"CyberCog\"\u003e\u003c/a\u003e\n\n[Anton Komarev]: https://komarev.com\n[CyberCog]: https://cybercog.su\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantonkomarev%2Fgithub-trending-archive","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fantonkomarev%2Fgithub-trending-archive","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fantonkomarev%2Fgithub-trending-archive/lists"}