<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: yjgxkkk</title>
    <description>The latest articles on DEV Community by yjgxkkk (@yjgxkkk).</description>
    <link>https://dev.to/yjgxkkk</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3948423%2F1c3e4468-87f2-49b6-9173-293a48d72620.png</url>
      <title>DEV Community: yjgxkkk</title>
      <link>https://dev.to/yjgxkkk</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/yjgxkkk"/>
    <language>en</language>
    <item>
      <title>GitHub Bounty 赏金接单全攻略：从0到第一桶金</title>
      <dc:creator>yjgxkkk</dc:creator>
      <pubDate>Sun, 24 May 2026 02:22:13 +0000</pubDate>
      <link>https://dev.to/yjgxkkk/github-bounty-shang-jin-jie-dan-quan-gong-lue-cong-0dao-di-tong-jin-1h3h</link>
      <guid>https://dev.to/yjgxkkk/github-bounty-shang-jin-jie-dan-quan-gong-lue-cong-0dao-di-tong-jin-1h3h</guid>
      <description>&lt;h1&gt;
  
  
  GitHub 赏金接单全攻略：从注册到提交 PR 的完整流程
&lt;/h1&gt;

&lt;blockquote&gt;
&lt;p&gt;📅 生成日期：2026-05-23&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  第 1 章：GitHub Bounty 是什么，为什么值得做
&lt;/h1&gt;

&lt;p&gt;如果你在程序员圈子里混过，"接私活"这个词一定不陌生。传统私活通常意味着：在某个外包平台跟几十个人竞标、加微信谈需求、被甲方反复改需求、最后可能还被拖欠尾款。而 GitHub Bounty 走的是一条完全不同的路——你不需要跟任何人社交，不需要写标书，只需要读懂代码、写好代码、提一个漂亮的 PR，钱就可能到你账上。&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub Bounty 到底是什么？
&lt;/h2&gt;

&lt;p&gt;简单说，GitHub Bounty 就是开源项目维护者（或第三方平台）在某个 Issue 上挂一笔赏金，谁先提交符合要求的 Pull Request 并被合入，谁就拿走这笔钱。&lt;/p&gt;

&lt;p&gt;它本质上是一种"众包开发"模式：项目方把需求写清楚，开发者自己评估能否做、值不值得做，做完提交，审核通过即结算。整个过程发生在 GitHub 上，你唯一需要打交道的就是代码和 PR 评论——没有甲方半夜发 60 秒语音方阵。&lt;/p&gt;

&lt;h2&gt;
  
  
  主流平台与真实金额
&lt;/h2&gt;

&lt;p&gt;目前活跃的 Bounty 平台主要有这几家：&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;平台&lt;/th&gt;
&lt;th&gt;典型金额范围&lt;/th&gt;
&lt;th&gt;支付方式&lt;/th&gt;
&lt;th&gt;特点&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Algora&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$20 - $5,000&lt;/td&gt;
&lt;td&gt;法币（Stripe）&lt;/td&gt;
&lt;td&gt;目前最活跃的通用平台，对开发者 0% 手续费&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Gitcoin&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$500 - $60,000+&lt;/td&gt;
&lt;td&gt;加密货币&lt;/td&gt;
&lt;td&gt;Web3 生态为主，金额大但门槛高&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IssueHunt&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$20 - $200&lt;/td&gt;
&lt;td&gt;加密货币&lt;/td&gt;
&lt;td&gt;老牌平台，适合小修小补练手&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;BountySource&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$50 - $2,000&lt;/td&gt;
&lt;td&gt;法币/加密货币&lt;/td&gt;
&lt;td&gt;最早期的平台之一，项目覆盖面广&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;OSS Capital 的 Bounty&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$1,000 - $10,000+&lt;/td&gt;
&lt;td&gt;法币&lt;/td&gt;
&lt;td&gt;少数精选高额 Bounty，竞争激烈&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;重点推荐 Algora&lt;/strong&gt;。理由很简单：支付走 Stripe，直接到银行卡，不需要搞钱包、不用 KYC 繁琐流程，对国内开发者最友好。而且它在 2024-2025 年活跃度非常高，每天都有新 Bounty 上线。&lt;/p&gt;

