🚀我用 AI 开发了一个“AI”——周报噩梦终结(VSCode 插件上线!)

67 阅读6分钟

ChatGPT Image 2025年12月9日 17_42_20.png

没想到,我写周报的痛苦,被我用 AI 写的 AI 给终结了。哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈属于是开心每一天了。

😫 痛并活着

每到周五,临近下班的黄金1小时我痛啊

  • 凑多多的素材:翻 Git log、查 diff、整理每个功能的改动点
  • 吹大大的牛皮:用我那不太优美的表达“硬吹”成一份看起来要“高端”、“丰富”以及“通俗易懂”的报告
  • 说虚虚的计划:下周打算干嘛、解决啥问题、优化啥功能还是开发啥需求(其实大多不会做,到时候会狠狠分任务)

🏁 开门见山:它来了

两天搞定,有手就行!! 手 + AI 做了一个“能自动生成程序员周报的 AI”。
整个开发链路几乎都是 AI 实现:

  • 帮我生成 VSCode 插件工程
  • 写 Git 提交分析逻辑
  • 自动生成 UI
  • 帮我构建、打包
  • 甚至工作流、上架流程也都是 AI 写的

最终成果就是一个 VSCode 插件:
它能自动读取你的 Git 提交,把 commit 和 diff 丢给大模型,让 AI 生成你的周报。
我叫它 “AI 周报” 。 我对插件本体的定位是:

免费、安全、开箱即用、程序员周报自动化工具。

我整个过程踩了不少坑,也做了不少没想到能成功的事情。
现在把整个结构分享出来,真诚欢迎大家指点!!为我们能彻底告别周报噩梦干杯🍻

🧭 整体脉络(我到底干了什么)

以下是我整个项目的关键路径:

  1. 想法成型:用 AI 自动读 Git → 自动写周报
  2. AI 生成插件代码:核心逻辑是 AI 写的
  3. AI 协助调试 + 修 bug:与 AI 结对编程
  4. GitHub Actions 自动构建:CI/CD 也是 AI 写的
  5. 注册 Azure Publisher 并上架 VSCode Marketplace
  6. 在真实项目跑了一遍,发现:它真的能自动生成周报

整体流程像一条流水线,我只需要说需求,AI 就把所有技术细节串起来了。

🛠️ 下面是完整实现流程(按时间顺序展开)

1️⃣ 用 VSCode 插件脚手架快速生成工程 VS Code 插件开发

  • 你需要先安装 Node.js 和 Git。

  • 使用 Yeoman + VS Code Extension Generator 来 scaffold(生成)一个新的扩展项目。

  • 运行命令: npx --package yo --package generator-code -- yo code 或者如果你希望全局安装 generator,也可以先 npm install --global yo generator-code,然后执行 yo code

  • 在创建项目时,你将会被询问一系列设置,比如:扩展类型(TypeScript/JavaScript)、插件name、是否初始化 git 仓库等正常使用就行。
    要注意:Which package manager to use? npm最好选npm,这里有一个坑后面讲

2️⃣ 核心能力:Git 提取 + 大模型分析

1. 提取 Git 提交数据
function getGitCommits(days):
    since = "--since="days days ago""
    logs = 执行 `git log ${since}` 获取提交记录
    return logs

直接通过 child_process 调 git,返回最近 X 天的 commit 数据

2. 调用大模型生成周报
function generateReport(provider):
    config = 读取配置
    prompt = 用户选择的提示词模板
    gitlog = 获取 git 提交记录

    finalPrompt = template.replace("{{gitlog}}", gitlog)
    text = model.chat(finalPrompt)

    return text

把 Git 日志塞进提示词 → 调模型 → 输出周报文本

3. Webview 侧 UI 交互逻辑
class SidebarViewProvider:
    resolveWebviewView(view):
        初始化 webview
        监听消息:
            generate     → 调生成周报
            openSettings → 打开配置

    postMessage(msg): 将消息推给前端

按按钮 → 发送消息给后端 → 后端生成 → 再推回前端显示

