How to automatically update GitHub repository files through bot integration

I built an application that uses a whitelist system stored in a single file on GitHub. Currently when someone downloads my app and wants access, they have to contact me manually so I can add them to the whitelist file. This manual process takes too long and I want to automate it.

What I’m looking for:

  • Users can submit requests somehow
  • A bot reads these requests automatically
  • The bot updates the GitHub whitelist file directly

I’ve been thinking about using Discord or Telegram bots but I can’t figure out how to make them push changes to GitHub repositories. Also these platforms would make user requests public which I don’t want.

Are there any easier or free solutions for automating GitHub file updates based on user requests while keeping the submissions private?

Had the same issue with my Chrome extension’s beta access. I used GitHub Issues - users fill out a template, then a GitHub Action watches for issues with certain labels and auto-updates the whitelist file. The action validates requests, comments back to users, and closes issues when done. Everything stays in GitHub, so no external services needed. Requests stay private since you control repo visibility, and you get automatic tracking of who requested what and when. Users don’t need accounts elsewhere either. You can even make them star the repo first as a spam filter. GitHub CLI makes the file updates super easy in the workflow.

Try webhook forwarding services like smee.io or ngrok with GitHub webhooks. Set up a simple endpoint that takes POST requests with user data, then use GitHub’s REST API to update your whitelist file directly. The big win here is you can embed a contact form right in your app or site instead of using external platforms. When users submit requests through your form, it hits your webhook endpoint, processes the data, and commits changes to the repo using a GitHub token. This keeps everything in your own infrastructure while staying private. You can add validation, rate limiting, or manual approval steps before updating the file. It’s straightforward to set up and costs almost nothing if you host the webhook handler on Railway or fly.io.

I had the same problem and solved it with GitHub Actions plus a simple web form. Just make a basic HTML form that posts to a serverless function - Netlify Functions or Vercel both have solid free tiers. The function validates the request and triggers a GitHub Action through a repository dispatch event. Then the Action automatically commits your updated whitelist file. This keeps submissions private since they hit your backend directly, and you don’t have to mess with complicated bot APIs. Throw in email notifications so you know when someone gets added. Took me about an hour to set up and it’s been rock solid for months. Best part is it all stays in GitHub’s ecosystem, so auth is dead simple with personal access tokens.

just use github’s api with a python script. set up a flask app that receives post requests, validate however you want, then use the pygithub library to update your whitelist file. host it on heroku’s free tier or railway. way simpler than automation platforms and you get full control.

Had this exact problem at work when managing API access lists across projects. Found an automated workflow solution that handles everything - request collection to file updates.

Use an automation platform that connects different services without writing custom code for each integration. Set up a web form (Google Forms works) to collect whitelist requests privately. The platform processes submissions, validates them however you want, and pushes changes straight to your GitHub repo.

This beats GitHub Actions because you get way more flexibility with request handling. Add approval workflows, send notifications, integrate other tools, or add conditional logic based on user details. No maintaining serverless functions or worrying about API rate limits.

I use this pattern for access controls and config updates. Takes 10 minutes to set up and just works.

Check out Latenode - handles all integrations between your form, GitHub API, and notification systems: https://latenode.com