&lt;p&gt;关于金额，不要被 Gitcoin 上那些 $60,000 的 bounty 吓到——那是极端案例。绝大多数 bounty 落在 $50-$500 区间。我见过有人在 Algora 上花一个周末搞定一个 TypeScript 类型修复的 bounty，拿 $150；也见过有人花两周做一个完整功能模块，拿 $3,000。关键在于你挑什么难度的活、你的技术栈匹不匹配。&lt;/p&gt;

&lt;h2&gt;
  
  
  为什么值得做？
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;第一，门槛极低。&lt;/strong&gt; 不需要简历、不需要面试、不需要任何资质证明。GitHub Profile 就是你的名片，你的代码就是你的简历。只要你有一个像样的 GitHub 账号和能跑通的开发环境，就可以开始。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;第二，回报直接。&lt;/strong&gt; 做完 = 交 PR = 审核通过 = 钱到账。中间没有商务谈判、没有合同纠纷、没有催款环节。PR merged 的那一刻，钱就自动进入结算流程。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;第三，积累开源声誉。&lt;/strong&gt; 你提交的每一个 PR 都是公开的，永久留在 GitHub 上。这意味着你在赚钱的同时，也在给自己的 GitHub 贡献记录添砖加瓦。一份漂亮的 Contribution Graph 在求职时比简历上写"熟悉开源协作"有力一百倍。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;第四，倒逼技术成长。&lt;/strong&gt; Bounty 不是玩具项目——你面对的是真实生产环境的代码库，有严格的 CI 检查、Code Review 和代码规范要求。为了过审，你必须写出高质量、可维护的代码。这对技术水平的提升比刷 LeetCode 快得多。&lt;/p&gt;

&lt;h2&gt;
  
  
  什么样的人适合做？
&lt;/h2&gt;

&lt;p&gt;如果你满足以下条件中的 2-3 条，就可以试试：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;有至少一门编程语言的熟练使用经验&lt;/li&gt;
&lt;li&gt;用过 Git，知道 branch / commit / rebase 的基本操作&lt;/li&gt;
&lt;li&gt;读过开源项目的源码，能理解别人的代码结构&lt;/li&gt;
&lt;li&gt;英语阅读能力过关（大部分 Issue 和 PR 讨论都是英文）&lt;/li&gt;
&lt;li&gt;每周能挤出 5-10 小时的自由时间&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;不需要是全栈大神。很多 $50-$200 的 bounty 就是修个 bug、加个小功能、写几行配置。你完全可以从这种小单开始积累经验和信心。&lt;/p&gt;

&lt;p&gt;以我自己为例，第一单是个 $75 的 Python CLI 工具小修复，代码改动不到 30 行，但过程中学到了那个项目的 PR 模板规范、CI 流水线怎么跑、maintainer 的 Review 风格。这些经验在后面的单子里全用上了。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;如果你的 GitHub Profile 还是一片空白，下一步我们就从这个开始。&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  第 2 章：从注册到提 PR 的六步完整流程
&lt;/h1&gt;

&lt;p&gt;搞清楚了 Bounty 是什么，接下来就是实操。这一章会按顺序走完六个步骤，每一步我都会给出具体命令和最容易踩的坑。&lt;/p&gt;

&lt;h2&gt;
  
  
  第一步：注册 GitHub 并完善 Profile
&lt;/h2&gt;

&lt;p&gt;如果你已经有一个 GitHub 账号，不要直接跳过这步——Profile 是 Maintainer 对你的第一印象，直接影响你的 PR 会不会被认真对待。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Profile 的核心要素：&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;头像&lt;/strong&gt;：用一张清晰的照片或专业头像。不要用默认的像素小人。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Bio&lt;/strong&gt;：一句话说清楚你做什么技术栈。例如："Full-stack dev, TypeScript &amp;amp; Rust enthusiast. Open source contributor." 不需要太长，但要让人一眼知道你能干什么。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pinned Repositories&lt;/strong&gt;：把你最好的 6 个仓库置顶。如果没有拿得出手的项目，花一个周末做一个高质量的 Demo 项目放上去。哪怕是 Stars 数为零，代码质量和 README 写得好也能加分。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Contribution Graph&lt;/strong&gt;：如果有历史贡献记录，绿色的格子本身就是最好的名片。如果一片空白，从今天开始做贡献。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;最容易忽视的点&lt;/strong&gt;：README 里的个人项目 README。在 GitHub 上创建一个与你用户名同名的仓库，里面的 README.md 会渲染在你的 Profile 页面顶部。这是你的个人广告位——放技术栈标签、联系方式、最近在做的事。&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 示例：创建一个 Profile README&lt;/span&gt;
&lt;span class="nb"&gt;mkdir &lt;/span&gt;biebiebie  &lt;span class="c"&gt;# 替换为你的 GitHub 用户名&lt;/span&gt;
&lt;span class="nb"&gt;cd &lt;/span&gt;biebiebie
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"# Hi, I'm biebiebie 👋"&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; README.md
git init &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; git add &lt;span class="nb"&gt;.&lt;/span&gt; &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"init profile"&lt;/span&gt;
&lt;span class="c"&gt;# 在 GitHub 上创建同名仓库，push 上去&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  第二步：找到适合自己的 Bounty
&lt;/h2&gt;

