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

# Enterprise 环境概览

> 企业级环境管理：蓝图层级、企业蓝图配置、secrets 以及企业范围内重建。

<Info>
  \*\*前提条件：\*\*本指南默认你已熟悉声明式环境配置。入门介绍请参阅[声明式环境配置](/zh/onboard-devin/environment/blueprints)。
</Info>

<Warning>
  **配置环境之前**，请先确保已连接你的 SCM 提供商 (**Enterprise Settings > Integrations**) ，并且已为每个组织授予其仓库访问权限 (**Enterprise Settings > Repository Permissions**) 。在明确授予访问权限之前，各组织无法将 repo 添加到其环境中。详情请参阅 [Git Integrations](/zh/enterprise/integrations/git-integrations)。
</Warning>

Enterprise admins 可以定义一个适用于 Enterprise 内每个组织的**基础环境**。这样，你就能集中管理 Devin 使用的工具、运行时和安全基础架构，同时仍允许各个 org 和 repo 在此基础上进行自定义配置。

<div id="the-blueprint-hierarchy">
  ## 蓝图层级
</div>

Devin 的环境配置采用三级层级结构，下一层级基于上一层级构建：

```
+-----------------------------------------+
|  Enterprise Blueprint                   |
|  Python 3.12, Node 20, security tools   |
+-----------------------------------------+
|  Organization Blueprint                 |
|  private npm registry, team linting     |
+-----------------------------------------+
|  Repository Blueprint                   |
|  npm install, project-specific config   |
+-----------------------------------------+
```

| Tier    | Who manages it | Scope     |
| ------- | -------------- | --------- |
| **企业版** | 企业管理员          | 所有组织和所有仓库 |
| **组织**  | 组织管理员          | 该组织中的所有仓库 |
| **仓库**  | 组织管理员或仓库配置     | 单个仓库      |

这种关系是**叠加式**的：组织和仓库蓝图是在企业蓝图的基础上继续构建的，而不是替代它。每次构建时，都会先运行企业蓝图，以建立基线环境。接着运行组织蓝图，添加团队特定的配置。最后，再运行各个仓库的蓝图，完成项目特定的设置。

