我用 TraeWork 自动化生成 Node.js CLI 工具的发布日报 #TraeWork的1000种用法

一、我是谁,我卡在哪

我是做 Node.js 后端开发的,日常维护一个内部 CLI 工具,每周需要给团队发发布日报,汇总本周的 commit、PR、issue 情况。之前都是手动整理,从 GitHub 拉数据、分类、写总结,每次要1-2小时,而且容易漏掉关键改动。

二、我用 TraeWork 怎么解决的

模式:Work

具体实践步骤

第一步:把需求拆解告诉 TraeWork——“帮我写一个 Node.js 脚本,用 GitHub API 拉取本周的 commits、merged PRs、open issues,按类型分类”

TraeWork 立刻给出了基于 @octokit/rest 的方案,还提醒我要处理 pagination(超过 30 条结果要翻页)。

第二步:让 TraeWork 帮我设计 markdown 日报模板,包含:

  • 本周合并 PR 汇总(带作者和链接)
  • 新增 Issue 分类(bug/enhancement/question)
  • 代码量统计(additions/deletions)

第三步:在本地测试脚本时遇到 GitHub API rate limit 问题,TraeWork 帮我加上了 token 认证和缓存机制。

第四步:把整套流程固化成一个可复用的工作流,现在每周一早上运行一行命令就生成日报。

三、提效前后对比

环节 以前 现在
拉取 GitHub 数据 20分钟(手动翻页) 30秒(自动分页)
分类整理 40分钟(人工判断) 10秒(自动标签匹配)
撰写总结 30分钟 已包含在模板中
总计 ~1.5小时 ~5分钟

四、成果展示

产物1:Node.js 数据拉取脚本核心逻辑

const { Octokit } = require('@octokit/rest');
const octokit = new Octokit({ auth: process.env.GITHUB_TOKEN });

async function generateWeeklyReport(owner, repo, since, until) {
  const [commits, pulls, issues] = await Promise.all([
    octokit.rest.repos.listCommits({ owner, repo, since, until, per_page: 100 }),
    octokit.rest.pulls.list({ owner, repo, state: 'closed', per_page: 100 }),
    octokit.rest.issues.listForRepo({ owner, repo, state: 'all', since, per_page: 100 })
  ]);
  
  const mergedPRs = pulls.data.filter(pr => 
    pr.merged_at && pr.merged_at >= since && pr.merged_at <= until
  );
  
  return { commits: commits.data, mergedPRs, issues: issues.data };
}

产物2:Markdown 日报模板(由 TraeWork 设计)

产物3:完整的 TraeWork 对话执行记录

五、实践经验总结

  1. 给 TraeWork 提供清晰的输入格式:比如告诉它"用 ISO 8601 格式处理日期",输出会更稳定,减少后期调整。

  2. 分步骤执行,不要一次性堆太多需求:我先让它写数据拉取,再写模板渲染,最后做错误处理。每步验证通过后再下一步,比一次性给大任务成功率高很多。

  3. 注意 API 限制:GitHub REST API 有每小时 5000 次的 rate limit,TraeWork 一开始没加认证,测试几次就触发了限制。记得提醒它加上 token 和缓存。

六、分享你的实操对话

关键对话步骤已勾选分享,主要围绕:

  • 第一轮:需求拆解和方案设计
  • 第二轮:分页处理和 rate limit 优化
  • 第三轮:markdown 模板美化和分类逻辑完善