&lt;p&gt;Bounty 不是越多越好，是越匹配越好。以下是高效的搜索策略：&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;平台搜索技巧：&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;在 Algora 上，使用标签（Label）过滤是最高效的方式。关注以下标签组合：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;good first issue&lt;/code&gt; + &lt;code&gt;bounty&lt;/code&gt;：新手友好型，适合练手&lt;/li&gt;
&lt;li&gt;你的技术栈标签：&lt;code&gt;python&lt;/code&gt; / &lt;code&gt;typescript&lt;/code&gt; / &lt;code&gt;rust&lt;/code&gt; / &lt;code&gt;react&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;bug&lt;/code&gt;：修 bug 通常比做新功能更容易过审&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;按难度筛选的实操标准：&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;难度&lt;/th&gt;
&lt;th&gt;金额参考&lt;/th&gt;
&lt;th&gt;特征判断&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;入门&lt;/td&gt;
&lt;td&gt;$50-$150&lt;/td&gt;
&lt;td&gt;Issue 描述详细、改动范围小、有明确的技术方案&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;中等&lt;/td&gt;
&lt;td&gt;$150-$500&lt;/td&gt;
&lt;td&gt;需要读懂部分模块代码、可能需要设计决策&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;困难&lt;/td&gt;
&lt;td&gt;$500-$3,000&lt;/td&gt;
&lt;td&gt;需要架构级别改动、跨模块影响、需要与 Maintainer 沟通方案&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;我的筛选铁律：&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Issue 描述模糊的一律跳过——"improve performance" 没有具体指标的不碰&lt;/li&gt;
&lt;li&gt;仓库最近 30 天有 commit 的才接——死仓库的 PR 没人合&lt;/li&gt;
&lt;li&gt;先看 CONTRIBUTING.md——如果仓库没有写清楚贡献规范，说明 Maintainer 可能不够专业&lt;/li&gt;
&lt;li&gt;同一 Issue 下已经有 PR 在 Review 的，除非你确定自己能做得更好，否则跳过&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  第三步：创建 Personal Access Token
&lt;/h2&gt;

&lt;p&gt;这一步很多人会问：为什么需要 Token？因为你需要用 &lt;code&gt;git&lt;/code&gt; 命令推送代码到 GitHub，而 GitHub 从 2021 年起不再支持密码认证，必须用 Token 或 SSH Key。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;创建步骤：&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;登录 GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)&lt;/li&gt;
&lt;li&gt;点击 "Generate new token (classic)"&lt;/li&gt;
&lt;li&gt;Note 填写 "bounty-work"（方便以后识别）&lt;/li&gt;
&lt;li&gt;勾选权限：&lt;code&gt;repo&lt;/code&gt;（完整仓库访问权限）、&lt;code&gt;workflow&lt;/code&gt;（如果需要触发 CI）&lt;/li&gt;
&lt;li&gt;设置过期时间：建议 90 天，不要选 "No expiration"&lt;/li&gt;
&lt;li&gt;生成后&lt;strong&gt;立即复制保存&lt;/strong&gt;——GitHub 只显示一次&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;安全注意事项：&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;不要把 Token 硬编码到代码里。&lt;/strong&gt; 每年都有人把 Token 提交到公共仓库，然后被 GitHub 自动扫描到并吊销。&lt;/li&gt;
&lt;li&gt;使用 Git Credential Manager 存储 Token，或者用环境变量：
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;  &lt;span class="c"&gt;# macOS / Linux&lt;/span&gt;
  git config &lt;span class="nt"&gt;--global&lt;/span&gt; credential.helper osxkeychain

  &lt;span class="c"&gt;# 首次 push 时输入 Token，之后自动记住&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;如果你用 SSH Key 替代 Token，更推荐——&lt;code&gt;ssh-keygen -t ed25519 -C "your_email@example.com"&lt;/code&gt;，把公钥添加到 GitHub SSH Keys。&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  第四步：Fork 仓库 + 本地开发
