跳转到主要内容
要在快照设置期间使用制品,您需要在仓库配置过程中完成对这些制品的身份验证。 如果您需要存储用于制品身份验证的机密或凭据,可以将它们直接保存在机器的文件系统中(例如写入文件,或通过导出环境变量),也可以使用 Devin 的 Secret Manager。下面分别介绍 AWS、Azure 和 JFrog 的配置方式。 如果您的制品位于私有网络中,请参阅 VPC 部署

Devin 机器设置

要与制品库集成,你需要为 Devin 机器配置相应的凭证和工具。主要有两种方式可以完成此操作:
  1. 使用 Devin 内置的 Terminal,在机器上直接安装和配置制品库工具。
  2. 使用 Setup Agent 选项卡(在进行仓库设置时,位于 Devin 的 Machine 视图中间列),让 Devin 协助完成设置。
Example of using Jfrog Repo Setup

使用内置 Terminal 进行 Jfrog 仓库设置的示例

JFrog Artifactory

步骤一:下载 CLI

curl -fL https://getcli.jfrog.io | sh
sudo mv jfrog /usr/local/bin/
jfrog config add
jfrog rt config

步骤 2:下载制品

#!/bin/bash

# 为 Artifactory 实例和制品详情设置变量
ARTIFACTORY_URL="https://your-artifactory-instance.jfrog.io/artifactory"  # 修改为您的 Artifactory URL
REPO="my-repository"  # 替换为您的仓库名称
ARTIFACT_PATH="my-artifact/my-package/1.0.0/my-package-1.0.0.jar"  # 制品在 Artifactory 中的路径
OUTPUT_DIR="./downloads"  # 保存下载制品的目录

## 步骤 1:下载制品
echo "Downloading artifact $ARTIFACT_PATH from $ARTIFACTORY_URL"
jfrog rt dl "$REPO/$ARTIFACT_PATH" "$OUTPUT_DIR/"

## 步骤 2:检查下载是否成功
if [ $? -eq 0 ]; then
  echo "Artifact downloaded successfully to $OUTPUT_DIR/"
else
  echo "Failed to download the artifact."
  exit 1
fi

AWS Code Artifact

步骤 1:下载 CLI

#!/bin/bash

# 变量
ROLE_NAME="robot-artifact-iam-role"
POLICY_ARN="arn:aws:iam::aws:policy/AWSArtifactReadOnlyAccess"
KEY_PAIR_NAME="robot-artifact-key-pair"

# 步骤 1:为 AWS Artifact 创建 IAM 角色
echo "Creating IAM Role: $ROLE_NAME"
aws iam create-role \
  --role-name "$ROLE_NAME" \
  --assume-role-policy-document '{
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Allow",
        "Action": "sts:AssumeRole",
        "Principal": {
          "Service": "artifact.amazonaws.com"
        }
      }
    ]
  }' > create_role_output.json

# 检查 IAM 角色是否创建成功
if [ $? -eq 0 ]; then
  echo "IAM Role $ROLE_NAME created successfully."
else
  echo "Failed to create IAM Role $ROLE_NAME."
  exit 1
fi

# 步骤 2:将策略附加到角色以访问 Artifact
echo "Attaching AWSArtifactReadOnlyAccess policy to IAM Role $ROLE_NAME"
aws iam attach-role-policy \
  --role-name "$ROLE_NAME" \
  --policy-arn "$POLICY_ARN"

if [ $? -eq 0 ]; then
  echo "Policy attached successfully."
else
  echo "Failed to attach policy."
  exit 1
fi

# 步骤 3:创建 IAM 访问密钥(用于编程访问)
echo "Creating Access Keys for IAM Role: $ROLE_NAME"
aws iam create-access-key \
  --user-name "$ROLE_NAME" \
  > access_keys_output.json

# 检查密钥是否已创建
if [ $? -eq 0 ]; then
  echo "Access keys created successfully."
  ACCESS_KEY_ID=$(jq -r '.AccessKey.AccessKeyId' access_keys_output.json)
  SECRET_ACCESS_KEY=$(jq -r '.AccessKey.SecretAccessKey' access_keys_output.json)

  echo "Access Key ID: $ACCESS_KEY_ID"
  echo "Secret Access Key: $SECRET_ACCESS_KEY"
else
  echo "Failed to create access keys."
  exit 1
fi

# 步骤 4:显示 IAM 角色和访问密钥信息
echo "IAM Role $ROLE_NAME has been created with the policy: $POLICY_ARN"
echo "Access Key ID: $ACCESS_KEY_ID"
echo "Secret Access Key: $SECRET_ACCESS_KEY"

步骤 2:下载制品

#!/bin/bash

# Variables
ARTIFACT_ID="example-artifact-id"  # 替换为实际的 Artifact ID
# Step 1: Get Artifact URL for downloading the report
echo "Fetching artifact download URL for Artifact ID: $ARTIFACT_ID"
DOWNLOAD_URL=$(aws artifact describe-artifact \
  --artifact-id "$ARTIFACT_ID" \
  --query "artifactDetails[0].downloadUrl" \
  --output text)

Azure Artifacts

第 1 步:下载 CLI

# 安装 Microsoft 软件包存储库
wget https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
rm packages-microsoft-prod.deb

# 更新软件包列表并安装 .NET SDK
sudo apt update
sudo apt install -y dotnet-sdk-8.0
dotnet tool install -g AzureArtifactsCredentialProvider

步骤 2:生成 PAT

接下来,你需要生成一个个人访问令牌(PAT,Personal Access Token)。
  1. 登录你的 Azure DevOps 门户
  2. 在右上角点击你的头像并选择 Security(安全)
  3. Personal Access Tokens(个人访问令牌) 部分,点击 New Token(新建令牌)
  4. 为令牌设置权限范围。你至少需要 “Packaging (read)” 权限范围才能访问 Azure Artifacts。
  5. 将你的 PAT 安全保存好,因为之后将无法再次查看它。

第 3 步:配置 .npmrc 文件

echo "//pkgs.dev.azure.com/your-organization-name/_packaging/your-feed-name/npm/registry/:username=AzureDevOps" >> ~/.npmrc
echo "//pkgs.dev.azure.com/your-organization-name/_packaging/your-feed-name/npm/registry/:_password=$(echo -n your-PAT | base64)" >> ~/.npmrc
如果你使用 NuGet,需要以下内容:
mkdir -p ~/.nuget
cat <<EOL > ~/.nuget/nuget.config
<configuration>
  <packageSources>
    <add key="Azure Artifacts" value="https://pkgs.dev.azure.com/your-organization-name/_packaging/your-feed-name/nuget/v3/index.json" />
  </packageSources>
  <packageSourceCredentials>
    <Azure_Artifacts>
      <add key="Username" value="AzureDevOps" />
      <add key="ClearTextPassword" value="your-PAT" />
    </Azure_Artifacts>
  </packageSourceCredentials>
</configuration>
EOL
如果你需要从 Azure 获取 Docker 制品:
echo your-PAT | docker login https://your-organization-name.azurecr.io --username your-username --password-stdin
如需开始使用 Devin Enterprise,请联系我们的企业销售团队