🚧 Main Branch: The One Where GitHub Sets Boundaries - Issue #36
嗨,朋友们,
这段时间发布的三件事,都指向同一个理念:掌控默认设置。GitHub 让组织能够限制开放 PR 的数量,让安全团队能够在无需手动编辑每个 repo 的情况下标准化代码扫描,还让 OAuth 应用通过 redirect URI 和 token 刷新拥有更多腾挪空间。没有哪一项很炫。却都能替某个人省下一个周五下午。
🚢 已发布内容
现在,你可以限制没有写入权限的贡献者同时能打开多少个 pull request;只需在组织级别设置一次,不必逐个 repo 设置。它位于组织的 Settings → Moderation options → Interaction limits 下。如果你大规模维护 open source,又厌倦了垃圾 PR 在数十个 repo 中吞噬审查时间,这会很有用。
Code scanning 的默认设置现在可通过新的 github-codeql-config-file repository property 接受你自己的 CodeQL 配置文件,因此你可以让组织中的每个 repo 都指向一份共享配置,而不是一次次点开各个 repo 的设置。它现在已在 github.com 上线,GitHub Enterprise Server 支持将在 3.23 版本推出。如果默认设置对你们安全团队的需求来说过于通用,这就是解决办法。
OAuth apps 支持多个 redirect URI 和 token 刷新
OAuth apps 现在最多可以注册十个 redirect URI,而不再只有一个;每个 URI 都可单独配置 wildcard matching,并且可通过 offline_access scope 选择使用短期 access token 加上有效期六个月的 refresh token。值得检查一下你自己的 app:如果你过去只有一个 redirect URI,wildcard matching 会作为遗留行为默认开启;现在它已变得可见,而且你可以关闭它。
📖 我正在读什么
watermarks-remover,作者 Guillaume Meyer(他在 X 上的看法)
我读 Guillaume 的 README 时,本来以为会看到一个工具的推介,结果读到了更接近一篇文章的东西。他构建了一项 agent skill,用来移除自己内容中的 AI 来源标记;而其中最有意思的是他关于移除实际代价的部分:为了绕过统计水印而重写文本,会损害文字质量。他对此直言不讳,甚至问道,为什么要为 premium model 付费,只为了之后再把它的输出交给一个更便宜的模型处理。读起来像是一个在发布前认真思考过取舍的人,而不是在兜售魔法橡皮擦的人。
Anthropic 本月推出的 watermarking,正是我一直想着那一段的原因。Claude 生成的文本现在默认带有不可见水印,而 Anthropic 的文档也承认,这个标记证明的是处理过程,不是作者身份:因为有人可以用 Claude 翻译、编辑或总结自己的作品,结果仍然会带上这个标记。我每周都会用 Claude 把这份 newsletter 的开头翻译成简体中文,然后再通过 Beehiiv MCP server 发布,同样也是通过 Claude。按照这套逻辑,我自己的文字会沾上一面不该有的旗子。这正是我喜欢 open source 的地方:Guillaume 看到了这个缺口,便构建了一个工具,而不是只停留在争论上。
如果你曾想过“AI detection”实际衡量的是什么,或者你维护的内容 pipeline 会接触 AI 生成的草稿,那么这值得你花时间看看。
🔧 我正在用什么
维护 Team X-Ray 让我吃了苦头才明白:除非你明确告诉 agents,否则它们不会读你的 docs。我已经改用有作用域、按目录放置的 AGENTS.md 文件,而不是只放一个 README;这样,像“这个 component 需要 Storybook test”这样的规则,就放在它所约束的代码旁边,而不是放在三层文件夹之上、agent 在选择工具前根本找不到的地方。
Nicholas Tindle 在维护 AutoGPT 时也得出了同样的结论:180,000 stars、150 个开放 PR,其中很大一部分由 agents 编写。本月早些时候,我在 GitHub Blog 写过他是如何处理这件事的。简而言之:放置位置和说明本身一样重要。
✨ 本周
这周我从 RenderATL 回到家,说实话,我怎么夸这场 conference 都不够。OpenJS Foundation 在那里举办了 Node.js Interactive track,其中包括一场 Code and Learn session;大家在 Node.js core team 成员 Matteo Collina (@matteocollina)、James Snell (@jasnell)、Claudio Wunder (@wunderacle) 和 Ethan Arrowood (@arrowood.dev) 的指导下,向项目提交了自己人生中的第一个 PR。我做了一场分享,也和 Node community 的老朋友们叙了旧——这正是我在 2019 年第一次演讲时称为科技界最友好社区之一的那个社区。我仍然热爱这个社区,也为自己能够支持这个 foundation 而感到自豪和感激。
感谢你的阅读, 下周见, Andrea
📌 P.S.
哥伦比亚咖啡产区仍在从 7.4 级地震中艰难恢复。已确认 281 人死亡,超过 12,000 栋房屋被毁。我的家人就在那里。
Asociación de Bancos de Alimentos 今天正在向 Pereira、Armenia 和 Manizales 运送食物:donahoy.abaco.org.co/colombia2026
如果你的公司有捐款配捐计划,这周就该用上它。大多数人从来没有用过自己的配捐额度。
💛 支持
Subscribe to Main Branch
Join developers shipping real features. Every issue is a three-minute read packed with fundamentals you can apply today.
No spam. Unsubscribe anytime.