27天 我开了65个PR

最近一个月 我开始疯狂进攻开源社区
主要是我不是计科或者相关专业的
或许想给简历添一点金
但是可能聊胜于无吧
给佬看过程:
GitHub PR(65 个)

Open(45个)

仓库 编号 创建日期 标题
mozilla/sccache #2889 2026-10-09 gcs: support external account credentials without explicit format
tikv/tikv #20176 2026-10-09 copr: return NULL for overflowing compound interval
google/autofdo #270 2026-10-09 symbolize: fix legacy DWARF 5 reader for clang
google/leveldb #1368 2026-10-08 Handle short reads in PosixRandomAccessFile::Read
nodejs/node #66582 2026-10-08 src: allow --env-file and --env-file-if-exist
QwikDev/qwik #9180 2026-10-07 fix(core): treat failed handler-chunk imports
react/react #37764 2026-10-06 [compiler] Fix ref access false positive
cloudflare/quiche #2804 2026-10-06 stream: keep a pending FIN schedulable after DATA ack
google/gnostic #484 2026-10-06 fix: preserve numeric formats for 64-bit OpenAPI
serde-rs/serde #3108 2026-10-06 Stream single flattened map values
nushell/nushell #19163 2026-10-05 Preserve background and frozen jobs
ansible/ansible #87638 2026-10-05 Reset lazy marker handling in evaluate_expression
hyperium/hyper #4222 2026-10-05 fix(http1): drain client dispatch receiver
feathersjs/feathers #3710 2026-10-05 fix(generators): add targeted pnpm build approach
vim/vim #21444 2026-10-04 Message pager drops blank separators
oven-sh/bun #44543 2026-10-03 fix(test): avoid writing snapshots in CI
react/react #37738 2026-10-02 Fix transition type isolation across lanes
flutter/flutter #193710 2026-10-02 Fix stale semantics parents when reparenting
nginx/nginx #1822 2026-10-02 Upstream: preserve cache extensions
nginx/nginx-tests #131 2026-10-02 Tests: cache-control extensions
NVlabs/SoL-Pi #93 2026-10-01 fix(online-context-compact): handle array-valued
kubernetes/kubernetes #142583 2026-10-01 Use public field paths in kube-proxy config
prisma/orm #30556 2026-10-01 fix(debug): avoid retaining query objects
sveltejs/kit #17266 2026-09-30 fix: replay cached query redirects
flutter/flutter #193567 2026-09-30 Allow AnimationController to silence unobserved
oven-sh/bun #44239 2026-09-29 DevServer: dim node_modules frames
supabase/auth #2843 2026-09-29 fix: accept code for PKCE token exchange
supabase/auth #2842 2026-09-29 test: cover admin user creation ban persistence
vuejs/core #15694 2026-09-28 fix(runtime-core): fully diff vnodes
denoland/deno #36914 2026-09-27 fix(repl): keep reading incomplete input
honojs/hono #5438 2026-09-24 fix(jwt): reject non-JWK objects
actix/actix-web #4243 2026-09-14 fix(web): expose AppConfig constructor
tokio-rs/axum #3892 2026-09-14 Accept generic request bodies in middleware
react/react #37626 2026-09-14 [DOM] Keep Fragment sibling positions stable
anomalyco/opentui #1499 2026-09-14 fix(scrollbox): wire scrollbar option callback
webpy/webpy #832 2026-09-13 fix: import debugerror
cloudwego/hertz #1548 2026-09-13 fix(client): prevent crashes when closing
sveltejs/kit #17100 2026-09-13 fix: honor RequestInit overrides in server fetch
sparckles/Robyn #1443 2026-09-13 fix: decode query and path parameters
sveltejs/svelte #18820 2026-09-13 fix: allow overriding non-configurable props
continuedev/continue #13272 2026-09-13 fix(vscode): respect disabled automatic inline
NVlabs/SoL-Pi #23 2026-09-12 fix: report Action Fusion reachability
actix/actix-web #4238 2026-09-12 fix(files): apply path_filter to directory listing
cline/cline #14087 2026-09-12 fix: restore plan-mode banner contrast
NVIDIA/container-canary #106 2026-09-12 Preserve manifest apiVersion and kind
awslabs/dynein #292 2026-09-12 feat: accept human-readable retry backoff
intel/rohd-bridge #69 2026-09-12 Add hierarchyTree to pretty-print module hierarchy

Closed(20 个)

