Fewer PRs left hanging
Thresholds, cooldowns, and stale rules give every PR a path to an outcome.
PullPact for GitHub
PullPact helps maintainer-light repos keep PRs moving. Contributors vote with reactions, Checks show the result, and your repo policy decides what happens next.
No dashboard. No comment commands. Just .pullpact.yaml and the PR workflow people already know.
When one busy person becomes the bottleneck, PullPact gives the community a clear way to help.
Thresholds, cooldowns, and stale rules give every PR a path to an outcome.
Your repo policy says who votes, how many votes count, and what consensus means.
Vote totals, blockers, and outcomes stay visible in GitHub.
Start with reporting. Turn on merge or close when your project is ready.
PullPact adds a small decision loop without changing the PR flow.
Approve, reject, or abstain on the PR description.
Totals, blockers, timing, and status stay visible without progress-comment noise.
.pullpact.yaml decides whether to report, merge, queue, close, or wait, then records the result.
Keep PullPact advisory, or let it act when votes and GitHub safeguards agree.
none keeps the PR openLet contributors keep revising, discussing, or gathering fresh votes.
report shows the decisionPublish the voting result without merging or closing anything.
merge ships approved workUse merge queue when available, or direct merge after required checks and rules pass.
close resolves stale or rejected workClose only when your policy calls for it, with a final outcome to audit later.
PullPact moves work forward, but double-checks merge and close actions.
Start with one repository and one real PR.
.pullpact.yaml below.Three voters, 60% approval, a 24-hour merge cooldown, and stricter rules for governance changes.
version: 1
reactions:
approve_reaction: "+1" # counts as approve
reject_reaction: "-1" # counts as reject
abstain_reaction: "eyes" # counts as abstain
pull_requests:
minimum_voters: 3 # voters needed
required_approval_ratio: 0.6 # approval needed
eligible_voters: all # who may vote
merge_cooldown_hours: 24 # wait after open or push
cooldown_override_approve_votes: 6 # approvals to skip wait
stale_timeout_hours: 168 # inactive hours before stale
vote_settle_hours: 1 # wait after last vote
protected_paths:
- paths: [".pullpact.yaml"] # stricter rule for config changes
minimum_voters: 5 # more voters needed
required_approval_ratio: 0.75 # higher approval needed
merge_cooldown_hours: 72 # longer wait after update
vote_settle_hours: 3 # longer vote settle
safety:
ignored_labels: ["status:draft"] # skip PullPact until label removed
blocked_labels: ["DONTMERGE"] # pause automation, votes may still count
resolution:
on_pass: merge # when voting passes
on_fail: none # when voting fails
on_stale: close # when PR goes stale
Install the GitHub App, commit .pullpact.yaml, and give contributors a clear way to move PRs forward.
Like the project? Support the maintainer.