网淘吧来吧,欢迎您!

meeting-prep技能使用说明

2026-03-28 新闻来源:网淘吧 围观:10
电脑广告
手机广告

会议准备

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

功能

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

设置要求

Google 日历 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 Token

创建一个经典的 Personal Access Token,其权限范围(scope)为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)]'

Refresh Token

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"

Fetch Commits

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

# List org repos
curl -s -H "Authorization: Bearer $TOKEN" \
  "https://api.github.com/orgs/ORG_NAME/repos?per_page=50&sort=pushed"

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

Output Format

Plain text, no markdown, no emojis:

Update - [DATE]

[repo-name]

[subdirectory]
• Verbose description of change (Author)
• Another change (Author)

Today
• [user input]

Blockers
• None

Discussion
• None

Formatting Rules

• Group by repo, then subdirectory
• Summarize commits into meaningful descriptions
• Include author names
• Plain text only for easy copy-paste
State Management

Track state in data/meeting-prep-state.json:

{
  "notified": {},
  "config": {
    "repoFilter": "org-name/*"
  }
}
免责申明
部分文章来自各大搜索引擎,如有侵权,请与我联系删除。
打赏
文章底部电脑广告
手机广告位-内容正文底部

相关文章

您是本站第326301名访客 今日有221篇新文章/评论