没有不值得去解决的问题,也没有不值得去学习的技术!

ChatGPT 连接 GitHub 实测:让 AI 直接读取 go-tour-i18n 仓库参与译文审核

图 4:GitHub 与 ChatGPT 已成功连接

作者:

,

A Tour of Go 多语言翻译项目

图3:访问过去的 Go Tour 简体中文站 tour.go-zh.org 时,当前已经无法正常建立连接。

(1) 从「A Tour of Go 中文版」这个搜索词开始:我决定做一个持续维护的 Go Tour 中文版

本地运行的 A Tour of Go「Methods continued」课程页面,左侧为课程说明,右侧为 Go 代码编辑器及运行结果。

(2) A Tour of Go 中文版项目设计冻结:从 101 页到 103 页,从 Gin 转向 Cobra CLI

A Tour of Go 中文版开发实战:英文基线、在线运行与 101 页上游同步体系

(3) A Tour of Go 中文版开发实战:英文基线、在线运行与 101 页上游同步体系

go-tour-i18n 项目完成首个简体中文课程页面 welcome/1 的整页翻译、结构校验和本地预览。

(4) A Tour of Go 多语言翻译项目实录:完成首个 zh-CN 页面翻译闭环

图 1:DeepSeek 官方更新日志显示,本次只更新 DeepSeek-V4-Flash,DeepSeek-V4-Pro API 与 APP、Web 模型均未更新

(5) A Tour of Go 中文翻译项目进展:完成前 8 页、修复 present 语法,并暂缓 DeepSeek 对比

图 1:generics/1 简体中文页面本地预览

(6) 一个页面重试五次:使用 GLM-5.2 翻译 A Tour of Go 时遇到的 Token 与 Present 结构问题

图 1:methods/16 简体中文页面浏览器预览

(7) A Tour of Go 中文翻译实录:如何只翻译教学代码注释,而不破坏 Go 代码

图 2:A Tour of Go methods/20「练习:错误」中文候选页面最终渲染效果

(8) A Tour of Go 多语言翻译:当正确的中文语序被受保护标记顺序校验误判

图 3:methods/24 中文页面,静态代码、Bounds 行内代码和链接内的 image.Rectangle 均正确渲染

(9) A Tour of Go 中文翻译完成 7 个代表页校准:最后 3 页又发现了哪些真实问题

图 2:首批 10 个普通页面经过试跑与流程校准后全部进入 ready

(10) A Tour of Go 多语言翻译项目:首批 10 个普通页面试跑,从 2 个 blocked 到全部 ready

图 2:flowcontrol/6 最终中文页面,return 与 v 为适应自然中文语序发生整体换位

(11) A Tour of Go 中文翻译第二批实跑:从 Inline Code 顺序误判到历史响应重新验证

图 1:flowcontrol/6 首次原始输入实验直接通过统一自动校验

(12) A Tour of Go 多语言翻译项目:从 swap 问题重新审视 Token 保护,原始输入与最小保护的一次真实实验

图 7:moretypes/1 最终中文页面预览。左侧课程正文、静态代码块、行内代码和教学注释均正常渲染,右侧官方 Go 示例继续保持原样。

(13) A Tour of Go 多语言翻译实战:第三批 10 页全部 Ready,继续校准 Protected Token 的结构角色

图 4:上游源码确认共有 103 个课程页面,zh-CN 最终达到 ready=103、pending=0、blocked=0

(14) A Tour of Go 多语言翻译项目:zh-CN 103 个课程页面全部 ready,课程正文翻译阶段完成

图 4:GitHub 与 ChatGPT 已成功连接

(15) ChatGPT 连接 GitHub 实测:让 AI 直接读取 go-tour-i18n 仓库参与译文审核

最近我一直在推进 A Tour of Go 多语言翻译项目

项目仓库为 go-tour-i18n,第一阶段先完成简体中文 zh-CN。到目前为止,103 个正式发布页面的自动翻译和结构校验已经全部完成,接下来开始进入发布前的正文质量审核。

这一阶段,我原本还是按照之前的协作方式:

  • Codex 负责读取仓库、执行命令、修改代码和运行测试;
  • ChatGPT 负责分析方案、审核译文和判断是否需要调整;
  • 如果 ChatGPT 需要了解仓库中的实际内容,我再把 Codex 的输出复制到 ChatGPT。

这种方式能够正常工作,但当审核范围从几个代表页面扩大到 103 个完整课程页面之后,一个问题越来越明显:

如果 ChatGPT 本身不能直接读取 GitHub 仓库,那么大量时间都会花在我手工转发 Codex 输出上。

刚好在这次审核过程中,我发现当前使用的 ChatGPT 已经可以直接连接 GitHub。

