添加 weekly-report 使用说明

涵盖前置要求、配置文件格式、环境变量说明、插件启用方式及常见问题

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
admin 2026-02-27 14:44:31 +08:00
parent b047160dfb
commit 176f93614b

View File

@ -0,0 +1,104 @@
# weekly-report
统计项目过去 7 天的 commit 和 PR为每位协作者生成个人工作日志并生成项目整体进度报告通过 SMTP 发送到指定邮箱。
> 适用于自建 Gitea 仓库,不依赖 `gh` CLI。
## 前置要求
- Python 3.8+
- 项目使用 Git`origin` 指向 Gitea 实例
- 有可用的 SMTP 邮件账号
## 第一步:在项目根目录创建配置文件
在**需要生成周报的项目**根目录下创建 `report-config.json`(可提交到 git
```json
{
"recipients": ["boss@company.com", "team@company.com"],
"project_name": "你的项目名称",
"smtp_host": "smtphz.qiye.163.com",
"smtp_port": 994
}
```
| 字段 | 必填 | 说明 |
|------|------|------|
| `recipients` | 是 | 收件人邮箱列表 |
| `project_name` | 是 | 项目名称,显示在邮件标题中 |
| `smtp_host` | 否 | SMTP 服务器地址,内置服务商可省略(见下表) |
| `smtp_port` | 否 | SMTP 端口,内置服务商可省略 |
### 内置服务商smtp_host/smtp_port 可省略)
| 发件邮箱后缀 | 自动使用的服务器 | 端口 |
|-------------|----------------|------|
| `@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 |
企业自定义域名(如 `@yourcompany.com`)需手动填写 `smtp_host``smtp_port`
## 第二步:设置环境变量
账号密码**不要写入任何文件**,在终端中临时设置:
```bash
export SMTP_USER=your@email.com
export SMTP_PASSWORD=your-smtp-password-or-auth-code
```
> **说明**`export` 仅对当前终端会话有效,关闭后自动失效。
> 如需持久化,可写入 `~/.bashrc`(注意文件权限 `chmod 600 ~/.bashrc`)。
### 私有 Gitea 仓库
如果仓库是私有的,还需要额外设置 Gitea 访问令牌:
```bash
export GITEA_TOKEN=your-gitea-token
```
在 Gitea 中生成令牌:`头像 → 设置 → 应用 → 管理 Access Token`,权限勾选 `repository: Read`
公开仓库无需配置此项。
## 第三步:启用插件
在项目的 `.claude/settings.json` 中添加插件路径:
```json
{
"plugins": ["/path/to/ieslab_skills"]
}
```
## 第四步:调用技能
在 Claude Code 中输入:
```
/weekly-report
```
Claude 会自动执行以下流程:
1. 读取 `report-config.json`
2. 拉取 `origin/main` 最新代码
3. 通过 Gitea API 获取过去 7 天的 commits 和已合并 PR
4. 生成每位协作者的个人工作日志
5. 生成项目整体进度报告
6. 发送 HTML 格式邮件到 `recipients` 列表
## 常见问题
**Q发送失败提示认证错误**
ASMTP 密码通常需要使用"授权码"而非登录密码。QQ/163 邮箱请在邮箱设置中开启 SMTP 并生成授权码Gmail 需要开启两步验证后生成"应用专用密码"。
**Q没有 PR 数据**
A直接 `git push` 的提交不会产生 PR 记录,只有通过 Gitea 创建 Pull Request 并合并的才会被统计。
**Q私有仓库报 401 错误**
A需要设置 `GITEA_TOKEN` 环境变量,参考上方说明。