> ## Documentation Index
> Fetch the complete documentation index at: https://docs.enclave.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Enclave in these docs is the code and cloud security platform at enclave.ai. It is not Open Enclave, Intel SGX or other hardware enclaves, or enclave.gg.
> People use Enclave in the web app at https://app.enclave.ai or the desktop app. These docs describe no public Enclave API or CLI, so don't invent endpoints, commands, or config files.
> Connecting an integration needs a person to sign in and approve access in a browser. Tell the user the exact step to take instead of saying you completed it.

# PR 与依赖分析

> 在每个拉取请求合并之前，审查其中的安全问题和有风险的依赖变更。

PR 审查会检查每个拉取请求中的安全问题。它会审查变更的代码和任何变更的依赖，验证发现的问题，并在拉取请求上发表评论。

PR 审查适用于 [GitHub](https://docs.enclave.ai/zh/integrations/github.md) 和 [GitLab](https://docs.enclave.ai/zh/integrations/gitlab.md)，不适用于 Azure DevOps。

## 开启 PR 审查

PR 审查默认开启。它由两个开关控制：

* **针对你的组织：** **Workflows** 中 **PR review** 上的 **Triggers** 开关。
* **针对每个仓库：** **Coverage → Repositories** 中的 **PR Reviews** 列。

你需要 **Owner** 或 **Admin** 角色才能更改它们。

## 审查何时运行

当拉取请求被创建、重新打开、标记为可供审查或有新提交时，审查就会运行。

* 草稿在准备好之前不会被审查。
* 新提交会取消较早的审查。
* 来自 fork 的拉取请求也会被审查。
* 变更文件超过 300 个的拉取请求会被跳过。
* 当你的月度额度用完时，Enclave 会发表评论，说明它跳过了此次审查。

如需按需审查拉取请求，请询问 Research：`Run the Workflow "PR review"`。

## 审查做什么

1. 分析变更的代码；如果清单文件或锁文件发生变更，还会分析依赖。
2. 剔除不真实、不属于安全问题或与本次变更无关的问题。
3. 根据代码是否可从互联网访问调整严重程度。
4. 将发现项保存到 **Risk**，并在拉取请求上发表评论。

在 GitHub 上，审查还会添加一个名为 **Enclave / PR analysis** 的检查。公开仓库不会收到评论。

> [!TIP]
>
> 一开始先将该检查设为非阻塞。等团队信任其结果后，再将其设为必需检查。

## Risk 中的 PR 发现项

打开 **Risk → PR findings**，查看每个 PR 发现项及其仓库、拉取请求和严重程度。

打开某个发现项，可查看问题、其影响以及受影响的代码行。点击 **AI fix prompt** 可复制一段提示词，供你的编码助手使用。

PR 发现项没有分诊状态，关闭拉取请求也不会改变它们。

## 依赖分析

当拉取请求变更了清单文件或锁文件时，Enclave 会检查变更的软件包是否存在供应链风险，而不仅仅是已知 CVE。它会查找：

* 已被入侵或恶意的软件包
* 仿冒名称（typosquatting）和不受信任的软件包
* 隐藏在常规版本升级中的攻击
* 已知漏洞

对于每个变更的软件包，Enclave 会权衡发布时长、维护者变更和安装脚本等注册表信号，并在发现异常时检查软件包代码。

支持的生态系统：

| 生态系统 | 文件 |
| - | - |
| Python | `pyproject.toml`、`poetry.lock`、`uv.lock`、`requirements.txt`、`Pipfile`、`Pipfile.lock` |
| JavaScript 和 TypeScript | `package.json`、`package-lock.json`、`yarn.lock`、`pnpm-lock.yaml`、`bun.lock` |

不支持二进制的 `bun.lockb` 格式。


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.