于是我决定先暂停正文审核,试着把 GitHub 接进来。

一、为什么这时候才想到连接 GitHub

之前开发 go-tour-i18n 时,Codex 一直很适合处理仓库级任务。

例如:

  • 搜索源码;
  • 修改 Go 代码;
  • 调整保护规则;
  • 运行测试;
  • 检查 Git diff;
  • 提交代码。

而 ChatGPT 更适合做另一类事情:

  • 判断中文翻译是否自然;
  • 对比英文原文与中文译文;
  • 分析一个失败究竟属于模型问题还是校验器问题;
  • 讨论项目架构;
  • 整理 Codex 下一步应该执行的任务。

两者的分工其实一直比较清楚。

问题在于,当 ChatGPT 要审核仓库里的真实内容时,我过去经常需要经过这样一层:

Plaintext
GitHub / 本地仓库

      Codex

Codex 输出结果

我手工复制

     ChatGPT

对于单个页面,这没有多大问题。

但发布前我要逐页审核 103 个页面,如果每一批都先让 Codex 输出完整内容,再由我复制回来,整个过程会明显变得繁琐。

所以当 ChatGPT 提示可以连接 GitHub 时,我决定先把这个问题解决掉。

图 1:在 ChatGPT 对话中出现连接 GitHub 的提示
图 1:在 ChatGPT 对话中出现连接 GitHub 的提示

这里我的目标并不是让 ChatGPT 接管 Codex。

恰恰相反,我希望保留原来的职责分工,只是让 ChatGPT 多获得一种能力:

在需要审核时,可以直接读取 GitHub 中的真实仓库内容。

二、连接过程中先遇到了 MFA

点击连接以后,并没有立即进入 GitHub 仓库授权。

我的这次连接流程首先提示:

需要启用多因素身份验证(MFA)

图 2:连接 GitHub 时提示需要启用多因素身份验证(MFA)
图 2:连接 GitHub 时提示需要启用多因素身份验证(MFA)

我之前没有为这次连接准备好多因素身份验证,所以这里又多了一步身份验证器配置。

完成这一步以后,才能继续后面的 GitHub 授权流程。

不同账号原来的 GitHub 安全设置不同,实际连接时看到的步骤也可能并不完全一样。因此这里记录的主要是我这次实际操作时遇到的流程,而不是说所有账号连接 GitHub 时都会经历完全相同的步骤。

三、进入 GitHub 的安装和授权页面

完成前面的身份验证以后,进入 GitHub 的应用安装和授权页面。

这里才是我认为整个连接过程中最值得认真看的一步

图 3:在 GitHub 中安装并授权 ChatGPT Codex Connector
图 3:在 GitHub 中安装并授权 ChatGPT Codex Connector

页面中可以选择:

  • All repositories
  • Only select repositories

也就是:

允许访问全部仓库,还是只允许访问指定仓库。

我这次截图中选择的是全部仓库,这是我当时实际操作的状态。

不过如果只是希望 ChatGPT 协助分析某一个项目,其实也可以根据自己的实际需求,只开放需要使用的仓库。

除了仓库范围之外,页面中还能看到应用申请的具体权限。

所以在授权时,我认为比较值得留意的并不只是“能不能连接成功”,还有:

  • 它能够访问哪些仓库;
  • 它申请了哪些权限;
  • 当前选择的授权范围是否符合自己的实际需求。

这也是我觉得这次操作值得单独记录下来的原因。

连接一个开发工具并不只是:

点“连接” → 完成。

中间实际上还包含了一次比较具体的权限选择。

四、连接完成

授权完成以后重新回到 ChatGPT,原来的 GitHub 卡片已经从:

连接

变成:

已连接

图 4:GitHub 与 ChatGPT 已成功连接
图 4:GitHub 与 ChatGPT 已成功连接

到了这里,我没有马上让 ChatGPT 修改任何仓库内容。

我的第一反应反而是:

先验证它到底能不能正确读取 go-tour-i18n

因为“界面显示已连接”和“实际能够准确读取当前项目仓库”,是两件不同的事情。

而且我这次连接 GitHub 的目的,本来就不是为了增加一个新的自动改代码入口。

我最需要的是:

让 ChatGPT 能够直接看到它正在审核的真实材料。

这刚好也和我目前实际采用的分工比较吻合。

五、连接 GitHub 以后,项目协作方式发生了什么变化

连接之前,我的工作流更接近:

Plaintext
Codex 读取仓库

输出文件内容和结果

我复制给 ChatGPT

ChatGPT 审核

再整理指令给 Codex

连接以后,可以简化成:

Plaintext
GitHub 仓库
   ↙       ↘
Codex     ChatGPT
修改执行    直接只读审核
   ↘       ↙
   我做最终决策