4. 插件入口:注册侧边栏 + 命令
activate(context):
  注册侧边栏视图
  注册命令 codereport.generateReport

启动时挂载 UI + 命令,让插件真正“活起来”

5. 配置体系(关键参数一站式管理)
• 模式选择:openai / custom
• 模型配置:model、apiKey、baseUrl、temperature、maxTokens
• Git 配置:BaseGitDays
• 提示词:BasePromptTemplateList(带 {{gitlog}})
• 自定义接口方案:customApiUrl / headers / bodyTemplate / resultField

所有 AI 行为都可配置:模型、Key、BaseURL、提示词、以及自定义 API 调用方式。

3️⃣ 用 GitHub Actions 自动构建 VSCode 插件

这部分 AI 表现惊艳:

  • 自动生成 vsceovsx 构建和发布脚本

  • 自动打包 .vsix

  • 自动推送到 Marketplace

    name: Publish VSCode Extension

    触发条件:

    • push tag 且格式为 v*

    发布流程(publish job):

    1. checkout 代码
    2. 安装 Node.js 环境
    3. npm install 安装依赖
    4. 使用 vsce 打包扩展(vsce package)
    5. 使用 token 自动发布到 VSCode 插件市场(vsce publish)

我基本是:“告诉它我要自动发布”,然后它就把整个 CI/CD 给我搭好了。

4️⃣ 获取 Token + 创建 Publisher + 发布插件(含 GitHub Action 自动发布)

这一环节是整个 VS Code 插件发布流程里最容易踩坑的部分,我也是一边查文档一边问 AI 才一路通关。下面是整理后的清晰步骤,你可以照着流程走,也能提前避开我踩过的坑。


📌 第一步:获取 Personal Access Token(PAT)

VS Code 扩展发布必须使用 Azure DevOps 的 Personal Access Token
无论你是:

  • 本地执行 vsce publish
  • 还是用 GitHub Actions 自动发布

这个 Token 都是必须的。

重要提醒:
获取 Token 时 权限直接选 Full Access,不要按教程那样拆分权限,不然后面各种权限不足会把你折磨疯。


📌 第二步:创建 Publisher

VS Code 扩展发布到 Marketplace 需要一个“Publisher”,类似开发者身份。

流程大概是:

  1. 登录微软 DevOps
  2. 创建一个 Organization(如果进不去,换网络!)
  3. 创建 Publisher 并绑定你的 Token

这是官方文档步骤(推荐走一遍):
👉


📌 第三步:本地打包 / 本地发布(基础)

当你拥有 Publisher 和 PAT 后,就可以本地执行:

vsce package
vsce publish

想走手动发布的,到这里已经够用了。


📌 第四步:GitHub Actions 自动发布(简要流程)

如果你希望一旦推 tag 就自动打包并发布到 Marketplace,可以使用 GitHub Actions。

整体流程如下:

① 生成 PAT 并存入 GitHub Secrets

在你的仓库设置里添加:

  • VSCE_TOKEN: 你的 PAT
② 在项目根目录创建 .github/workflows/publish.yml

最简自动发布流程(推 tag 即发布):

name: Publish VSCode Extension

on:
  push:
    tags:
      - 'v*'

jobs:
  publish:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4

      - name: Install dependencies
        run: npm install

      - name: Publish extension
        run: npx vsce publish
        env:
          VSCE_PAT: ${{ secrets.VSCE_TOKEN }}

流程逻辑很简单:

  1. 推 tag → 触发工作流
  2. GitHub Actions 拉代码 + 安装依赖
  3. 执行 vsce publish →自动上传到 Marketplace

📌 总结

整个发布流程可以理解为:

  1. Azure DevOps:创建 Organization → 获取 PAT → 创建 Publisher
  2. VSCE 工具:打包 + 发布
  3. GitHub Actions(可选) :自动发布

手动发布适合初学者,
自动发布适合长期迭代插件的开发者。

1. 创建微软组织账号的问题