仓库 编号 创建日期 状态
tikv/tikv #20175 2026-10-09 closed(被 #20176 替代)
ansible/ansible #87643 2026-10-06 closed(ansibot 自动关)
tokio-rs/mio #2020 2026-10-05 closed(维护者拒审 AI PR)
python/cpython #158641 2026-10-03 closed(维护者关闭)
vercel/next.js #99570 2026-10-02 closed
QwikDev/qwik #9109 2026-10-01 closed(已合并)
typescript-eslint #12939 2026-09-28 closed
angular/angular #70920 2026-09-24 closed(维护者 “AI Slop.”)
QwikDev/qwik #9010 2026-09-14 closed(已合并)
sveltejs/kit #17107 2026-09-14 closed
feathersjs/feathers #3705 2026-09-14 closed(已合并)
sveltejs/kit #17106 2026-09-14 closed
sveltejs/kit #17105 2026-09-13 closed
sveltejs/kit #17104 2026-09-13 closed
pallets/quart #477 2026-09-13 closed([rejected AI])
tokio-rs/axum #3890 2026-09-12 closed
misskey-dev/misskey #17941 2026-09-12 closed(已合并)
cli/go-gh #296 2026-09-12 closed

Bugzilla / Phabricator(3 个 revision)

Revision Bug 状态
D329756 Bug 2044440 已合并,随 Firefox 159 发布
D330328 Bug 2076851 Needs Review(hsohaney 那边等着)
D331269 Bug 2057913 被 emilio 打回,确认为 Bug 2066084 的重复

一共花费27天左右
原本很早就想写了
但是一直没时间
现在在微调模型 有时间写写
就写一点点经验

27天干这么多 肯定是难以手写的
所以肯定要借助AI的帮助
我的主力模型是Astra-xhigh 靠的是3个plus订阅
pr文案是Gemini-3-8-flash-high写的

为了方便佬们也能快速做出贡献,我整理了以下几点
注意点:
1,有严格AI政策的建议不要碰 例如caddy 虽然我们是靠ai写pr 修代码 但是基本的素养还是要有的 不能搞一些ai slop 很多开源项目不接受ai代码 或者不接受ai撰写文案
2,有一些项目只是要求AI披露 可以和我一样在github主页的readme中披露“英文不是我的母语,所以我会使用ai润色英语”
3,还有一些项目没有任何ai政策 这种时候就无所谓了 但是还是不要太过分哈
4,有一些项目有 good first issues 标签 这个时候需要查看是否不允许使用ai 因为很多这种标签是拿给新人练手的 不是用来交给ai的
5,不要反复只盯着good first issues 这种容易被直接关闭pr 因为显得你专门抓这种
6,一段时间像我一样疯狂fork项目的话 给某些项目提交pr时 会直接被关闭pr(因为疑似自动化)或者打上疑似标签
7,要仔细检查issues到底被修复没有或者有没有关联的pr 有些issues虽然还是open 但是其实已经在分支中修复了 还有一些issues虽然没被修复 也没有关联pr 但是其实已经有pr修复了 只是没关联而已
8,issues很多时候需要认领 就是发一句话 说明你想做 然后提交修复就好了 别人已经认领的 其实不建议去截胡
9,有些项目需要白名单 例如stepfun的codeing harness 我把fix commit都准备好快半个月了 现在还不让我提交pr
10,还有一些项目需要签署CLA 貌似是什么文件来着 我倒是不care 但是大家知道就好
11,类似于firefox这样的不在github的项目 提交流程也不同(插个嘴 我给firefox的补丁已经合并了 10.27开始全世界用firefox的用户浏览器里都有我写的代码)
12,要用好模型。我试了Astra 目前体感最好 就是容易写巨多测试 opus5.5的话 不敢恭维
13,暂时没想到了 后面想起来了继续补充

祝各位佬也能为开源社区做贡献
但是不要用ai疯狂提交垃圾pr哦

再插一句:目前看来Astra在大部分人的情况下都够用了 但是在非常复杂的代码仓库中 还是难堪重任 比如 firefox的Layout模块
几乎是完全不着调

已经合并的:
mozilla/D329756 — Bug 2044440: Suppress accessibility click checks when cancelling drag start

15 Likes

没有合了的么?

15 Likes

这两个放一起我有些迷糊了。其他专业这样做能算添金吗?

陷入了简历焦虑了啊,感觉你可以搞一些真开源项目,拿出来在论坛里曝光一下攒攒star嘛XD

2 Likes

可以的佬,这样也不错,能增加经验

佬不觉得这样有点消耗项目维护者的精力吗?

比如这个 PR angular/angular/pull/70920

