---
description:
globs:
alwaysApply: false
---
# PR 通知功能

## 概述

系统通过飞书（Feishu）实现 PR 相关的通知功能，主要包括 PR 创建通知和审阅者指派通知。核心实现在 [src/services/feishu.ts](mdc:src/services/feishu.ts) 中。

## 主要功能

### PR 创建通知

当 PR 被创建且有指定审阅者时，系统会自动发送通知：
- 触发条件：PR 创建事件 + 存在指定审阅者
- 通知对象：所有指定的审阅者
- 通知内容：PR 标题和链接
- 实现位置：[src/controllers/review.ts](mdc:src/controllers/review.ts) 中的 `handlePullRequestEvent` 函数

### 审阅者指派通知

当新的审阅者被指派到 PR 时，系统会发送通知：
- 触发条件：PR review_requested 事件
- 通知对象：新指派的审阅者
- 通知内容：PR 标题和链接
- 实现位置：同样在 `handlePullRequestEvent` 函数中

## 配置要求

使用通知功能需要配置以下环境变量：

1. **必需配置**
   - `FEISHU_WEBHOOK_URL`：飞书 Webhook 地址

2. **可选配置**
   - `FEISHU_WEBHOOK_SECRET`：飞书 Webhook 密钥（可选，用于加强安全性）

## 实现细节

1. **通知处理流程**
   - Webhook 事件由 [src/controllers/review.ts](mdc:src/controllers/review.ts) 接收和处理
   - 通知发送由 [src/services/feishu.ts](mdc:src/services/feishu.ts) 实现
   - 使用飞书的消息 API 发送通知

2. **错误处理**
   - 通知发送失败不会影响代码审查流程
   - 所有错误都会被记录但不会中断主流程
   - 支持失败重试机制

3. **通知格式**
   - PR 创建通知：使用 🔄 表情符号
   - 审阅者指派通知：使用 👀 表情符号
   - 包含 PR 标题和可点击的链接

## 最佳实践

1. **配置建议**
   - 建议配置 `FEISHU_WEBHOOK_SECRET` 以增强安全性
   - 确保飞书机器人有足够的权限发送消息

2. **使用注意**
   - 避免过于频繁的通知以防打扰
   - 确保 PR 标题清晰以便接收者快速理解
   - 合理使用审阅者指派功能，避免过多人员参与
