---
title: 权限申请
description: 找到等你处理的申请，看懂每种申请允许什么，然后批准、拒绝、转交或关闭，事后还能撤销授权。
llms_section: "日常使用"
llms_order: 1050
llms_summary: "需要人来决定 agent 的申请时读：以你的身份操作、启动 workflow、GitHub App、仓库管理调用、联合，或上游 PR。"
---

# 权限申请

在 Stamp 里，agent 只能做 server 的 GitHub App 允许的事。需要更多权限时，它会提一张**权限申请**，有人做了决定才会生效。

这一页写给负责审批的人。

## 去哪里看等你处理的申请

- 左侧导航里的「**权限申请**」（`/requests`）。「**待我处理**」是要你决定的，「**我发出的**」是你自己提的。可以在「**待处理**」和「**全部**」之间切换。
- 顶栏的盾牌按钮会显示有几条在等你，比如「**3 条申请等你处理**」。它会把你登录的所有 server 都算上，列表底部会告诉你其余的在哪个 server（比如「**前端组 还有 2 条等你处理**」）。
- 一般来说，agent 提完申请也会把拿到的链接发给你，点开就是那张申请。

每张申请都写明由谁处理：某一个人，或者「**本服务器的所有者或管理员**」。只有申请人和被请求审批的人能打开它，其他人看到的是「**没有这个申请**」。

## 申请页面

页面顶部一句话说清楚：谁、要什么、在哪个仓库上，旁边是状态：「**等待审批**」「**已批准**」「**已完成**」「**已拒绝**」「**已过期，未处理**」或「**已关闭**」。

如果由你来决定，会看到一张标题为「**等待你审批**」的卡片，按钮都在里面。下面的「**流程**」显示申请走到哪一步，「**动态**」记录谁在什么时候做了什么。右侧列出申请人、审批人、仓库和时间。

## 申请的种类

### 以他人身份操作

agent 想在某个仓库上以**你**的身份干活，比如 server 的 GitHub App 管不到那个仓库的时候。它会用你的 GitHub 账号推送代码、开 PR，Stamp 会把这些操作标成「via act-as」加上你的用户名。只有申请里点名的那个人能批准。

批准时你要选：

- 「**允许的操作**」：「**推送代码**」「**创建拉取请求**」「**其他拉取请求写操作**」（以你的身份评论、编辑、审阅、批准和合入）默认都勾上了。「**按需启动 workflow**」永远不会默认勾选，需要的话自己勾。
- 「**适用范围**」：「**仅此仓库：…**」、server 的 GitHub App 覆盖的该 owner 下所有仓库，或 App 覆盖的所有仓库。申请人建议的那项会标出来。
- 「**授权有效期**」：「**7 天**」「**30 天**」（默认）「**90 天**」或「**直到我撤销**」。

授权永远不会超出你自己 GitHub 账号在这个仓库上的权限，每次使用都有记录。批准之前，你要先在设置里[连接自己的 GitHub 账号](/zh-cn/get-started/)。如果 Stamp 的 GitHub App 还没装到这个仓库，页面会先给出「**安装 GitHub App**」。

这类申请等一天。一天内没人处理，就会变成「**已过期，未处理**」，agent 需要重新提。

也可以点名你们[联合](/zh-cn/federation/)里另一个 server 上的人。对方在自己的 server 上批准，这时授权只覆盖这一个仓库。

### 允许 agent 启动工作流

agent 申请让 server 上的 agent 可以启动某个仓库的某个 workflow 文件。server 的任意一位所有者或管理员点「**允许**」即可。没有有效期：允许之后，server 上每个 agent 都能随时启动它。agent 只能在默认分支上启动，而且这个分支必须要求走 PR。想收回，用 `stamp workflow disallow`。

### 服务器的 GitHub App

成员请 server 的所有者和管理员设置 [GitHub App](/zh-cn/github-app/)，或者把 App 扩展到某个仓库。所有者或管理员在 **设置 › GitHub App** 里弄好，再点「**标记为已处理**」。App 覆盖到那个仓库后，Stamp 也会自动把它处理掉。拒绝这类申请必须写原因，申请人会看到。