&lt;/h2&gt;

&lt;p&gt;标准 Git 工作流：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Fork 目标仓库（在 GitHub 网页上点击 Fork 按钮）&lt;/span&gt;

&lt;span class="c"&gt;# 2. Clone 你 Fork 的仓库&lt;/span&gt;
git clone https://github.com/YOUR_USERNAME/REPO_NAME.git
&lt;span class="nb"&gt;cd &lt;/span&gt;REPO_NAME

&lt;span class="c"&gt;# 3. 添加上游仓库（保持同步）&lt;/span&gt;
git remote add upstream https://github.com/ORIGINAL_OWNER/REPO_NAME.git

&lt;span class="c"&gt;# 4. 创建功能分支——务必从最新的 main 分支切出&lt;/span&gt;
git checkout main
git pull upstream main
git checkout &lt;span class="nt"&gt;-b&lt;/span&gt; fix/issue-42-description

&lt;span class="c"&gt;# 5. 开发 + 提交&lt;/span&gt;
git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"fix: resolve issue #42 - update validation logic"&lt;/span&gt;

&lt;span class="c"&gt;# 6. Push 到你的 Fork&lt;/span&gt;
git push origin fix/issue-42-description
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;分支命名规范&lt;/strong&gt;很重要。好的分支名让 Maintainer 一眼看懂：&lt;code&gt;fix/issue-42-null-check&lt;/code&gt;、&lt;code&gt;feat/add-pagination&lt;/code&gt;、&lt;code&gt;docs/update-api-reference&lt;/code&gt;。不要用 &lt;code&gt;my-fix&lt;/code&gt; 或 &lt;code&gt;test&lt;/code&gt; 这种没有信息量的名字。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Commit Message 规范&lt;/strong&gt;同样关键。推荐 Conventional Commits 格式：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;
---

## 推荐工具

以下是帮助开发者提升效率的实用工具：