仓库内有 PULL_REQUEST_TEMPLATE 但 pr 正文跟 pr 模板有很大出入

这句话你应该多跟自己说

python/cpython/pull/158641 cpython 这种大项目,不应该开 issue 然后讨论再提交 pr 吗

12 Likes

你这是在对开源项目展开大规模 ddos (洪水攻击)。
开源项目里,特别是真实人类维护的大项目 (100% vibe 的项目就无所谓了),最稀缺的永远是维护者的精力,而不是 token。pr 合并对项目并不是免费的,你做完改动,后面维护的都是他们。

负责任的维护者不可能就直接合并你写的 pr (除非他们跟你很熟),谁知道你里面有没有塞毒,供应链攻击? 你让 AI 写出来的代码干净吗? 优雅吗? 可维护性强吗? 会影响到 roadmap 未来的计划吗? 维护者是一定得看的,特别是大项目,维护者要保证自己对项目代码的掌控,一定得读你用 AI 写的代码。然后现在一堆人拿 AI 去轰炸这些项目……

用 AI 去抢 good first issue 更是其中的佼佼者。这种 issue 是专门选出来让新的项目贡献者学习的,因为成为维护者太难了,所以他们单独挑简单的任务出来鼓励新人一步步学习。你现在拿 AI 全部清理掉…

是觉得开源维护者缺这点 token 吗? 他们自己让 AI 写可能还更省事,更符合项目需求,而且比你一个外人更值得信任。

倒不是说你不能用 AI 写 pr,但如果你的目的就是为了名气,为了写简历,去大规模轰炸,连自己开的 pr 都不看,没验证过,就全部让 AI 做完,然后顺手还发个帖让大伙跟你一起轰炸,我不好说。

像佬友这样的人越来越多,开源项目可能会逐步禁止 AI 贡献,在我看来,大量开 AI 生成的 pr,如果连自己验证过,测试过,检查过都没有,你给开源的伤害是大于贡献的。
这大概也是给那些不做 AI 规范的大项目上一课吧。

Nadia Eghbal 写的 the making and maintenance of open source software 里面就提过,大部分热门项目的核心人员 (bus factor) 也就是 2-3,等他们精疲力尽了,项目就死了。具体数字我记不得了,但绝大部分热门项目的维护者在 AI 之前就已经很 burn out 了。

维护者多的大项目可能扛得住,对小项目来说,你就是在攻击他们,直到他们认清现实并反击,或是扛不住了,开摆,不再继续维护项目。

如果你一定要这么干,用 opus 5.5 以上的模型吧… 我不知道你有没有意识到,但 astra 会在代码里埋雷的。很多时候可维护性极差,还会做很多莫名其妙的 trade off。


补充: 其实看到这整个状况我是比较难受的。我之前去参加 PyCon 2026 的一个 maintainer summit 的时候,如何处理 AI pr 洪水就已经是个很重要的话题了,而且很难说讨论出了什么有价值的解决方案。
好多开源项目直接禁止了 AI 贡献,Codeberg 直接禁止了整个平台上任何项目用 AI 贡献代码。
我认为 AI 开发是很好的东西,我不认为人类写的代码和 AI 写的代码应该被区别对待。而且人类 + AI 很多时候能产出更好的 pr,解决更复杂的问题。理想情况下,我们判断贡献,应该基于成果本身,而不是关注这代码是谁写的。

但这样的 AI 洪水攻击,客观上来说,在支持 AI 的反对者。维护者在这样的过渡时期,可能需要透过禁止 AI 贡献来保证项目的存活。在代码审查/决策审查成本远高于产生代码的时代,在一个 AI coding 还没有完美到能无脑合并 pr 的时代,这个时代的开源维护者注定要面对这个问题。

只是看到有人在教别人成为问题本身,去伤害开源维护者,终究会有点难受,尽管这个问题比这个帖子要大得多,也要广泛得多。

21 Likes

致敬openai前几天的数学核弹雨

:distorted_face:

4 Likes

似乎把这句话作为标题更加合适?

很多时候开源社区接收贡献,但贡献一定要是贡献而不是给项目维护者的负担

看了一下佬的若干pr,很难说是正面的pr

6 Likes

客观来讲有点过分了 pr spammer了

1 Like

然后其他的话,建议佬是从零开始写或者去二开一个项目,感受一下写项目(允许AI)是什么感受,对于简历肯定也是比刷pr有用的多

如果佬的项目能有很多人贡献并被过去的你刷pr,或许佬就可以知到为啥拒绝此类pr的原因了 :face_blowing_a_kiss: