{"id":20887939,"url":"https://github.com/canop/starry","last_synced_at":"2025-05-12T19:34:04.365Z","repository":{"id":57668530,"uuid":"324741670","full_name":"Canop/starry","owner":"Canop","description":"A tool to collect github stars counts","archived":false,"fork":false,"pushed_at":"2024-03-11T19:35:20.000Z","size":463,"stargazers_count":12,"open_issues_count":1,"forks_count":0,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-04-22T20:08:26.015Z","etag":null,"topics":["github","history","rust","star"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Canop.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}},"created_at":"2020-12-27T10:56:56.000Z","updated_at":"2025-02-01T18:57:39.000Z","dependencies_parsed_at":"2024-03-11T20:54:14.036Z","dependency_job_id":null,"html_url":"https://github.com/Canop/starry","commit_stats":{"total_commits":21,"total_committers":1,"mean_commits":21.0,"dds":0.0,"last_synced_commit":"5fbd55b20d71fc391db2ee39733ab7e28a2a1fd2"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canop%2Fstarry","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canop%2Fstarry/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canop%2Fstarry/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Canop%2Fstarry/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Canop","download_url":"https://codeload.github.com/Canop/starry/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253808636,"owners_count":21967569,"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","history","rust","star"],"created_at":"2024-11-18T08:23:26.306Z","updated_at":"2025-05-12T19:34:04.044Z","avatar_url":"https://github.com/Canop.png","language":"Rust","readme":"[![MIT][s2]][l2] [![Latest Version][s1]][l1] [![docs][s3]][l3] [![Chat on Miaou][s4]][l4]\n\n[s1]: https://img.shields.io/crates/v/starry.svg\n[l1]: https://crates.io/crates/starry\n\n[s2]: https://img.shields.io/badge/license-MIT-blue.svg\n[l2]: LICENSE\n\n[s3]: https://docs.rs/starry/badge.svg\n[l3]: https://docs.rs/starry/\n\n[s4]: https://miaou.dystroy.org/static/shields/room.svg\n[l4]: https://miaou.dystroy.org/3\n\n# starry\n\nA tool to store the counts of GitHub stars, and also be notified about what's new and rising\n\n## Why\n\nDid you notice all those tools pretending to graph the numbers of stars on repositories never show anything going down ?\n\nThat's because you've been lied to: those tools only show the current stars, with their age. Because that's the only information you can get with the GitHub API.\n\nIf you want to see the real stars graph there's no other solution than to regularly query and store the numbers. That's what this tool does.\n\nBecause the history of current stars tells only half the starry.\n\n## Installation\n\nYou must have [Rust installed](https://rustup.rs). Do\n\n\tcargo install starry\n\n## Usage\n\nIn order to query the GitHub API, you must register your API token:\n\n\n\tstarry set github_api_token your-token\n\n(see https://docs.github.com/en/free-pro-team@latest/github/authenticating-to-github/creating-a-personal-access-token for creation)\n\nYou need to say what user(s) you want to follow:\n\n\tstarry follow dtolnay\n\tstarry follow ralt\n\nFetching the stars is done with\n\n\tstarry\n\nStarry will tell you about new repositories and rising or fading stars:\n\n![changes](doc/changes.png)\n\nIf you just want to know from time to time what your friends are up to, you don't need more.\n\nIf you want regular data, you should probably add a cron rule.\n\nData are stored in clear in CSV files (if you're on linux, they're in `~/.local/share/starry/stars`.\nThose files can be used as is.\n\nIf you want time series, for example to graph them, you may extract them as csv with the `extract` subcommand:\n\n\tstarry extract shepmaster ralt BurntSushi dtolnay dtolnay/anyhow \u003e test.csv\n\nIn this query we want to get the time series of 4 users (meaning their total number of stars) and one repository.\n\nHere's an example of result:\n\n![csv](doc/csv.png)\n\nYou may graph the data with [csv2svg](https://github.com/Canop/csv2svg):\n\nIf you run\n\n\tstarry extract dtolnay/thiserror | csv2svg\n\nthen your browser displays a graph like this:\n\n![svg_dtolnay_thiserror](doc/svg_dtolnay_thiserror.png)\n\nYou may display several entries, like `starry extract dtolnay/thiserror dtolnay/anyhow | csv2svg`\n\n## Starry Online\n\nA limited version of Starry can be seen at [https://dystroy.org/starnet/](https://dystroy.org/starnet/).\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanop%2Fstarry","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcanop%2Fstarry","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcanop%2Fstarry/lists"}