2.3 KiB
2.3 KiB
weekly-report
统计项目过去 7 天的 commit 和 PR,为每位协作者生成个人工作日志和项目整体进度报告,通过 SMTP 发送邮件。
适用于自建 Gitea 仓库,不依赖
ghCLI。
前置要求
- Python 3.8+
- 项目
origin指向 Gitea 实例 - 有可用的 SMTP 邮件账号
配置文件
在被统计项目的根目录创建 report-config.json(可提交到 git):
{
"recipients": ["boss@company.com", "team@company.com"],
"project_name": "项目名称",
"smtp_host": "smtphz.qiye.163.com",
"smtp_port": 994
}
| 字段 | 必填 | 说明 |
|---|---|---|
recipients |
是 | 收件人邮箱列表 |
project_name |
是 | 显示在邮件标题中 |
smtp_host |
否 | 内置服务商可省略(见下表) |
smtp_port |
否 | 内置服务商可省略 |
内置 SMTP 服务商
| 邮箱后缀 | 服务器 | 端口 |
|---|---|---|
@gmail.com |
smtp.gmail.com | 587 |
@qq.com |
smtp.qq.com | 465 |
@163.com |
smtp.163.com | 465 |
@126.com |
smtp.126.com | 465 |
@outlook.com / @hotmail.com |
smtp.office365.com | 587 |
企业自定义域名需手动填写 smtp_host 和 smtp_port。
环境变量
export SMTP_USER=your@email.com
export SMTP_PASSWORD=your-auth-code
# 私有 Gitea 仓库需要(公开仓库忽略)
export GITEA_TOKEN=your-gitea-token
GITEA_TOKEN 在 Gitea 中生成:头像 → 设置 → 应用 → 管理 Access Token,权限勾选 repository: Read。
定时发送
crontab -e 添加一行(每周五 18:00):
0 18 * * 5 cd /path/to/your-project && SMTP_USER=xxx SMTP_PASSWORD=xxx claude -p "/weekly-report" >> ~/weekly_report.log 2>&1
Windows 用任务计划程序,参数设为:
-l -c "cd /e/your-project && SMTP_USER=xxx SMTP_PASSWORD=xxx claude -p '/weekly-report'"
常见问题
Q:发送失败,提示认证错误 A:需使用授权码而非登录密码。QQ/163 在邮箱设置中开启 SMTP 并生成授权码;Gmail 需开启两步验证后生成应用专用密码。
Q:没有 PR 数据
A:只有通过 Gitea 创建并合并的 Pull Request 才会被统计,直接 git push 不产生 PR 记录。
Q:私有仓库报 401
A:设置 GITEA_TOKEN 环境变量。