GitHub 赏金接单全攻略:从注册到提交 PR 的完整流程
📅 生成日期:2026-05-23
第 1 章:GitHub Bounty 是什么,为什么值得做
如果你在程序员圈子里混过,"接私活"这个词一定不陌生。传统私活通常意味着:在某个外包平台跟几十个人竞标、加微信谈需求、被甲方反复改需求、最后可能还被拖欠尾款。而 GitHub Bounty 走的是一条完全不同的路——你不需要跟任何人社交,不需要写标书,只需要读懂代码、写好代码、提一个漂亮的 PR,钱就可能到你账上。
GitHub Bounty 到底是什么?
简单说,GitHub Bounty 就是开源项目维护者(或第三方平台)在某个 Issue 上挂一笔赏金,谁先提交符合要求的 Pull Request 并被合入,谁就拿走这笔钱。
它本质上是一种"众包开发"模式:项目方把需求写清楚,开发者自己评估能否做、值不值得做,做完提交,审核通过即结算。整个过程发生在 GitHub 上,你唯一需要打交道的就是代码和 PR 评论——没有甲方半夜发 60 秒语音方阵。
主流平台与真实金额
目前活跃的 Bounty 平台主要有这几家:
| 平台 | 典型金额范围 | 支付方式 | 特点 |
|---|---|---|---|
| Algora | $20 - $5,000 | 法币(Stripe) | 目前最活跃的通用平台,对开发者 0% 手续费 |
| Gitcoin | $500 - $60,000+ | 加密货币 | Web3 生态为主,金额大但门槛高 |
| IssueHunt | $20 - $200 | 加密货币 | 老牌平台,适合小修小补练手 |
| BountySource | $50 - $2,000 | 法币/加密货币 | 最早期的平台之一,项目覆盖面广 |
| OSS Capital 的 Bounty | $1,000 - $10,000+ | 法币 | 少数精选高额 Bounty,竞争激烈 |
重点推荐 Algora。理由很简单:支付走 Stripe,直接到银行卡,不需要搞钱包、不用 KYC 繁琐流程,对国内开发者最友好。而且它在 2024-2025 年活跃度非常高,每天都有新 Bounty 上线。
关于金额,不要被 Gitcoin 上那些 $60,000 的 bounty 吓到——那是极端案例。绝大多数 bounty 落在 $50-$500 区间。我见过有人在 Algora 上花一个周末搞定一个 TypeScript 类型修复的 bounty,拿 $150;也见过有人花两周做一个完整功能模块,拿 $3,000。关键在于你挑什么难度的活、你的技术栈匹不匹配。
为什么值得做?
第一,门槛极低。 不需要简历、不需要面试、不需要任何资质证明。GitHub Profile 就是你的名片,你的代码就是你的简历。只要你有一个像样的 GitHub 账号和能跑通的开发环境,就可以开始。
第二,回报直接。 做完 = 交 PR = 审核通过 = 钱到账。中间没有商务谈判、没有合同纠纷、没有催款环节。PR merged 的那一刻,钱就自动进入结算流程。
第三,积累开源声誉。 你提交的每一个 PR 都是公开的,永久留在 GitHub 上。这意味着你在赚钱的同时,也在给自己的 GitHub 贡献记录添砖加瓦。一份漂亮的 Contribution Graph 在求职时比简历上写"熟悉开源协作"有力一百倍。
第四,倒逼技术成长。 Bounty 不是玩具项目——你面对的是真实生产环境的代码库,有严格的 CI 检查、Code Review 和代码规范要求。为了过审,你必须写出高质量、可维护的代码。这对技术水平的提升比刷 LeetCode 快得多。
什么样的人适合做?
如果你满足以下条件中的 2-3 条,就可以试试:
- 有至少一门编程语言的熟练使用经验
- 用过 Git,知道 branch / commit / rebase 的基本操作
- 读过开源项目的源码,能理解别人的代码结构
- 英语阅读能力过关(大部分 Issue 和 PR 讨论都是英文)
- 每周能挤出 5-10 小时的自由时间
不需要是全栈大神。很多 $50-$200 的 bounty 就是修个 bug、加个小功能、写几行配置。你完全可以从这种小单开始积累经验和信心。
以我自己为例,第一单是个 $75 的 Python CLI 工具小修复,代码改动不到 30 行,但过程中学到了那个项目的 PR 模板规范、CI 流水线怎么跑、maintainer 的 Review 风格。这些经验在后面的单子里全用上了。
如果你的 GitHub Profile 还是一片空白,下一步我们就从这个开始。
第 2 章:从注册到提 PR 的六步完整流程
搞清楚了 Bounty 是什么,接下来就是实操。这一章会按顺序走完六个步骤,每一步我都会给出具体命令和最容易踩的坑。
第一步:注册 GitHub 并完善 Profile
如果你已经有一个 GitHub 账号,不要直接跳过这步——Profile 是 Maintainer 对你的第一印象,直接影响你的 PR 会不会被认真对待。
Profile 的核心要素:
- 头像:用一张清晰的照片或专业头像。不要用默认的像素小人。
- Bio:一句话说清楚你做什么技术栈。例如:"Full-stack dev, TypeScript & Rust enthusiast. Open source contributor." 不需要太长,但要让人一眼知道你能干什么。
- Pinned Repositories:把你最好的 6 个仓库置顶。如果没有拿得出手的项目,花一个周末做一个高质量的 Demo 项目放上去。哪怕是 Stars 数为零,代码质量和 README 写得好也能加分。
- Contribution Graph:如果有历史贡献记录,绿色的格子本身就是最好的名片。如果一片空白,从今天开始做贡献。
最容易忽视的点:README 里的个人项目 README。在 GitHub 上创建一个与你用户名同名的仓库,里面的 README.md 会渲染在你的 Profile 页面顶部。这是你的个人广告位——放技术栈标签、联系方式、最近在做的事。
# 示例:创建一个 Profile README
mkdir biebiebie # 替换为你的 GitHub 用户名
cd biebiebie
echo "# Hi, I'm biebiebie 👋" > README.md
git init && git add . && git commit -m "init profile"
# 在 GitHub 上创建同名仓库,push 上去
第二步:找到适合自己的 Bounty
Bounty 不是越多越好,是越匹配越好。以下是高效的搜索策略:
平台搜索技巧:
在 Algora 上,使用标签(Label)过滤是最高效的方式。关注以下标签组合:
-
good first issue+bounty:新手友好型,适合练手 - 你的技术栈标签:
python/typescript/rust/react -
bug:修 bug 通常比做新功能更容易过审
按难度筛选的实操标准:
| 难度 | 金额参考 | 特征判断 |
|---|---|---|
| 入门 | $50-$150 | Issue 描述详细、改动范围小、有明确的技术方案 |
| 中等 | $150-$500 | 需要读懂部分模块代码、可能需要设计决策 |
| 困难 | $500-$3,000 | 需要架构级别改动、跨模块影响、需要与 Maintainer 沟通方案 |
我的筛选铁律:
- Issue 描述模糊的一律跳过——"improve performance" 没有具体指标的不碰
- 仓库最近 30 天有 commit 的才接——死仓库的 PR 没人合
- 先看 CONTRIBUTING.md——如果仓库没有写清楚贡献规范,说明 Maintainer 可能不够专业
- 同一 Issue 下已经有 PR 在 Review 的,除非你确定自己能做得更好,否则跳过
第三步:创建 Personal Access Token
这一步很多人会问:为什么需要 Token?因为你需要用 git 命令推送代码到 GitHub,而 GitHub 从 2021 年起不再支持密码认证,必须用 Token 或 SSH Key。
创建步骤:
- 登录 GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
- 点击 "Generate new token (classic)"
- Note 填写 "bounty-work"(方便以后识别)
- 勾选权限:
repo(完整仓库访问权限)、workflow(如果需要触发 CI) - 设置过期时间:建议 90 天,不要选 "No expiration"
- 生成后立即复制保存——GitHub 只显示一次
安全注意事项:
- 不要把 Token 硬编码到代码里。 每年都有人把 Token 提交到公共仓库,然后被 GitHub 自动扫描到并吊销。
- 使用 Git Credential Manager 存储 Token,或者用环境变量:
# macOS / Linux
git config --global credential.helper osxkeychain
# 首次 push 时输入 Token,之后自动记住
- 如果你用 SSH Key 替代 Token,更推荐——
ssh-keygen -t ed25519 -C "your_email@example.com",把公钥添加到 GitHub SSH Keys。
第四步:Fork 仓库 + 本地开发
标准 Git 工作流:
# 1. Fork 目标仓库(在 GitHub 网页上点击 Fork 按钮)
# 2. Clone 你 Fork 的仓库
git clone https://github.com/YOUR_USERNAME/REPO_NAME.git
cd REPO_NAME
# 3. 添加上游仓库(保持同步)
git remote add upstream https://github.com/ORIGINAL_OWNER/REPO_NAME.git
# 4. 创建功能分支——务必从最新的 main 分支切出
git checkout main
git pull upstream main
git checkout -b fix/issue-42-description
# 5. 开发 + 提交
git add .
git commit -m "fix: resolve issue #42 - update validation logic"
# 6. Push 到你的 Fork
git push origin fix/issue-42-description
分支命名规范很重要。好的分支名让 Maintainer 一眼看懂:fix/issue-42-null-check、feat/add-pagination、docs/update-api-reference。不要用 my-fix 或 test 这种没有信息量的名字。
Commit Message 规范同样关键。推荐 Conventional Commits 格式:
---
## 推荐工具
以下是帮助开发者提升效率的实用工具:
| 工具 | 说明 | 佣金 |
|------|------|------|
| [ManyChat](https://www.agenthansa.com/r/eyJhaWQiOiJlMDNmMDk3ZC0yNzRlLTRmMGItODM3ZS1jN2Q0MGIxY2MzZjEiLCJvaWQiOiIwMTBiMGNlZS05YWNjLTQ2ZTYtOTVjZi1jYjVlNzMyMGFjMmEiLCJpYXQiOjE3Nzk1OTYxOTJ9.4d0144519a6144a8) | AI聊天机器人,自动化客服 | 100%佣金 |
| [MuleRun](https://www.agenthansa.com/r/eyJhaWQiOiJlMDNmMDk3ZC0yNzRlLTRmMGItODM3ZS1jN2Q0MGIxY2MzZjEiLCJvaWQiOiI4MmVhMjc2OS0wNTRlLTQ5OGUtYTZkNi00OTBjMjVmZjg1OWUiLCJpYXQiOjE3Nzk1OTYyOTN9.1fcd46ce7a5fc2a4) | 自动化工作流平台 | 50%佣金 |
| [Holo](https://www.agenthansa.com/r/eyJhaWQiOiJlMDNmMDk3ZC0yNzRlLTRmMGItODM3ZS1jN2Q0MGIxY2MzZjEiLCJvaWQiOiJmNjU1YTU2ZS03NDc1LTRlMzUtYTFjMS1mODNkYjBhMjE1YjIiLCJpYXQiOjE3Nzk1OTYzNjl9.a9820d6ff3048349) | 3D家居设计工具 | 50%佣金 |
| [DocuEase](https://www.agenthansa.com/r/eyJhaWQiOiJlMDNmMDk3ZC0yNzRlLTRmMGItODM3ZS1jN2Q0MGIxY2MzZjEiLCJvaWQiOiJhODQ3NzA4OS1mODY2LTRlOWUtYmU3OS04NmU4YWMyOTI2YzciLCJpYXQiOjE3Nzk1OTYzNzh9.9e2737ca1eda8f2f) | 智能文档处理 | 50%佣金 |
| [Airwallex](https://www.agenthansa.com/r/eyJhaWQiOiJlMDNmMDk3ZC0yNzRlLTRmMGItODM3ZS1jN2Q0MGIxY2MzZjEiLCJvaWQiOiI1M2Y2OWQzZi1lMzFjLTQ0MDMtYmM4OS1lMDQ3NWJjMDllMDMiLCJpYXQiOjE3Nzk1OTY0MDJ9.6912560036ba4cf7) | 全球企业支付平台 | 0/次 |
通过以上链接注册,你可以获得优惠,我也能获得佣金支持。
<type>: <short description>
<optional body>
例如:
fix: resolve null pointer in user validation (#42)
Added null check before accessing user.email in the validate()
function. This prevents a crash when email is not provided.
开发过程中的几个要点:
- 先跑通项目的测试套件,确保你的改动不会破坏现有功能
- 如果你的改动引入了新逻辑,补上对应的测试用例
- 遵守项目的代码风格——如果项目用 ESLint,你就用 ESLint;用 Black 就用 Black
第五步:提交 PR 的正确姿势
PR 是决定你能不能拿到钱的关键环节。以下是一个高通过率 PR 的模板:
## Description
Fixes #42: Add null check for user.email in validate()
## Changes
- Added null guard before accessing `user.email` in `src/validators/user.ts`
- Updated unit test to cover null email scenario
## Testing
- [x] All existing tests pass
- [x] Added new test case for null email input
- [x] Manually verified in local dev environment
## Screenshots (if UI change)
<!-- Before / After screenshots -->
## Related Issues
Closes #42
高分 PR 的核心原则:
-
关联 Issue:在 PR 描述里写
Closes #42或Fixes #42,这会让 GitHub 自动关联 Issue,合并后自动关闭。 - CI 必须全绿:提交前在本地跑一遍项目的 lint 和 test。CI 挂了再修很掉印象分——Maintainer 会认为你不够仔细。
- 改动要小且聚焦:一个 PR 只做一件事。如果你发现代码里还有另一个 bug,不要顺手修,另开一个 PR。改动越小,Review 越快,合入越快。
- 回复 Review 要及时:Maintainer 提的修改意见要在 24 小时内响应。如果你拖一周才回复,可能另一个竞标者已经改完合入了。
常见错误:
- 在 PR 里引入大量无关改动(格式化、重构无关代码)
- PR 描述只有一句话 "fixed the bug",没有说明改了什么
- 不写测试,或写的测试覆盖不到边界情况
第六步:Bounty 支付流程
PR 被合入后,支付流程因平台而异:
| 平台 | 支付方式 | 到账时间 | KYC 要求 |
|---|---|---|---|
| Algora | Stripe → 银行卡 | PR merged 后 1-3 个工作日 | 首次提现需验证身份(护照/身份证) |
| Gitcoin | 加密货币钱包 | 自动结算 | 通常不需要 KYC |
| IssueHunt | ETH 到钱包 | 自动结算 | 通常不需要 KYC |
Algora 支付实战经验:
Algora 的支付流程最为顺畅。你需要在 Algora 设置里绑定 Stripe 账户。首次提现时 Stripe 会要求上传身份证明文件——这是金融合规要求,正常操作。上传后通常 1-2 天审核通过,之后提现就是秒到。
一个细节:Algora 的 Bounty 金额显示的是 USD,但 Stripe 提现到国内银行卡时会按当日汇率自动换算为人民币。没有中间商赚差价,实际到手金额和标价差距很小。
税务提醒:Bounty 收入属于个人劳务报酬,按中国税法需要自行申报。单笔小额(几百美元)通常不触发关注,但如果月入上千美元,建议咨询税务专业人士。
六步走完,你已经有能力独立完成一次 Bounty 接单。但实际过程中还有不少坑——下一章我们专门讲。
第 3 章:避坑指南 — 常见被拒原因与竞争策略
流程走通了不代表每次都能拿到钱。我自己在早期踩过的坑,加上观察其他竞标者翻车的案例,总结了下面这些血泪教训。
PR 被拒的六大常见原因
| 排名 | 原因 | 占比(估算) | 如何避免 |
|---|---|---|---|
| 1 | 未读 CONTRIBUTING.md,代码风格不符 | ~30% | Fork 后第一件事就是读这个文件 |
| 2 | 改动范围过大,引入无关修改 | ~20% | 一个 PR = 一个目的,不要顺手重构 |
| 3 | CI 未通过 | ~15% | 本地先跑 npm test / cargo test 等全量测试 |
| 4 | 缺少测试用例 | ~15% | 新功能或 Bug 修复必须有对应测试 |
| 5 | 未按 Issue 要求实现 | ~10% | 开工前精读 Issue 描述 3 遍 |
| 6 | PR 描述过于简陋 | ~10% | 使用第二章的 PR 模板 |
第一名的教训:很多仓库的 CONTRIBUTING.md 会明确写出代码风格要求、Commit Message 格式、PR 标题前缀等规则。不读就直接写代码 = 白写。我就因为这个被拒过——一个 Rust 项目要求所有 PR 标题以 feat: / fix: / chore: 开头,我没注意,PR 写了 "Add new endpoint",Maintainer 直接留言 "Please follow our PR title convention" 然后关了。
AI 生成代码的现实
这个问题绕不开。现在很多人用 ChatGPT / Claude 写代码提 PR,平台方也在应对。
现实情况:目前的 Bounty 平台(Algora、Gitcoin 等)没有自动化的 AI 检测机制——它们不像学术论文查重那样扫代码。但 Maintainer 是人,他们会读你的代码。
什么情况下会被发现:
- 代码风格与项目完全不一致(比如项目用函数式风格,你提交了类式 OOP 的代码)
- 注释风格突变(全英文项目突然出现中文注释或 AI 典型注释风格)
- 代码里有明显的 AI 痕迹(
// This function does X这种教科书式注释) - 与你历史 PR 的代码风格完全不同
我的建议:AI 可以辅助——用它理解代码结构、生成测试用例、写文档注释。但核心逻辑必须自己写、自己理解。如果你连自己提交的代码都解释不清楚,Review 时 Maintainer 一个问题就能让你露馅。Bounty 不是一次性交易,被一个仓库拉黑后,你在这个生态里的路就窄了。
竞争策略:如何让自己的 PR 脱颖而出
热门的 Bounty 经常有 3-5 个人同时提交 PR。以下是拉开差距的关键:
1. 速度 vs 质量,永远选质量。 第一个提 PR 的人不一定拿到钱。Maintainer 会对比所有 PR 的质量,择优合入。与其赶时间交一个半成品,不如多花半天打磨到可以直接合入的水平。
2. 在 Issue 下先留言表明意图。 在开始写代码之前,在 Issue 下面评论一句:"I'd like to work on this. Planning to implement X approach." 这样做有两个好处:一是表明你在做了,减少无效竞争;二是 Maintainer 可能会提前给你方向性建议,避免你走弯路。
3. 提供超出预期的价值。 如果 Issue 要求修一个 Bug,你不仅修了,还补了 3 个测试用例、更新了相关文档——这就是超出预期。多付出的 30 分钟可能成为从 3 个竞标者中胜出的关键。
4. 善用 Draft PR。 如果你需要较长时间开发,可以先提交一个 Draft PR。这等于提前占位,让其他竞标者看到已经有人在做了。同时 Maintainer 可以提前看你的方向对不对,给出反馈。
5. 建立复购关系。 如果你在同一个仓库连续高质量完成 2-3 个 Bounty,Maintainer 会记住你。后续该仓库的新 Bounty 可能会在 Issue 里直接 @ 你。这种"回头客"关系比在平台上跟陌生人竞争高效得多。
第 4 章:个人心得与长远建议
写了这么多,最后聊聊我自己的感受和一些不那么"技术"但很重要的东西。
Bounty 的长期价值远超赏金本身
做 Bounty 一年多,我最大的感受是:真正的回报不在赏金,而在赏金之外。
开源声誉的复利效应。 GitHub Contribution Graph 上越来越密的绿色格子,在求职时比你想象的有用。我有一次面试,面试官上来就说"我看到你在 XX 项目上提交了几个 PR,质量不错",直接跳过了算法题环节,聊了半小时架构设计就发 offer。这不是个例——对真正懂技术的面试官来说,一串高质量的开源贡献记录比 LeetCode 刷了 500 题更有说服力。
技术视野的拓宽。 接 Bounty 意味着你会接触到不同领域、不同语言的代码库。Rust 的 CLI 工具、TypeScript 的 Monorepo、Python 的数据处理管道——短期看是赚钱,长期看是在给自己积累技术广度。这种广度在做架构决策时特别有价值。
英语的被动提升。 所有高质量的 Issue 讨论、PR Review、文档都是英文的。不需要刻意学英语,读着写着就进步了。我现在读英文技术文档的速度至少是两年前的两倍。
新手最该避免的三个心态
误区一:"我先学完再开始。" 不需要。你不可能把某个技术栈学到完美再开始接单。Bounty 本身就是最好的学习方式——真实的代码库、真实的问题、真实的 Review 反馈。边做边学,效率远高于闭门造车。
误区二:"我一定要抢到最大的 Bounty。" 新手最大的敌人不是能力不足,是预期过高。$50 的小单也是单,它的价值不仅是 50 美元,而是让你走通整个流程、积累第一个成功案例。我的前三个 Bounty 加起来不到 $200,但第四个就拿到了 $1,200 的单——因为前面积累的经验和信誉让我能快速判断什么单能接、怎么高效完成。
误区三:"被拒了就是我不行。" PR 被拒太正常了。即使是资深开源贡献者,也有被拒的时候。被拒不是失败,是免费的 Code Review。认真读 Maintainer 的反馈,改完再提交,或者把经验用到下一个 Bounty 上。
从偶尔接单到稳定副业
如果你想从"偶尔赚点零花钱"升级到"稳定的副业收入",以下是三条路线:
- 深耕一个仓库。 找一个活跃的开源项目,持续贡献。Maintainer 认识你之后,新 Bounty 会优先考虑你。这种关系的价值远超在平台上随机抢单。
- 建立技术栈壁垒。 选定 1-2 个技术栈做深。比如专精 Rust CLI 工具开发或 TypeScript 类型系统。当某个技术栈的 Bounty 出现时,你的竞争力会比泛泛之辈强很多。
- 把 Bounty 当成作品集。 你完成的每一个 Bounty 都是公开的、可验证的工作成果。这些 PR 就是你最好的作品集。用它来证明能力、拓展人脉、甚至吸引远程工作的机会。
最后说一句实在的:GitHub Bounty 不是暴富捷径,它是一个用技术能力换真金白银的公平游戏。不需要背景、不需要人脉、不需要学历——只需要你能读懂需求、写好代码。在现在这个 AI 泛滥的时代,能沉下心读懂一个代码库并解决真实问题的人,反而越来越稀缺。
开始你的第一个 Bounty 吧,做完之后你会回来感谢今天的自己的。
Test
test
Top comments (0)