A GitHub App. No code changes, works with branch protection.
Every pull request has a price.
Chitragupta asks a small refundable deposit before a pull request enters review. Merged work gets it back as rolling credit. Spam forfeits it.
Hi @contributor, this repository uses Chitragupta to keep spam pull requests off the review queue.
A refundable deposit of $2.00 is needed before this pull request is reviewed.
Top up your wallet- Minimum top up is $20.00, which covers several pull requests
- The deposit is refunded once this is merged or closed in good standing
- A maintainer can run
/waive @contributorinstead
Without a deposit this pull request closes on its own in 48 hours.
- Deposits refunded
- 2,382
- Spam blocked
- 1,868
- Average deposit
- $2.00
- Auto closed
- 267
How it works
Every step stays where your team already looks.
Git remains the source of truth. The whole deposit lifecycle reads like commit history, because that is where it lives.
a1b2c3d
Pull request opened
An outside contributor opens a pull request. Chitragupta checks their waiver and balance, then posts the deposit request as a commit status.
Hi @contributor, this repository uses Chitragupta to keep spam pull requests off the review queue.
A refundable deposit of $2.00 is needed before this pull request is reviewed.
Top up your wallet
Without a deposit this closes on its own in 48 hours.
Features
Built for maintainers, not for another dashboard.
Everything runs inside the pull request you are already reading. Install it, set a deposit, and go back to reviewing code.
A wallet that funds itself
Contributors top up once. Every deposit after that deducts automatically, so there is no payment step per pull request.
Deposits refunded on merge
Two dollars by default, returned in full when a pull request is merged or closed in good standing. Set your own amount per repo.
Spam that finally costs something
Run the reject command and the deposit is forfeited instead of refunded. On cloud, 60 percent goes to your org.
Unpaid pull requests close themselves
Anything still awaiting a deposit after 48 hours closes on its own. Nothing to triage, nothing to remember.
Commands from the comment box
Waive a trusted contributor, reverse it, or change config without leaving the pull request. There is no dashboard to learn.
Config in a single file
One chitragupta.yml in your repo holds the deposit amount, the timeouts, and everyone you have waived.
.github/chitragupta.ymldeposit_amount: 2 · auto_close_timeout: 48 · auto_unlock_timeout: 60
Pricing
Same protection. Two ways to run it.
Installing is free either way. The only difference is who runs the infrastructure and how a forfeited deposit gets split.
Cloud
Most teams start here60/40split on forfeited deposits
Sixty percent of every forfeited deposit goes to your org, forty percent covers the platform. Nothing to deploy.
- Two dollar default deposit, twenty dollar minimum top up
- Escrow handled by Dodo Payments, audit log on every pull request
- Commit status ready for branch protection in about a minute
Install on GitHubWe run the webhooks, the database, and the payouts.
Self hosted
You host it100/0split on forfeited deposits
Every forfeited dollar stays with your org and there is no platform cut. You run the webhooks and the database.
- The same deposit and top up flow as cloud
- MIT licensed, deploy it inside your own network
- You own the data and control the payout schedule
Read the self hosting guideYou pay payment processing only. We take nothing.
Where a deposit ends up
$2 default- Merged, or closed in good standing
- Refunded in full
- Rejected as spam
- Forfeited: 60% to org on cloud, 100% self hosted
- Still locked after 60 days
- Unlocked and returned
Payment processing is deducted before any split, roughly 2.9 percent plus 30 cents per top up. Refunds land two to three days after a merge. A twenty dollar top up covers ten pull requests, about a 6 percent effective fee on either plan.
Make spam the expensive option.
Installing is free. Contributors only ever pay a deposit, and they get it back the moment you merge.
One .github/chitragupta.yml and you are set. MIT licensed, self hostable.