关于 Tenpace Review Router
Tenpace Review Router 通过人工身份验证流程,将 GitHub 拉取请求连接到 Slack 目标频道。GitHub Action 会生成短时有效链接,由已登录 Tenpace 的用户认领路由并验证消息送达。
主要功能
- 01生成短时有效的设置链接
- 02将拉取请求路由到 Slack 频道
- 03支持 YAML 配置和 Action 输入
- 04设置路由预设与审核者提醒规则
- 05通过 Slack 消息验证路由
适用场景
- 01从 GitHub 工作流设置 PR 通知
- 02为仓库选择 Slack 目标频道
- 03配置审核者提醒规则
- 04验证新建的通知路由
MCP 相关
项目发布了用于 Review Router 设置的远程 MCP 服务,并列入官方 MCP Registry。README 也将 MCP 列为编码 Agent 可使用的机器可读接口。
配置
远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。
https://api.tenpace.com/v1/review-router/mcpclaude mcp add --transport http tenpace-app-review-router https://api.tenpace.com/v1/review-router/mcp{"mcpServers":{"tenpace-app-review-router":{"type":"http","url":"https://api.tenpace.com/v1/review-router/mcp"}}}在 Cursor 中打开{"servers":{"tenpace-app-review-router":{"type":"http","url":"https://api.tenpace.com/v1/review-router/mcp"}}}在 VS Code 中打开{"mcpServers":{"tenpace-app-review-router":{"type":"http","url":"https://api.tenpace.com/v1/review-router/mcp"}}}{"mcpServers":{"tenpace-app-review-router":{"serverUrl":"https://api.tenpace.com/v1/review-router/mcp"}}}命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。
工具
5| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| preset | enum | 否 | full_coverage | team_activity | repo_watch |
| repository | string | 是 | 格式为 owner/repository 的 GitHub 存储库 |
| slackChannel | string | 是 | Slack 频道名称,可带或不带 # |
| idempotencyKey | string | 否 | |
| slackWorkspace | string | 否 | 可选的确切工作区名称、Slack 团队 ID 或 Tenpace 工作区 ID |
| reviewerMentions | enum | 否 | all | connected_only | none |
详细介绍
Review Router 设置
通过工作流或 AI 编码会话创建 GitHub 到 Slack 的 Review Router 连接。此 Action 会生成一个短时有效的浏览器链接。打开链接并登录 Tenpace,即可认领并锁定确切的代码库、Slack 目标位置、路由预设和审阅者提及策略。
此 Action 绝不会接收 GitHub App 凭据、Slack OAuth 令牌、提供商授权码或用户的 Tenpace 会话。
使用此 Action
创建 .github/workflows/review-router-setup.yml:
name: Set up Review Router
on:
workflow_dispatch:
permissions:
contents: read
id-token: write
jobs:
setup:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- uses: tenpace-app/review-router-setup@v1
with:
slack-channel: pull-requests
preset: repo-watch
reviewer-mentions: all
运行工作流。启动工作流的同一 GitHub 用户需打开作业摘要中的 继续设置 Review Router 链接,登录 Tenpace,完成 GitHub 和 Slack 步骤,并让页面通过实际 Slack 消息投递来协调和验证路由。
将配置作为代码管理
也可以不使用输入项,而是提交 .tenpace/review-router.yml:
version: 1
route:
slack-channel: pull-requests
preset: repo-watch
reviewer-mentions: all
如果 Tenpace 团队连接了多个工作区,也可以设置 slack-workspace。显式 Action 输入项会覆盖文件中的设置。
输入项
slack-channel:Slack 频道名称,可带或不带#。除非配置文件中已设置,否则必填。slack-workspace:可选的确切工作区名称、Slack 团队 ID 或 Tenpace 工作区 ID。preset:repo-watch、full-coverage或team-activity。默认值:repo-watch。reviewer-mentions:all、connected-only或none。默认值:all。config:配置路径。默认值:.tenpace/review-router.yml。
输出项
setup-id:公开的设置会话 ID。setup-url:短时有效的用户授权 URL。status:初始状态,通常为awaiting_human。
机器设置令牌会被屏蔽,并且不会作为 Action 输出公开。显示的 URL 不包含认领密钥:它绑定到已签名 OIDC 令牌中的 GitHub 用户,该 GitHub 用户必须亲自打开此 URL。浏览器流程无需将密钥放入其他工作流步骤即可完成设置。
安全模型
GitHub Actions OIDC 会证明工作流运行对应的代码库和用户,但不会授予提供商权限。Tenpace 会验证 OIDC 颁发者、签名、受众、时间范围、代码库和所有者 ID、用户 ID、主题以及代码库绑定。Action URL 不包含认领密钥,且只能由对应的 GitHub 用户认领。
服务器会创建一条不可操作的意图。Tenpace 用户登录并认领设置 URL 时,系统会以原子方式锁定该确切版本的意图。认领后,机器令牌无法再进行编辑;认领设置的用户可以编辑,而保存操作会在同一次操作中创建并锁定新版本。提供商 OAuth 授权流程会保留在浏览器中,加密凭据则保留在 Tenpace 上。
设置创建和应用操作均具备幂等性。最终检查会通过与拉取请求通知相同的 Slack 消息投递路径发送一条消息。
有关报告和运维详情,请参阅 SECURITY.md。
面向编码 Agent
自动化设置前,请阅读 AGENTS.md。规范的机器可读接口如下:
AI 发现机制没有统一的约定,因此同一工作流会在 Action 元数据、README、AGENTS.md、链接的 HTML/Markdown 文档、OpenAPI、MCP 和 well-known 描述文件中进行说明。
此远程 MCP 服务也已发布到官方 MCP Registry,名称为:
io.github.tenpace-app/review-router
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。