{"id":17102101,"url":"https://github.com/wilk/thanc","last_synced_at":"2025-04-13T00:36:54.480Z","repository":{"id":57158198,"uuid":"115166144","full_name":"wilk/thanc","owner":"wilk","description":"⭐ Thanc: a smarty way to thank NPM packages authors by starring their repos","archived":false,"fork":false,"pushed_at":"2018-02-08T08:26:14.000Z","size":5241,"stargazers_count":38,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-26T18:43:36.689Z","etag":null,"topics":["github","nodejs","npm","star","thank","thankfulness"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/wilk.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":"2017-12-23T02:58:12.000Z","updated_at":"2025-01-06T01:58:02.000Z","dependencies_parsed_at":"2022-08-28T18:13:05.515Z","dependency_job_id":null,"html_url":"https://github.com/wilk/thanc","commit_stats":null,"previous_names":[],"tags_count":33,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilk%2Fthanc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilk%2Fthanc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilk%2Fthanc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilk%2Fthanc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wilk","download_url":"https://codeload.github.com/wilk/thanc/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247895767,"owners_count":21014381,"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","nodejs","npm","star","thank","thankfulness"],"created_at":"2024-10-14T15:28:10.848Z","updated_at":"2025-04-13T00:36:54.447Z","avatar_url":"https://github.com/wilk.png","language":"JavaScript","readme":"# ![thanc](./thanc.svg \"thanc\")\n*Thanks to [@julietjul](https://twitter.com/julietjul) for thanc's logo*\n\nthanc: a smarty way to thank the authors of NPM packages by starring their repos on Github :heart:\n\nWith thanc you'll thank every dependency and sub-dependency (**literally the whole dependencies tree**) of a given project provided with a `package.json` (or better a `package-lock.json`) manifest.\nSo yes, it works also with `yarn` 😺\n\nThis is what thanc looks like:\n\n![start](./start.png \"start\")\n\nand then, after too many repos:\n\n![end](./end.png \"end\")\n\nInspired by:\n\n- https://github.com/zwilias/elm-thanks\n- https://github.com/symfony/thanks\n\n## 🤔  Why thanc and not just thank?!?\nBasically, because the thank (and also thanks) package already exists on NPM registry.\n\nThanc (or thancian) is the ancient english word to say thank, so that's why :bowtie:\n\n## 🛠  Installation\nthanc can be installed locally, globally or used with npx.\n\n### With NPX\nIf you've NPM 5.2+, then you can go ahead with [npx](https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b):\n\n```bash\n$ npx thanc --me\n```\n \n### Install locally\n```bash\n$ npm i -D thanc\n```\n\nThen, under the scripts section of your `package.json`:\n```bash\n\"thanc\": \"thanc .\"\n```\n\nAnd then:\n```bash\n$ npm run thanc\n```\n\n### Install globally\n```bash\n$ npm i -g thanc\n```\n\nThen:\n```bash\n$ thanc\n```\n\n## ⚙  Usage\nThanking current folder:\n\n```bash\n$ thanc\n```\n\nThanking an online Github repo:\n\n```bash\n$ thanc https://github.com/wilk/thanc\n```\n\nThanking a specific folder:\n\n```bash\n$ thanc myProject\n```\n\nThanking the `thanc` project:\n\n```bash\n$ thanc --me\n```\n\nThanking without seeing the repos list but a progress bar instead:\n\n```bash\n$ thanc --quite .\n```\n\n### Explicit credentials\n\n**Basic Auth**\n```bash\n$ thanc -u \u003cyour_github_username\u003e -p \u003cyour_github_password\u003e .\n```\n\n**User Token**\n\nExplicit:\n```bash\n$ thanc -t \u003cyour_github_token\u003e .\n```\n\nVia `GITHUB_TOKEN` env var:\n```bash\n$ export GITHUB_TOKEN=\u003cyour_github_token\u003e; thanc .\n```\n\n## 🔒  Authentication Types Supported\nthanc supports two types of authentication:\n\n- **Basic**: it requires your Github username and password\n- **Token**: it requires one of your Github user token (just **[create a new token](https://github.com/settings/tokens/new)** here with `public_repo` permission)\n\n## 📖 Help\nthanc has several options you can check through `--help`:\n\n```bash\n$ thanc --help\n\n  Usage: thanc [options] \u003cproject_path\u003e\n\n\n  Options:\n\n    -V, --version              output the version number\n    --me                       thank thanc package and all of its dependencies\n    -u, --username \u003cusername\u003e  your Github username\n    -p, --password \u003cpassword\u003e  your Github password\n    -t, --token \u003cpassword\u003e     your Github token\n    -q, --quite                Show only the progress bar instead of the repos list\n    -h, --help                 output usage information\n```\n\n## 🔑  Build Verification\nthanc is published as a transpiled lib and so, for each new tag, a new build is performed, generating the `dist.js` file.\n\nTo verify if `dist.js` is exactly the transpiled version of thanc, a `md5` checksum has been provided (and always up-to-date) inside the package.json (`checksums`):\n\n```bash\n$ md5sum dist.js\n```\n\nThe result must be equal to checksums listed inside the `package.json`.\n\nThe build verification process can be done as follows:\n\n```bash\n$ git clone https://github.com/wilk/thanc\n$ cd thanc\n$ npm i\n$ npm run build\n# replace md5sum with your favourite md5 program\n$ md5sum dist.js\n```\n\n## ✋  Limitations\nGithub APIs have some limitations:\n\n1. [rate limiting](https://developer.github.com/v3/#rate-limiting): each user can perform **5000 requests per hour**, so if you're using thanc intensively, you may encounter the rate limit error. Don't panic, take a coffee with a friend, and then start back starring repos :muscle:\n2. [abuse rate limit](https://developer.github.com/v3/#abuse-rate-limits): Github prevents making lots of rapidly requests for a single user (they want to guarantee the quality of service) so thanc stars chunks of **35 repos at a time.**\n\n## 💥  Known Issues\nSome repos cannot be starred, due to:\n\n- missing repository property on package.json manifest\n- missing package on NPM registry (thanc relies on that)\n- missing repository on Github (thanc uses NPM registry info)\n\nSometimes, some repos can be starred twice because they might have a very similar url but different, pointing to the same github repo","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilk%2Fthanc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilk%2Fthanc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilk%2Fthanc/lists"}