这里最重要的变化并不是“少复制几次文字”。

更重要的是:

ChatGPT 可以直接依据仓库中的真实文件做判断,而不只是依据我从另一个工具复制回来的一小段结果。

例如这次 A Tour of Go 中文正文审核,我需要同时查看:

  • 官方英文 .article
  • 对应的 zh-CN candidate;
  • glossary;
  • protected token 规则;
  • 不同页面之间的术语一致性。

如果这些内容都必须先通过 Codex 转述一次,再交给 ChatGPT,信息链条会比较长。

能够直接访问 GitHub 后,ChatGPT 可以自行读取需要的文件,我只需要决定:

下一批审核什么。

对于这种需要持续维护的长期项目,这一点尤其有用。

六、但我并不打算因此放弃 Codex

连接成功之后,我反而更加确定:

ChatGPT 和 Codex 没有必要互相替代。

至少在当前这个项目里,我更喜欢这样的职责划分。

ChatGPT

负责:

  • 翻译质量审核;
  • 英文与中文语义比较;
  • 术语判断;
  • 架构讨论;
  • 异常原因分析;
  • 修改方案审核;
  • 给 Codex 整理受控执行指令。

Codex

负责:

  • 仓库级搜索;
  • 精确修改文件;
  • 执行 Go 测试;
  • 运行 validator;
  • 检查 Git diff;
  • 提交和推送。

GitHub 连接解决的只是两者之间过去存在的一道信息传递障碍。

它并没有改变一个我一直比较重视的原则:

负责判断的工具和负责执行修改的工具,可以各自发挥最擅长的能力。

七、连接后的第一次实际用途:审核 A Tour of Go 中文译文

完成 GitHub 连接之后,我没有先拿它测试一个无关的小仓库。

下一步直接回到了正在进行的 go-tour-i18n

逐页审核 103 个中文课程页面。

这也是这次连接 GitHub 最直接的一次实际验证。

以前如果要做这种审核,我通常需要让 Codex 先读取英文源码和中文 candidate,再把结果返回,我复制给 ChatGPT。

这一次,ChatGPT 可以直接从 GitHub 仓库读取冻结基线中的英文源码和对应中文译文,然后按页面逐批进行只读审计。

不过真正开始审核以后,又出现了两个很值得单独记录的问题。

第一个是:

channel 到底应该翻译成“通道”“管道”“信道”,还是直接保留 Channel

原本只是一个页面中的术语问题,最后却演变成了一次比预想中更系统的 Go 中文技术术语校准

第二个则是:

103 页全部检查完成以后,到底有多少页面真的值得修改?

结果也和我一开始想象的不太一样。

所以这两个主题我准备分别再写两篇文章:

  1. A Tour of Go 中文术语统一:为什么 channel 最终选择“通道”
  2. 103 页逐页审核后,只返修 16 页:A Tour of Go 中文正文发布前质量审计

这样本文只解决一个问题:

怎样让 ChatGPT 直接连接 GitHub,并把这种能力加入现有的项目协作流程。

八、总结

以前我更多把 ChatGPT 当成一个:

需要我把材料提供给它的审核者。

这次连接 GitHub 后,一个明显的变化是:

仓库里的材料可以由 ChatGPT 自己读取。

对于一次性的问答,这个变化可能没有多大感觉。

但对于 go-tour-i18n 这种需要长期维护、持续同步上游、反复审核翻译和代码的项目,它能够明显缩短原来的信息链:

Plaintext
仓库
→ Codex
→ 我
→ ChatGPT

与此同时,我暂时仍然不会让这种连接改变当前的基本分工:

ChatGPT 负责分析与审核,Codex 负责仓库级修改、测试和提交。

所以这次 GitHub 连接对我来说,更像是给 ChatGPT 补上了一双能够直接查看仓库的“眼睛”。

它仍然负责判断,但不再需要我把每一份材料都手工搬到它面前。

而连接完成之后进行的第一次完整任务,就是:

103 个 A Tour of Go 中文课程页面的发布前质量审计。

下一篇,我准备先从其中意外冒出来的一个问题开始:

channel,在中文 Go 世界里到底应该叫什么?

A Tour of Go 中文翻译完成 7 个代表页校准:最后 3 页又发现了哪些真实问题

A Tour of Go 多语言翻译项目

本系列完整记录 A Tour of Go 多语言翻译项目从架构设计、整页翻译、结构保护、自动校验,到生产发布与后续维护的实际开发过程。

项目入口:
✅ 在线学习:A Tour of Go 简体中文版
✅ 项目源码:GitHub:shuijingwan/go-tour-i18n

当前第一阶段已完成简体中文版本。项目属于非官方社区多语言翻译项目,与 Go 官方无隶属或授权关系。

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理