有关组织蓝图和仓库蓝图之间关系的说明，请参阅 [蓝图作用域](/zh/onboard-devin/environment/blueprints#blueprint-scope)。

<div id="configuring-the-enterprise-blueprint">
  ## 配置企业蓝图
</div>

前往 **设置 > Devin 的基础环境**，定义企业蓝图。其格式与组织 和 仓库 蓝图相同，包含 `initialize`、`maintenance` 和 `knowledge` 三个部分。企业蓝图和 组织 蓝图还支持 [`post-build`](/zh/onboard-devin/environment/blueprint-reference#post-build) 部分，用于在所有代码仓库完成克隆并设置完毕后运行命令。

在每次构建期间，企业蓝图都会**最先**运行，先于 组织 和 仓库 蓝图。这意味着在企业级安装的工具和运行时可供所有下游蓝图使用。

<div id="what-to-put-in-the-enterprise-blueprint">
  ## 企业蓝图中应包含的内容
</div>

企业蓝图适用于**每个组织**都需要的工具和配置。常见用例：

<div id="standard-language-runtimes">
  ### 标准语言运行时
</div>

在整个企业范围内统一固定语言版本，确保每个团队都使用相同的工具链：

```yaml theme={null}
initialize:
  - name: "Install Python 3.12"
    uses: github.com/actions/setup-python@v5
    with:
      python-version: "3.12"

  - name: "Install Node.js 20"
    uses: github.com/actions/setup-node@v4
    with:
      node-version: "20"

  - name: "Install Go 1.22"
    uses: github.com/actions/setup-go@v5
    with:
      go-version: "1.22"
```

<div id="security-tools-and-compliance-scanning">
  ### 安全工具与合规扫描
</div>

安装各项目都必须使用的扫描和审计工具：

```yaml theme={null}
initialize:
  - name: "Install security tools"
    run: |
      npm install -g snyk
      pip install safety bandit
      curl -sfL https://raw.githubusercontent.com/aquasecurity/trivy/main/contrib/install.sh | sh
```

<div id="internal-cli-tools-and-utilities">
  ### 内部 CLI 工具和实用程序
</div>

将公司专用工具分发到各个环境中：

```yaml theme={null}
initialize:
  - name: "Install internal CLI"
    run: |
      curl -L https://internal.example.com/cli/latest/linux-amd64 \
        -o /usr/local/bin/internal-cli
      chmod +x /usr/local/bin/internal-cli
```

<div id="shared-package-registry-configuration">
  ### 共享软件包仓库配置
</div>

将软件包管理器配置为使用你的内部仓库：

```yaml theme={null}
initialize:
  - name: "Configure internal registries"
    run: |
      npm config set registry https://npm.internal.example.com/
      pip config set global.index-url https://pypi.internal.example.com/simple/
```

<div id="corporate-proxy-and-certificate-setup">
  ### 企业代理与证书设置
</div>

安装企业 CA 证书并配置代理设置：

```yaml theme={null}
initialize:
  - name: "Install corporate certificates"
    run: |
      cp "$FILE_CORPORATE_CA_CERT" /usr/local/share/ca-certificates/corporate-ca.crt
      update-ca-certificates
      echo 'export NODE_EXTRA_CA_CERTS=/usr/local/share/ca-certificates/corporate-ca.crt' >> ~/.bashrc
```

<div id="how-tiers-interact">
  ## 各层级如何协同
</div>

在构建过程中，每个层级的步骤都会按固定顺序执行。较前层级的输出可供后续层级使用。在企业级安装的工具无需重新安装，即可直接在组织和仓库蓝图中使用。

一次构建会按以下顺序创建新的快照：

```
1. Enterprise blueprint (runs in ~):
   a. initialize
   b. maintenance
2. Organization blueprint (runs in ~):
   a. initialize
   b. maintenance
3. Clone all repositories (up to 10 concurrent)
4. For each configured repo, in the order shown in Settings
   (runs in ~/repos/<repo-name>):
   a. initialize
   b. maintenance
5. post-build (org- and enterprise-level; runs in ~)
6. Health check, then snapshot is saved
```

`post-build` 步骤会在每个仓库都完成克隆和设置后运行，因此可以对完整组装好的环境进行验证。`post-build` 步骤返回非零退出代码会导致构建失败，并且不会生成快照。请参阅蓝图参考中的 [`post-build`](/zh/onboard-devin/environment/blueprint-reference#post-build)。

各层级是**叠加生效**的：仓库蓝图可以使用由组织或企业蓝图安装的工具。较低层级不能覆盖较高层级已设置的内容。构建通常需要 5–15 分钟。单个命令会在 1 小时后超时。

所有层级中的 `knowledge` 条目都会被汇总并提供给 Devin。如果多个层级定义了同名的 `knowledge` 条目，它们都会一并包含在内。它们不会相互覆盖。

<div id="enterprise-secrets">
  ## 企业级 secrets
</div>

Enterprise admins 可以在企业级定义 secrets。这些 secrets 会在**每一次**构建和**每一次**会话期间，作为环境变量在**所有**组织中可用，包括企业级、组织 级和 repo 蓝图步骤。

对于整个公司范围内共享的凭据，请使用企业级 secrets：

* 内部软件包仓库令牌
* 企业代理身份验证
* 内部服务共用的 API key
* 企业工具的许可证密钥

企业级 secrets 在企业蓝图编辑器中的 **Secrets** 选项卡内管理。前往 **设置 > Devin 的基础环境** 并切换到 **Secrets** 选项卡，即可在管理蓝图配置的同时管理企业级 secrets。

<Info>
  管理企业级 secrets 需要 **ManageAccountResources** 权限。
</Info>

<Warning>
  如果某个组织 secret 与企业级 secret 同名，则组织 secret 优先生效。这样各个组织就可以在需要时覆盖企业级默认设置。
</Warning>

<div id="enterprise-wide-rebuilds">
  ## 企业范围内重建
</div>

企业管理员可以触发一次重建，并将其级联到**所有组织**。这在以下情况下很有用：

* 你更新了企业蓝图 (例如，将 Python 从 3.11 升级到 3.12)
* 你轮换了企业密钥
* 你需要在安全补丁后刷新所有环境

在 **设置 > Devin 的基础环境** 中触发企业范围内重建。每个组织的构建都会使用更新后的企业蓝图运行，随后再应用其各自的组织蓝图和仓库蓝图。

<Info>
  企业范围内重建会遵循每个组织各自的构建队列。如果某个组织已经有构建正在进行中，由企业触发的重建会排在其后。如果某个构建已经在队列中，它会被取消
  并由企业触发的重建替代。
</Info>

<div id="managing-rollout-across-organizations">
  ## 跨组织管理 rollout
</div>

企业管理员可控制哪些组织使用声明式配置，哪些组织继续使用经典环境设置。**Rollout** 页面可帮助你查看所有组织的采用状态，并逐步迁移各个组织。

有关 rollout 状态、按组织覆盖以及分阶段迁移 playbook 的详细说明，请参阅[迁移你的企业](/zh/enterprise/environment-management/rollout)。

<div id="related-pages">
  ## 相关页面
</div>

* [迁移企业](/zh/enterprise/environment-management/rollout)
* [最佳实践](/zh/enterprise/environment-management/best-practices)
* [蓝图参考](/zh/onboard-devin/environment/blueprint-reference)
* [声明式环境配置](/zh/onboard-devin/environment/blueprints)
