メインコンテンツへスキップ
スナップショットのセットアップ時にアーティファクトを使用するには、リポジトリの設定時に対象のアーティファクトに対する認証を行う必要があります。 アーティファクト認証用のシークレットを保存する必要がある場合は、マシンのファイルシステム上に直接保存する(例: ファイルに保存する、または環境変数としてエクスポートする)か、Devin シークレットマネージャー を使用できます。以下に、AWS、Azure、JFrog 向けのセクションがあります。 アーティファクトがプライベートネットワーク上にある場合は、VPC(Virtual Private Cloud)デプロイ を参照してください。

Devin マシンのセットアップ

アーティファクトリポジトリと連携するには、適切な認証情報とツールを使用して Devin マシンを設定する必要があります。これを行う主な方法は 2 つあります。
  1. Devin 内の統合ターミナルを使用して、アーティファクトリポジトリ用のツールをマシン上に直接インストールおよび設定します。
  2. (リポジトリ設定時に Devin の Machine の中央カラムにある)Setup Agent タブを使用し、セットアップを支援するよう Devin に指示します。
Example of using Jfrog Repo Setup

統合ターミナルを使用した 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

# 変数
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

# 変数
ARTIFACT_ID="example-artifact-id"  # 実際のArtifact IDに置き換えてください
# ステップ1: レポートをダウンロードするためのArtifact URLをGET
echo "Artifact ID: $ARTIFACT_ID のアーティファクトダウンロードURLを取得中"
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 の生成

次に、Personal Access Token(PAT)を生成する必要があります。
  1. Azure DevOps ポータル にログインします。
  2. 画面右上のプロフィールをクリックし、Security を選択します。
  3. Personal Access Tokens セクションで、New Token をクリックします。
  4. トークンのスコープを設定します。Azure Artifacts にアクセスするには、少なくとも “Packaging (read)” スコープが必要です。
  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 のご利用を開始するには、弊社のエンタープライズ営業チームまでお問い合わせください。