### 安装 GitHub App

agent 请某个人把 Stamp 的 GitHub App 装到一个仓库上。页面上有「**安装 GitHub App**」链接。装好后点「**重新检查**」；打开这个页面时也会自动检查一次。App 装到仓库上，申请就完成了。

还有一种相关的「**设置 GitHub App**」：把某个 GitHub 组织的 App 设置交给一个点名的人。只有这个 GitHub 组织的所有者才能创建它的 App。

### 运行一次仓库管理 API 调用

agent 的仓库管理调用（规则集、分支保护、环境或仓库设置）被 Stamp 拦下后，它可以请一个人把这次调用原样运行一次。申请发给 server 的所有者和管理员，或者点名的某一个人。

页面上会列出完整的方法、路径和请求体。点「**以我的身份运行**」，Stamp 会用你自己的 GitHub 账号运行一次，前提是 GitHub 显示你是这个仓库的管理员。运行完不会留下任何权限。如果这次调用会改变谁能看到这个仓库，页面会提醒你，并逐项列出要改的值。这类申请等 7 天。

### 联合相关的申请

- 「**加入联合**」：某个 server 申请加入联合，由成员 server 的所有者或管理员批准。
- 「**联合邀请**」：成员 server 邀请你们的 server 加入。由你们 server 的所有者和管理员点「**接受**」或拒绝，等一周。
- 「**请求申请加入联合**」：成员请你们 server 的所有者和管理员去申请加入某个联合。批准后，Stamp 会以你的名义提交加入申请。

这几种都没有有效期。加入联合意味着什么，见[联合](/zh-cn/federation/)。

### 上游 PR

agent 准备好了一个从你的 fork 到上游仓库的 PR，想以你的身份提交。它不在申请页面上处理：申请页面会链接到「**上游 PR 页面**」，在那里看完整的改动，再点「**以此身份提交：**」或「**拒绝**」。

## 批准、拒绝、转交、关闭

- **批准**：按钮的名字就是它要做的事，比如「**批准**」「**允许**」「**标记为已处理**」「**以我的身份运行**」或「**接受**」。
- **拒绝**：展开「**拒绝**」，愿意的话写个原因，再点「**拒绝此申请**」。原因可以不写，只有服务器 GitHub App 的申请必须写。
- **转交**：申请点名了你、但你不方便处理时，用「**转交给他人**」。填对方的 Raft 用户名，可以附一句留言，然后点「**转交**」。对方必须是在这个 server 上登录过 Stamp 的人，而且不能是申请人。之后申请改为等对方处理，你仍然能看到它。以他人身份操作、安装 App、仓库管理调用这几种点名到人的申请可以转交。以他人身份操作的申请转交后，授权会改用新审批人的 GitHub 账号。
- **关闭**：申请人或审批人都可以关闭还在等待的申请，必须写原因。关闭申请不会撤销它已经产生的授权。

做出决定后，Stamp 会通过 Raft 告诉提申请的 agent：批准、拒绝、关闭还是过期，以及你写的原因。申请被转交时它也会收到通知。申请页面上的「**通知**」一栏会显示这条消息有没有送达。

## 撤销授权

以他人身份操作的申请批准后会留下一份授权，你随时可以撤销：

- 在申请页面，点授权那一行旁边的「**撤销**」。
- 在 **设置 › 访问授权**（`/settings/access`）的「**我授出的**」里。所有者和管理员还能看到「**本服务器的其他授权**」，其中任何一项都能撤销。

撤销立即生效，已经推送的内容不受影响。agent 想再用，需要重新申请。撤销会记在这张申请的「**动态**」里。

## 联合视图

如果你们的 server 在某个联合里，`/f/{联合}/requests` 会列出整个联合里等你处理的申请：你自己 server 上的，以及其他成员 server 上点名你的以他人身份操作申请。每一行都写着来自哪个 server。等你处理的以他人身份操作和安装 App 申请，可以直接在列表上批准或拒绝；想看完整内容，点开申请再决定。
