weekly-report

by carson1012

自动整理周报工具。支持从多个数据源(GitHub、飞书文档、日历)汇总工作内容,生成Markdown周报。支持保存历史、AI摘要、导出PDF/HTML、发送邮件、写入飞书文档。适用于需要定期总结工作成果的用户。

View Chinese version with editor review

安装

claude skill add --url github.com/openclaw/skills/tree/main/skills/carson1012/weekly-report-ai

文档

Weekly Report - 自动整理周报

功能概述

自动从多个数据源汇总一周工作内容,生成结构化的Markdown周报,支持多种输出方式。

支持的数据源

1. GitHub / GitLab

  • 获取内容:commits、PRs、issues
  • 配置:用户需提供仓库地址和访问Token

2. 飞书文档/知识库

  • 获取内容:指定文档/知识库中的更新
  • 配置:用户提供文档链接或知识库ID

3. 日历事件

  • 获取内容:Google Calendar / 飞书日历
  • 配置:用户授权日历访问

4. 手动输入

  • 用户在对话中补充工作内容

输出功能

1. Markdown周报

生成标准格式周报,包含:

  • 本周概览(提交数、PR数、会议数)
  • GitHub贡献(PR详情+提交记录)
  • 文档更新
  • 会议记录
  • 补充说明
  • 下周计划

2. 历史保存

  • 自动保存到 ~/.weekly-report/history/
  • 支持查询历史周报
  • 按周查看/删除历史

3. 导出功能

  • HTML:生成带样式的网页
  • PDF:使用pandoc导出(需安装pandoc)

4. 邮件发送

  • 支持SMTP协议(QQ邮箱、网易邮箱等)
  • 自动转换为HTML格式

5. 飞书文档

  • 自动创建飞书文档
  • 支持追加到已有文档

使用方式

手动触发

用户说"生成周报"、"整理本周工作"时执行。

定时执行

配置cron任务,每周五下午自动执行。

脚本列表

脚本功能
generate_report.py生成Markdown周报
github_fetcher.py获取GitHub数据
feishu_fetcher.py获取飞书文档
calendar_fetcher.py获取日历事件
feishu_writer.py写入飞书文档
email_sender.py发送邮件
export_pdf.py导出PDF/HTML
history_manager.py历史周报管理

配置项

配置项说明必填
github_tokenGitHub访问Token
github_repos监控的仓库列表
feishu_token飞书Access Token
feishu_docs监控的文档/知识库
smtp_hostSMTP服务器
smtp_portSMTP端口
smtp_username邮箱账号
smtp_password邮箱授权码
user_name用户姓名

示例命令

bash
# 生成周报
python3 generate_report.py --user "张三" --github data.json --manual "本周工作..."

# 获取GitHub数据
python3 github_fetcher.py --token $GITHUB_TOKEN --repos "user/repo" --since "2026-03-16" --until "2026-03-22"

# 发送邮件
python3 email_sender.py --smtp-host smtp.qq.com --smtp-port 465 --username "user@qq.com" --password "xxx" --to "boss@company.com" --subject "第12周周报" --content "$MARKDOWN" --html

# 写入飞书
python3 feishu_writer.py --token $FEISHU_TOKEN --title "第12周周报" --content "$MARKDOWN"

# 导出PDF
python3 export_pdf.py --input report.md --output report.pdf --format pdf

# 保存历史
python3 history_manager.py --action save --week-start "2026-03-16" --week-end "2026-03-22" --content "$MARKDOWN"

# 查看历史
python3 history_manager.py --action list --limit 5