当前时间: 1970-01-01 08:00:00
分类:办公文件
评论(0)
如何用 AI 写一个工具作为一个程序员,从踏入这个行业开始的那天,摆在面前的就有两大难题:现在有了AI,终于可以解决其中一大难题:git commit msg 如何写。所以就让 AI 搓了一个工具:gita(详细用法可以参见:https://github.com/851235550/gita)✅ 不在代码中硬编码密钥 - API Key 完全通过环境变量读取(GITA_DEEPSEEK_API_KEY 等)✅ 不持久化到磁盘 - 密钥仅存于运行时内存,配置文件明确禁止写入 API Key✅ 三级优先级机制(按优先顺序):1. 命令行参数 --api-key (临时,不落盘)2. 环境变量(由 api_key_env 指定)3. 配置文件中的 api_key_env 指向具体的环境变量名✅ 仅依赖 gopkg.in/yaml.v3 v3.0.1(成熟稳定的 YAML 解析库)✅ 没有多层依赖链,降低了供应链风险✅ go.mod 和 go.sum 完整且一致✅ Git diff 数据基于本地 Git 命令执行,不接受不可信输入✅ JSON 响应完整校验,异常处理覆盖全面✅ 超大 diff(≥15000 行)时强制用户确认,防止无意中发送大量数据✅ 完整的单元测试和 E2E 测试覆盖我一般都在 vscode 中写代码,使用 Copilot + Deepseek, 但是每次提交代码都得想 commit msg 如何写。之前安装过千问的 vscode 插件,一个插件 200多兆 大小,而我只用来生成 commit msg 感觉太不划算(还有有时候生成的也不是很好 😒)。其实很简单,所有代码都是 Deepseek 写的,我只是提供了下项目文件 /docs 目录下的需求和 AI Agent 执行规则。(其实连 /docs 下的文档都只是我先描述一个初步想法,然后和 AI 探讨后,让 AI 整理的结果 ☺️)。让轮子自己给自己生成 commit msg ☺️,感觉生成的很不错了已经(至少比我想的好)。欢迎访问 https://github.com/851235550/gita/releases 下载试用
基本
文件
流程
错误
SQL
调试
- 请求信息 : 2026-07-09 18:28:22 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/849086.html
- 运行时间 : 0.128201s [ 吞吐率:7.80req/s ] 内存消耗:4,551.27kb 文件加载:145
- 缓存信息 : 0 reads,0 writes
- 会话信息 : SESSION_ID=157c8a93a4ff098ec2299aab0d12f289
- CONNECT:[ UseTime:0.000570s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
- SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000535s ]
- SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.003377s ]
- SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.010143s ]
- SHOW FULL COLUMNS FROM `set` [ RunTime:0.000879s ]
- SELECT * FROM `set` [ RunTime:0.003377s ]
- SHOW FULL COLUMNS FROM `article` [ RunTime:0.000648s ]
- SELECT * FROM `article` WHERE `id` = 849086 LIMIT 1 [ RunTime:0.003473s ]
- UPDATE `article` SET `lasttime` = 1783592902 WHERE `id` = 849086 [ RunTime:0.015505s ]
- SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000284s ]
- SELECT * FROM `article` WHERE `id` < 849086 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000525s ]
- SELECT * FROM `article` WHERE `id` > 849086 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000489s ]
- SELECT * FROM `article` WHERE `id` < 849086 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002134s ]
- SELECT * FROM `article` WHERE `id` < 849086 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.005438s ]
- SELECT * FROM `article` WHERE `id` < 849086 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.002409s ]
0.129925s