OA0 = Omni AI 0
OA0 是一个探索 AI 的论坛
现在注册
已注册用户请  登录
OA0  ›  技能包  ›  meeting-prep:会议准备与每日代码提交总结工具

meeting-prep:会议准备与每日代码提交总结工具

 
  skill ·  2026-02-06 19:57:06 · 3 次点击  · 0 条评论  

名称: meeting-prep
描述: "自动化会议准备与每日提交摘要。用于检查 Google 日历中的即将到来的会议、从 GitHub 提交生成站会更新或发送每日开发摘要。提取会议安排和提交历史,并格式化为详细的开发者友好更新。"


会议准备

为开发团队提供自动化会议准备和每日提交摘要。

功能

  1. 会议准备 — 检查 Google 日历中即将举行的会议(含视频链接),通知用户,并基于提交生成更新
  2. 每日摘要 — 每日结束时汇总所有开发者的所有提交

配置要求

Google Calendar OAuth

在 Google Cloud Console 中创建 OAuth 凭据:

  1. 启用 Google Calendar API
  2. 创建 OAuth 2.0 桌面凭据
  3. client_secret.json 存储在 credentials/ 目录中
  4. 使用以下范围授权:https://www.googleapis.com/auth/calendar
  5. 将令牌存储在 credentials/calendar_tokens.json

对于多个账户,请为每个账户存储单独的令牌文件。

GitHub 令牌

创建一个具有 repo 范围的经典个人访问令牌。存储在 credentials/github_token

工作流程

会议准备检查

触发方式:每 15 分钟或心跳触发一次 Cron。

  1. 查询配置的日历,获取未来 45 分钟内的活动
  2. 筛选出包含 Google Meet 链接的活动(hangoutLinkconferenceData
  3. 如果会议在 30-45 分钟后开始且尚未通知:
    - 询问用户:“会议 [标题] 将在 X 分钟后开始。您上次更新是什么时候?我应该检查哪些代码库?”
    - 在状态文件中记录以避免重复
  4. 如果会议在 10-20 分钟后开始:
    - 从提交生成更新
    - 发送格式化更新

每日提交摘要

触发方式:每日结束时触发 Cron。

  1. 从配置的代码库中获取当天的所有提交
  2. 包含所有开发者
  3. 按代码库和子目录分组
  4. 包含作者姓名进行格式化
  5. 发送摘要

API 参考

检查日历

NOW=$(date -u +%Y-%m-%dT%H:%M:%SZ)
LATER=$(date -u -d "+45 minutes" +%Y-%m-%dT%H:%M:%SZ)
TOKEN=$(jq -r '.access_token' credentials/calendar_tokens.json)

curl -s "https://www.googleapis.com/calendar/v3/calendars/primary/events?timeMin=$NOW&timeMax=$LATER&singleEvents=true" \
  -H "Authorization: Bearer $TOKEN" | \
  jq '[.items[] | select(.hangoutLink != null or .conferenceData != null)]'

刷新令牌

CLIENT_ID=$(jq -r '.installed.client_id' credentials/client_secret.json)
CLIENT_SECRET=$(jq -r '.installed.client_secret' credentials/client_secret.json)
REFRESH_TOKEN=$(jq -r '.refresh_token' credentials/calendar_tokens.json)

curl -s -X POST https://oauth2.googleapis.com/token \
  -d "client_id=$CLIENT_ID" \
  -d "client_secret=$CLIENT_SECRET" \
  -d "refresh_token=$REFRESH_TOKEN" \
  -d "grant_type=refresh_token"

获取提交

TOKEN=$(cat credentials/github_token)
SINCE=$(date -u -d "-7 days" +%Y-%m-%dT%H:%M:%SZ)

# 列出组织代码库
curl -s -H "Authorization: Bearer $TOKEN" \
  "https://api.github.com/orgs/ORG_NAME/repos?per_page=50&sort=pushed"

# 获取提交
curl -s -H "Authorization: Bearer $TOKEN" \
  "https://api.github.com/repos/ORG/REPO/commits?since=$SINCE&per_page=30"

输出格式

纯文本,无 Markdown,无表情符号:

更新 - [日期]

[代码库名称]

[子目录]
• 详细的变更描述(作者)
• 另一项变更(作者)

今日
• [用户输入]

阻碍
• 无

讨论
• 无

格式化规则

  • 按代码库分组,然后按子目录分组
  • 将提交总结为有意义的描述
  • 包含作者姓名
  • 仅使用纯文本,便于复制粘贴

状态管理

data/meeting-prep-state.json 中跟踪状态:

{
  "notified": {},
  "config": {
    "repoFilter": "org-name/*"
  }
}
3 次点击  ∙  0 人收藏  
登录后收藏  
目前尚无回复
0 条回复
About   ·   Help   ·    
OA0 - Omni AI 0 一个探索 AI 的社区
沪ICP备2024103595号-2
Developed with Cursor