跳转到主要内容
要在快照设置期间使用制品,你需要在配置代码仓库时对这些制品进行身份验证。 如果你需要为制品身份验证存储机密,可以将它们直接保存到机器的文件系统中(例如保存在文件中,或通过导出环境变量),或者使用 Devin 的 Secret Manager。以下是针对 AWS、Azure 和 JFrog 的相关说明。 如果你的制品位于私有网络,请参阅 VPC 部署

Devin 机器设置

要与制品仓库集成,你需要为 Devin 机器配置相应的凭据和工具。主要有两种方式可以完成:
  1. 在 Devin 中使用集成终端(Terminal),直接在机器上安装和配置制品仓库工具。
  2. 使用 Setup Agent 选项卡(在仓库设置时位于 Devin 机器界面的中间列),并通过提示让 Devin 协助完成设置。
使用集成终端进行 Jfrog 仓库设置的示例

使用集成终端进行 Jfrog 仓库设置的示例

Jfrog Artifactory

第 1 步:下载 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 "正在从 $ARTIFACTORY_URL 下载制品 $ARTIFACT_PATH"
jfrog rt dl "$REPO/$ARTIFACT_PATH" "$OUTPUT_DIR/"

## 步骤 2:检查下载是否成功
if [ $? -eq 0 ]; then
  echo "制品已成功下载到 $OUTPUT_DIR/"
else
  echo "制品下载失败。"
  exit 1
fi

AWS CodeArtifact

第 1 步:下载 CLI

#!/bin/bash

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

# Step 1: Create IAM Role for AWS Artifact
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

# Check if IAM Role was created successfully
if [ $? -eq 0 ]; then
  echo "IAM Role $ROLE_NAME created successfully."
else
  echo "Failed to create IAM Role $ROLE_NAME."
  exit 1
fi

# Step 2: Attach Policy to Role for Artifact Access
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

# Step 3: Create IAM Access Keys (for programmatic access)
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_KEY_ID=$(jq -r '.AccessKey.AccessKeyId' access_keys_output.json)
  SECRET_ACCESS_KEY=$(jq -r '.AccessKey.SecretAccessKey' access_keys_output.json)

  echo "访问密钥 ID:$ACCESS_KEY_ID"
  echo "私密访问密钥:$SECRET_ACCESS_KEY"
else
  echo "创建访问密钥失败。"
  exit 1
fi

# Step 4: Display the IAM Role and Access Key Information
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

# 变量
ARTIFACT_ID="example-artifact-id"  # 替换为实际的 Artifact ID
# 步骤 1:获取用于下载报告的 Artifact URL
echo "正在获取 Artifact ID 的 Artifact 下载 URL:$ARTIFACT_ID"
DOWNLOAD_URL=$(aws artifact describe-artifact \
  --artifact-id "$ARTIFACT_ID" \
  --query "artifactDetails[0].downloadUrl" \
  --output text)

Azure Artifacts

第 1 步:下载 CLI

# Install Microsoft package repository
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)。
  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,请联系我们的企业销售团队