{"id":42134152,"url":"https://github.com/thnxdev/utils","last_synced_at":"2026-01-26T16:04:17.384Z","repository":{"id":195940662,"uuid":"692710911","full_name":"thnxdev/utils","owner":"thnxdev","description":"Mass GH Sponsors donor","archived":false,"fork":false,"pushed_at":"2024-01-08T22:44:34.000Z","size":89,"stargazers_count":1,"open_issues_count":1,"forks_count":2,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-10-19T16:49:31.919Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thnxdev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-09-17T10:50:26.000Z","updated_at":"2023-11-04T07:40:14.000Z","dependencies_parsed_at":"2024-06-21T15:15:28.600Z","dependency_job_id":"cfbcd7cf-8967-49b5-a32b-a7d110a44b4c","html_url":"https://github.com/thnxdev/utils","commit_stats":null,"previous_names":["thnxdev/wkr-gh-sponsor"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/thnxdev/utils","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thnxdev%2Futils","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thnxdev%2Futils/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thnxdev%2Futils/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thnxdev%2Futils/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thnxdev","download_url":"https://codeload.github.com/thnxdev/utils/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thnxdev%2Futils/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28782099,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T13:55:28.044Z","status":"ssl_error","status_checked_at":"2026-01-26T13:55:26.068Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-01-26T16:04:16.865Z","updated_at":"2026-01-26T16:04:17.379Z","avatar_url":"https://github.com/thnxdev.png","language":"Go","funding_links":["https://api.thanks.dev"],"categories":[],"sub_categories":[],"readme":"# thanks.dev utils\nThis repository contains the following tools:\n  - auto-boost: used to automatically boost any GH repository that has a \"tag-production\" topic associated to +2\n  - mass-gh-sponsor: used to set up monthly GH sponsorships for all dependencies\n\n## 1. auto-boost\n```\nutils git:(master) ✗ ./scripts/auto-boost --help\nUsage: auto-boost --td-api-url=\"https://api.thanks.dev\" --td-api-key=TD-API-KEY --gh-classic-access-token=GH-ACCESS-TOKEN --entities=ENTITIES,...\n\nFlags:\n  -h, --help                                   Show context-sensitive help.\n  -v, --version                                Print version and exit.\n  -C, --config=FILE                            Config file ($CONFIG_PATH).\n      --td-api-url=\"https://api.thanks.dev\"    API path for thanks.dev ($TD_API_URL).\n      --td-api-key=TD-API-KEY                  API key for thanks.dev ($TD_API_KEY).\n      --gh-classic-access-token=GH-ACCESS-TOKEN\n                                               GitHub classis access token with admin:org \u0026 user scopes\n                                               ($GH_CLASSIC_ACCESS_TOKEN).\n      --entities=ENTITIES,...                  The GitHub entities to process sponsorships for. First entity in the list\n                                               is considered DEFAULT.\n\nObservability:\n  --log-level=info    Log level (trace,debug,info,warning,error,fatal,panic).\n  --log-json          Log in JSON format.\n```\n\n### Run locally\n`. bin/activate-hermit`\n`TD_API_KEY=\u003cAPI_KEY\u003e GH_CLASSIC_ACCESS_TOKEN=\u003cTOKEN\u003e ./scripts/auto-boost --config example.config.json`\n\n\n## 2. mass-gh-sponsor\n```\n➜  utils git:(master) ./scripts/mass-gh-sponsor --help\nUsage: mass-gh-sponsor --db-path=\"db.sql\" \u003ccommand\u003e\n\nFlags:\n  -h, --help                Show context-sensitive help.\n  -v, --version             Print version and exit.\n  -C, --config=FILE         Config file ($CONFIG_PATH).\n      --db-path=\"db.sql\"    Path to db file ($DB_PATH).\n\nObservability:\n  --log-level=info    Log level (trace,debug,info,warning,error,fatal,panic).\n  --log-json          Log in JSON format.\n\nCommands:\n  import-csv       Import list of donations from csv file.\n  dl-repos         Import the user's github repos.\n  animate-repos    Animate the sponsorable dependencies for each repo.\n  donate           Create the require GitHub sponsorships.\n\nRun \"mass-gh-sponsor \u003ccommand\u003e --help\" for more information on a command.\n```\n\n### 2.1 Run locally (import from gh)\n`. bin/activate-hermit`\n\n`GH_CLASSIC_ACCESS_TOKEN=\u003cTOKEN\u003e ./scripts/mass-gh-sponsor --log-level=debug dl-repos --entities=syntaxfm`\n\n`GH_CLASSIC_ACCESS_TOKEN=\u003cTOKEN\u003e ./scripts/mass-gh-sponsor --log-level=debug animate-repos`\n\n`GH_CLASSIC_ACCESS_TOKEN=\u003cTOKEN\u003e ./scripts/mass-gh-sponsor --log-level=debug donate`\n\n### 2.2 Run locally (import from csv)\n`. bin/activate-hermit`\n\n`GH_CLASSIC_ACCESS_TOKEN=\u003cTOKEN\u003e ./scripts/mass-gh-sponsor --log-level=debug import-csv --entity=syntaxfm --file-path=\u003cPATH_TO_CSV_FILE\u003e`\n\n`GH_CLASSIC_ACCESS_TOKEN=\u003cTOKEN\u003e ./scripts/mass-gh-sponsor --log-level=debug donate`\n\n## 3. TD-API-KEY\nTo obtain a thanks.dev API key, log into thanks.dev and visit the settings screen. The API key configurations are located towards the bottom of the screen.\n![image](https://github.com/thnxdev/utils/assets/72539235/610b19f4-2c52-4060-b17f-8f81ba8dbaf7)\n\n## 4. GH-ACCESS-TOKEN\nEnsure you create a classic GH access token with `admin:org` and `user` scopes configured. Set a custom expiration date to one day after the last expected donation date.\n![image](https://github.com/thnxdev/utils/assets/72539235/a5ffdd99-0db0-4945-a95b-033864c56685)\n\n**Ensure you keep the token stored securely**\nUnfortunately, these are the minimum scopes that can create a sponsorship via the GH GraphQL API and they contain write permissions on your account.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthnxdev%2Futils","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthnxdev%2Futils","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthnxdev%2Futils/lists"}