登录微软账号创建组织时,会出现「创建组织页面进不去」的情况。这个99% 是网络问题,换个网络环境(例如更稳定的梯子)就能顺利进入。
👉 创建组织入口


2. 获取 Token 时权限直接选 Full

创建好组织后,在生成 token 时建议权限直接选 Full
不要按 VS Code 官方教程里那种拆权限的方式来,否则后续调用 API 时会出现各种权限不足的问题,得重建 token,非常麻烦。


3. 为什么我推荐直接用 npm

如果你本地开发时使用了全局依赖,但 devDependencies 中没有声明,那么 GitHub Actions 运行工作流时就会报错,因为它不会自动识别你本地的全局包。

如果你不想深究这些细节,直接全部换成 npm 就行
嫌 npm 慢?换淘宝镜像。
不想用自动化?也可以本地打包 VSIX,然后去 Marketplace 后台上传。


4. VS Code 配置项顺序不能自定义(很无语)

package.json 里的 configuration 部分,配置项的显示顺序无法人工控制
你按顺序写,它也会自动按字母排序……所以我最后只能为了排序去起一些奇奇怪怪的配置名 😂。

🎬 AI 周报插件|使用说明(简要)

image.png

1. 安装插件(必做)

打开 VS Code → 插件市场搜索 「AI 周报」 → 点击安装。

2. 填写你的 AI Key(必做)

在 VS Code 设置中找到 AI 周报配置,将你常用的任意 AI 服务的:

  • API Key(免费的也能用)
  • 模型名称 (默认设置是千问的)
  • BaseURL

3. 一键生成周报(必做)

在侧边栏找到“AI 周报” → 点击 生成周报 → 稍等即可生成结果。
提示:使用免费模型速度可能会稍微慢一点。

可选:自定义高级配置

插件支持更灵活的扩展,你可以按需配置:

🔧 模式选择

codereport.AIMode

  • openai:使用类 OpenAI 模型
  • custom:完全自定义请求(如果不想将代码暴露给ai并且公司有自研ai)
🔧 基础模型配置
  • AIModel:模型名称(默认 qwen3-max
  • apiKey:你的模型 Key
  • apiBaseUrl:接口地址(默认千问 DashScope)
  • BaseGitDays:读取 Git 日志天数
  • BasePromptTemplateList:提示词模板列表(支持自定义 label + content 模板内容,content中git消息使用 {{gitlog}} 占位)
🔧 生成参数
  • temperature(默认 0.7)
  • maxTokens(默认 2048)
🔧 自定义模型模式(custom 模式专用)

支持完全自定义调用方式:

  • customApiUrl:自定义 POST 接口
  • customApiBodyTemplate:请求 body 模板(支持 {{prompt}} 占位符)
  • customApiHeaders:请求 headers
  • customResultField:指定响应 JSON 的取值字段路径

一点我的感想

做完这个 “AI 周报” 之后,我真的有一种——
AI 做这种“小工具”简直不要太简单,效果甚至比我预期强太多了。

它能帮我自动整理一周工作内容,自动抽象 diff,自动总结重点……
我现在每次看到它生成的周报都有种冲击感:

原来这种机械重复的东西,我们早该交给 AI 去做了。
这种工具真的能给程序员省下一大堆不必要的精力。


🗣️ 最后,我想真诚请教一下大家(求大佬们支招)

我准备继续优化这个插件,如果你们有任何想法都可以留个评论:

  • 你希望它还能做什么?
  • 有哪些功能对你来说会非常有用?
  • 有哪些地方需要我改进?

我都会尽量做进去。


🎁 另外,大家如果有想做的 AI 工具,只要能解决痛点,我都想尝试做一下

不仅是 VSCode 插件,谷歌插件等等

再就是大佬可以分享一下好用的 AI 工具:

  • 最近用过哪些顺手的 AI 工具?
  • 值得我借鉴、复刻、二创的?
  • 你觉得现在 AI 还缺什么“缺口工具”?

谢谢各位大佬!!