{"id":28317576,"url":"https://github.com/ragibalasad/thanks-for-the-star","last_synced_at":"2025-06-24T14:30:35.104Z","repository":{"id":293730922,"uuid":"971656981","full_name":"ragibalasad/thanks-for-the-star","owner":"ragibalasad","description":"Star this repo and get an instant follow back 💖","archived":false,"fork":false,"pushed_at":"2025-05-24T13:22:09.000Z","size":37,"stargazers_count":20,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-01T14:17:28.200Z","etag":null,"topics":["automation","github-webhook","nextjs14","serverless-function"],"latest_commit_sha":null,"homepage":"https://thanks-for-the-star.vercel.app","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ragibalasad.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,"zenodo":null}},"created_at":"2025-04-23T21:24:29.000Z","updated_at":"2025-05-24T13:22:13.000Z","dependencies_parsed_at":"2025-05-16T21:27:39.573Z","dependency_job_id":"fa7d22c1-5549-4ff0-8524-4e4fb9a06e6a","html_url":"https://github.com/ragibalasad/thanks-for-the-star","commit_stats":null,"previous_names":["ragibalasad/thanks-for-the-star"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ragibalasad/thanks-for-the-star","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragibalasad%2Fthanks-for-the-star","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragibalasad%2Fthanks-for-the-star/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragibalasad%2Fthanks-for-the-star/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragibalasad%2Fthanks-for-the-star/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ragibalasad","download_url":"https://codeload.github.com/ragibalasad/thanks-for-the-star/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ragibalasad%2Fthanks-for-the-star/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261694014,"owners_count":23195498,"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":["automation","github-webhook","nextjs14","serverless-function"],"created_at":"2025-05-25T06:12:21.301Z","updated_at":"2025-06-24T14:30:35.095Z","avatar_url":"https://github.com/ragibalasad.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\u003cimg src=\"https://gist.githubusercontent.com/ragibalasad/0005e389abeceb2f21f397f7db21863c/raw/275411a57f60380762891a8f74a737dac1ef755f/thanks_for_the_star.svg\"\u003e\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003e\n  \u003cimg alt=\"GitHub Repo stars\" src=\"https://img.shields.io/github/stars/ragibalasad/thanks-for-the-star?style=for-the-badge\u0026label=%E2%AD%90%20stars\u0026labelColor=24292F\u0026color=FFE66D\"\u003e\n  \u003cimg src=\"https://img.shields.io/github/license/ragibalasad/thanks-for-the-star?style=for-the-badge\u0026label=%F0%9F%93%84%20LICENSE\u0026labelColor=24292F\u0026color=7ED6DF\" /\u003e\n\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  Automatically follow people who star your repo ✨\u003cbr/\u003e\n  Give back with a follow, powered by Next.js \u0026 GitHub Webhook\u003cbr/\u003e\u003cbr/\u003e\n\n  \u003cdiv align=center\u003e\n\n##### Star this repo and get an instant follow back 💖\n\n##\n\n  \u003c/div\u003e\n\u003c/p\u003e\n\nA Next.js 14 serverless GitHub webhook API to auto-follow users who star your repo — ported from the Python version to Next.js API route with full secret verification and logging.\n\n## How it works\n\nWhen someone stars this repo, GitHub sends a webhook that triggers this API. It:\n\n- Validates the webhook signature\n- Follows the user by sending a PUT request to `https://api.github.com/user/following/{username}` with the GitHub token in the `Authorization` header (`Bearer \u003ctoken\u003e`).\n\n## Features\n\n- Secure webhook secret validation\n- Instant follow-back of new stargazers\n- Simple setup with environment variables\n- Logs for success and errors\n\n## Setup\n\nYou can set this up yourself to automatically follow users who star your repository.\n\n1. Clone or download this repo\n\n2. Rename `.env.example` to `.env.local` and fill in your values:\n\n```\nGITHUB_TOKEN=your_github_personal_access_token\nGITHUB_WEBHOOK_SECRET=your_webhook_secret\n```\n\n- The GitHub token needs the `user:follow` scope.\n\n3. Deploy on Vercel\n\n4. Add the webhook URL to your GitHub repo settings:\n\n```\nhttps://your-vercel-app.vercel.app/api/webhook\n```\n\n- Content type: `application/json`\n- Secret: same as `GITHUB_WEBHOOK_SECRET`\n\n## Logs \u0026 Debugging\n\nLogs are printed in Vercel serverless function console.\n\n## License\n\nBSD-3-Clause license\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fragibalasad%2Fthanks-for-the-star","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fragibalasad%2Fthanks-for-the-star","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fragibalasad%2Fthanks-for-the-star/lists"}