| 工具 | 说明 | 佣金 |
|------|------|------|
| [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/次 |

通过以上链接注册，你可以获得优惠，我也能获得佣金支持。
&amp;lt;type&amp;gt;: &amp;lt;short description&amp;gt;

&amp;lt;optional body&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;例如：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;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.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;开发过程中的几个要点：&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;先跑通项目的测试套件，确保你的改动不会破坏现有功能&lt;/li&gt;
&lt;li&gt;如果你的改动引入了新逻辑，补上对应的测试用例&lt;/li&gt;
&lt;li&gt;遵守项目的代码风格——如果项目用 ESLint，你就用 ESLint；用 Black 就用 Black&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  第五步：提交 PR 的正确姿势
&lt;/h2&gt;

&lt;p&gt;PR 是决定你能不能拿到钱的关键环节。以下是一个高通过率 PR 的模板：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gu"&gt;## Description&lt;/span&gt;
Fixes #42: Add null check for user.email in validate()

&lt;span class="gu"&gt;## Changes&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Added null guard before accessing &lt;span class="sb"&gt;`user.email`&lt;/span&gt; in &lt;span class="sb"&gt;`src/validators/user.ts`&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Updated unit test to cover null email scenario

&lt;span class="gu"&gt;## Testing&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; [x] All existing tests pass
&lt;span class="p"&gt;-&lt;/span&gt; [x] Added new test case for null email input
&lt;span class="p"&gt;-&lt;/span&gt; [x] Manually verified in local dev environment

&lt;span class="gu"&gt;## Screenshots (if UI change)&lt;/span&gt;
&lt;span class="c"&gt;&amp;lt;!-- Before / After screenshots --&amp;gt;&lt;/span&gt;

&lt;span class="gu"&gt;## Related Issues&lt;/span&gt;
Closes #42
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;高分 PR 的核心原则：&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;关联 Issue&lt;/strong&gt;：在 PR 描述里写 &lt;code&gt;Closes #42&lt;/code&gt; 或 &lt;code&gt;Fixes #42&lt;/code&gt;，这会让 GitHub 自动关联 Issue，合并后自动关闭。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CI 必须全绿&lt;/strong&gt;：提交前在本地跑一遍项目的 lint 和 test。CI 挂了再修很掉印象分——Maintainer 会认为你不够仔细。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;改动要小且聚焦&lt;/strong&gt;：一个 PR 只做一件事。如果你发现代码里还有另一个 bug，不要顺手修，另开一个 PR。改动越小，Review 越快，合入越快。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;回复 Review 要及时&lt;/strong&gt;：Maintainer 提的修改意见要在 24 小时内响应。如果你拖一周才回复，可能另一个竞标者已经改完合入了。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;常见错误&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;在 PR 里引入大量无关改动（格式化、重构无关代码）&lt;/li&gt;
&lt;li&gt;PR 描述只有一句话 "fixed the bug"，没有说明改了什么&lt;/li&gt;
&lt;li&gt;不写测试，或写的测试覆盖不到边界情况&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  第六步：Bounty 支付流程
&lt;/h2&gt;

&lt;p&gt;PR 被合入后，支付流程因平台而异：&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;平台&lt;/th&gt;
&lt;th&gt;支付方式&lt;/th&gt;
&lt;th&gt;到账时间&lt;/th&gt;
&lt;th&gt;KYC 要求&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Algora&lt;/td&gt;
&lt;td&gt;Stripe → 银行卡&lt;/td&gt;
&lt;td&gt;PR merged 后 1-3 个工作日&lt;/td&gt;
&lt;td&gt;首次提现需验证身份（护照/身份证）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Gitcoin&lt;/td&gt;
&lt;td&gt;加密货币钱包&lt;/td&gt;
&lt;td&gt;自动结算&lt;/td&gt;
&lt;td&gt;通常不需要 KYC&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;IssueHunt&lt;/td&gt;
&lt;td&gt;ETH 到钱包&lt;/td&gt;
&lt;td&gt;自动结算&lt;/td&gt;
&lt;td&gt;通常不需要 KYC&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Algora 支付实战经验：&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Algora 的支付流程最为顺畅。你需要在 Algora 设置里绑定 Stripe 账户。首次提现时 Stripe 会要求上传身份证明文件——这是金融合规要求，正常操作。上传后通常 1-2 天审核通过，之后提现就是秒到。&lt;/p&gt;

&lt;p&gt;一个细节：Algora 的 Bounty 金额显示的是 USD，但 Stripe 提现到国内银行卡时会按当日汇率自动换算为人民币。没有中间商赚差价，实际到手金额和标价差距很小。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;税务提醒&lt;/strong&gt;：Bounty 收入属于个人劳务报酬，按中国税法需要自行申报。单笔小额（几百美元）通常不触发关注，但如果月入上千美元，建议咨询税务专业人士。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;六步走完，你已经有能力独立完成一次 Bounty 接单。但实际过程中还有不少坑——下一章我们专门讲。&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h1&gt;
  
  
  第 3 章：避坑指南 — 常见被拒原因与竞争策略
&lt;/h1&gt;

&lt;p&gt;流程走通了不代表每次都能拿到钱。我自己在早期踩过的坑，加上观察其他竞标者翻车的案例，总结了下面这些血泪教训。&lt;/p&gt;

&lt;h2&gt;
  
  
  PR 被拒的六大常见原因
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;排名&lt;/th&gt;
&lt;th&gt;原因&lt;/th&gt;
&lt;th&gt;占比（估算）&lt;/th&gt;
&lt;th&gt;如何避免&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1&lt;/td&gt;
&lt;td&gt;未读 CONTRIBUTING.md，代码风格不符&lt;/td&gt;
&lt;td&gt;~30%&lt;/td&gt;
&lt;td&gt;Fork 后第一件事就是读这个文件&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2&lt;/td&gt;
&lt;td&gt;改动范围过大，引入无关修改&lt;/td&gt;
&lt;td&gt;~20%&lt;/td&gt;
&lt;td&gt;一个 PR = 一个目的，不要顺手重构&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3&lt;/td&gt;
&lt;td&gt;CI 未通过&lt;/td&gt;
&lt;td&gt;~15%&lt;/td&gt;
&lt;td&gt;本地先跑 &lt;code&gt;npm test&lt;/code&gt; / &lt;code&gt;cargo test&lt;/code&gt; 等全量测试&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;4&lt;/td&gt;
&lt;td&gt;缺少测试用例&lt;/td&gt;
&lt;td&gt;~15%&lt;/td&gt;
&lt;td&gt;新功能或 Bug 修复必须有对应测试&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5&lt;/td&gt;
&lt;td&gt;未按 Issue 要求实现&lt;/td&gt;
&lt;td&gt;~10%&lt;/td&gt;
&lt;td&gt;开工前精读 Issue 描述 3 遍&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;6&lt;/td&gt;
&lt;td&gt;PR 描述过于简陋&lt;/td&gt;
&lt;td&gt;~10%&lt;/td&gt;
&lt;td&gt;使用第二章的 PR 模板&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;第一名的教训&lt;/strong&gt;：很多仓库的 CONTRIBUTING.md 会明确写出代码风格要求、Commit Message 格式、PR 标题前缀等规则。不读就直接写代码 = 白写。我就因为这个被拒过——一个 Rust 项目要求所有 PR 标题以 &lt;code&gt;feat:&lt;/code&gt; / &lt;code&gt;fix:&lt;/code&gt; / &lt;code&gt;chore:&lt;/code&gt; 开头，我没注意，PR 写了 "Add new endpoint"，Maintainer 直接留言 "Please follow our PR title convention" 然后关了。&lt;/p&gt;

&lt;h2&gt;
  
  
  AI 生成代码的现实
&lt;/h2&gt;

&lt;p&gt;这个问题绕不开。现在很多人用 ChatGPT / Claude 写代码提 PR，平台方也在应对。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;现实情况&lt;/strong&gt;：目前的 Bounty 平台（Algora、Gitcoin 等）没有自动化的 AI 检测机制——它们不像学术论文查重那样扫代码。但 Maintainer 是人，他们会读你的代码。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;什么情况下会被发现&lt;/strong&gt;：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;代码风格与项目完全不一致（比如项目用函数式风格，你提交了类式 OOP 的代码）&lt;/li&gt;
&lt;li&gt;注释风格突变（全英文项目突然出现中文注释或 AI 典型注释风格）&lt;/li&gt;
&lt;li&gt;代码里有明显的 AI 痕迹（&lt;code&gt;// This function does X&lt;/code&gt; 这种教科书式注释）&lt;/li&gt;
&lt;li&gt;与你历史 PR 的代码风格完全不同&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;我的建议&lt;/strong&gt;：AI 可以辅助——用它理解代码结构、生成测试用例、写文档注释。但核心逻辑必须自己写、自己理解。如果你连自己提交的代码都解释不清楚，Review 时 Maintainer 一个问题就能让你露馅。Bounty 不是一次性交易，被一个仓库拉黑后，你在这个生态里的路就窄了。&lt;/p&gt;

&lt;h2&gt;
  
  
  竞争策略：如何让自己的 PR 脱颖而出
&lt;/h2&gt;

&lt;p&gt;热门的 Bounty 经常有 3-5 个人同时提交 PR。以下是拉开差距的关键：&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;1. 速度 vs 质量，永远选质量。&lt;/strong&gt; 第一个提 PR 的人不一定拿到钱。Maintainer 会对比所有 PR 的质量，择优合入。与其赶时间交一个半成品，不如多花半天打磨到可以直接合入的水平。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. 在 Issue 下先留言表明意图。&lt;/strong&gt; 在开始写代码之前，在 Issue 下面评论一句："I'd like to work on this. Planning to implement X approach." 这样做有两个好处：一是表明你在做了，减少无效竞争；二是 Maintainer 可能会提前给你方向性建议，避免你走弯路。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. 提供超出预期的价值。&lt;/strong&gt; 如果 Issue 要求修一个 Bug，你不仅修了，还补了 3 个测试用例、更新了相关文档——这就是超出预期。多付出的 30 分钟可能成为从 3 个竞标者中胜出的关键。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. 善用 Draft PR。&lt;/strong&gt; 如果你需要较长时间开发，可以先提交一个 Draft PR。这等于提前占位，让其他竞标者看到已经有人在做了。同时 Maintainer 可以提前看你的方向对不对，给出反馈。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. 建立复购关系。&lt;/strong&gt; 如果你在同一个仓库连续高质量完成 2-3 个 Bounty，Maintainer 会记住你。后续该仓库的新 Bounty 可能会在 Issue 里直接 @ 你。这种"回头客"关系比在平台上跟陌生人竞争高效得多。&lt;/p&gt;




&lt;h1&gt;
  
  
  第 4 章：个人心得与长远建议
&lt;/h1&gt;

&lt;p&gt;写了这么多，最后聊聊我自己的感受和一些不那么"技术"但很重要的东西。&lt;/p&gt;

&lt;h2&gt;
  
  
  Bounty 的长期价值远超赏金本身
&lt;/h2&gt;

&lt;p&gt;做 Bounty 一年多，我最大的感受是：&lt;strong&gt;真正的回报不在赏金，而在赏金之外&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;开源声誉的复利效应。&lt;/strong&gt; GitHub Contribution Graph 上越来越密的绿色格子，在求职时比你想象的有用。我有一次面试，面试官上来就说"我看到你在 XX 项目上提交了几个 PR，质量不错"，直接跳过了算法题环节，聊了半小时架构设计就发 offer。这不是个例——对真正懂技术的面试官来说，一串高质量的开源贡献记录比 LeetCode 刷了 500 题更有说服力。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;技术视野的拓宽。&lt;/strong&gt; 接 Bounty 意味着你会接触到不同领域、不同语言的代码库。Rust 的 CLI 工具、TypeScript 的 Monorepo、Python 的数据处理管道——短期看是赚钱，长期看是在给自己积累技术广度。这种广度在做架构决策时特别有价值。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;英语的被动提升。&lt;/strong&gt; 所有高质量的 Issue 讨论、PR Review、文档都是英文的。不需要刻意学英语，读着写着就进步了。我现在读英文技术文档的速度至少是两年前的两倍。&lt;/p&gt;

&lt;h2&gt;
  
  
  新手最该避免的三个心态
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;误区一："我先学完再开始。"&lt;/strong&gt; 不需要。你不可能把某个技术栈学到完美再开始接单。Bounty 本身就是最好的学习方式——真实的代码库、真实的问题、真实的 Review 反馈。边做边学，效率远高于闭门造车。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;误区二："我一定要抢到最大的 Bounty。"&lt;/strong&gt; 新手最大的敌人不是能力不足，是预期过高。$50 的小单也是单，它的价值不仅是 50 美元，而是让你走通整个流程、积累第一个成功案例。我的前三个 Bounty 加起来不到 $200，但第四个就拿到了 $1,200 的单——因为前面积累的经验和信誉让我能快速判断什么单能接、怎么高效完成。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;误区三："被拒了就是我不行。"&lt;/strong&gt; PR 被拒太正常了。即使是资深开源贡献者，也有被拒的时候。被拒不是失败，是免费的 Code Review。认真读 Maintainer 的反馈，改完再提交，或者把经验用到下一个 Bounty 上。&lt;/p&gt;

&lt;h2&gt;
  
  
  从偶尔接单到稳定副业
&lt;/h2&gt;

&lt;p&gt;如果你想从"偶尔赚点零花钱"升级到"稳定的副业收入"，以下是三条路线：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;深耕一个仓库。&lt;/strong&gt; 找一个活跃的开源项目，持续贡献。Maintainer 认识你之后，新 Bounty 会优先考虑你。这种关系的价值远超在平台上随机抢单。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;建立技术栈壁垒。&lt;/strong&gt; 选定 1-2 个技术栈做深。比如专精 Rust CLI 工具开发或 TypeScript 类型系统。当某个技术栈的 Bounty 出现时，你的竞争力会比泛泛之辈强很多。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;把 Bounty 当成作品集。&lt;/strong&gt; 你完成的每一个 Bounty 都是公开的、可验证的工作成果。这些 PR 就是你最好的作品集。用它来证明能力、拓展人脉、甚至吸引远程工作的机会。&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;最后说一句实在的：GitHub Bounty 不是暴富捷径，它是一个用技术能力换真金白银的公平游戏。不需要背景、不需要人脉、不需要学历——只需要你能读懂需求、写好代码。在现在这个 AI 泛滥的时代，能沉下心读懂一个代码库并解决真实问题的人，反而越来越稀缺。&lt;/p&gt;

&lt;p&gt;开始你的第一个 Bounty 吧，做完之后你会回来感谢今天的自己的。&lt;/p&gt;

&lt;h2&gt;
  
  
  Test
&lt;/h2&gt;

&lt;p&gt;test&lt;/p&gt;

</description>
      <category>github</category>
      <category>bounty</category>
      <category>opensource</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
