Zum Hauptinhalt springen
Um Artefakte während der Snapshot-Einrichtung zu verwenden, müssen Sie sich im Rahmen der Repository-Konfiguration bei ihnen authentifizieren. Wenn Sie zur Laufzeit einer Sitzung Zugriff auf ein Artefakt benötigen, verwenden Sie den Secret Store in den Devin Settings. Unten finden Sie Abschnitte für AWS, Azure und Jfrog. Wenn sich Ihre Artefakte in einem privaten Netzwerk befinden, lesen Sie bitte den Abschnitt VPC Deployment.

AWS CodeArtifact

Schritt 1: Herunterladen der 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"

# Schritt 1: IAM-Rolle für AWS Artifact erstellen
echo "Erstelle IAM-Rolle: $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

# Prüfen, ob IAM-Rolle erfolgreich erstellt wurde
if [ $? -eq 0 ]; then
  echo "IAM-Rolle $ROLE_NAME erfolgreich erstellt."
else
  echo "Fehler beim Erstellen der IAM-Rolle $ROLE_NAME."
  exit 1
fi

# Schritt 2: Policy für Artifact-Zugriff an Rolle anhängen
echo "Hänge AWSArtifactReadOnlyAccess-Policy an IAM-Rolle $ROLE_NAME an"
aws iam attach-role-policy \
  --role-name "$ROLE_NAME" \
  --policy-arn "$POLICY_ARN"

if [ $? -eq 0 ]; then
  echo "Policy erfolgreich angehängt."
else
  echo "Fehler beim Anhängen der Policy."
  exit 1
fi

# Schritt 3: IAM-Zugriffsschlüssel erstellen (für programmatischen Zugriff)
echo "Erstelle Zugriffsschlüssel für IAM-Rolle: $ROLE_NAME"
aws iam create-access-key \
  --user-name "$ROLE_NAME" \
  > access_keys_output.json

# Prüfen, ob Schlüssel erstellt wurden
if [ $? -eq 0 ]; then
  echo "Zugriffsschlüssel erfolgreich erstellt."
  ACCESS_KEY_ID=$(jq -r '.AccessKey.AccessKeyId' access_keys_output.json)
  SECRET_ACCESS_KEY=$(jq -r '.AccessKey.SecretAccessKey')

  echo "Zugriffsschlüssel-ID: $ACCESS_KEY_ID"
  echo "Geheimer Zugriffsschlüssel: $SECRET_ACCESS_KEY"
else
  echo "Fehler beim Erstellen der Zugriffsschlüssel."
  exit 1
fi

# Schritt 4: IAM-Rollen- und Zugriffsschlüssel-Informationen anzeigen
echo "IAM-Rolle $ROLE_NAME wurde mit der Policy erstellt: $POLICY_ARN"
echo "Zugriffsschlüssel-ID: $ACCESS_KEY_ID"
echo "Geheimer Zugriffsschlüssel: $SECRET_ACCESS_KEY"
Devin Enterprise Architecture

AWS-Repository-Einrichtung

Schritt 2: Artefakt herunterladen
#!/bin/bash

# Variablen
ARTIFACT_ID="example-artifact-id"  # Durch die tatsächliche Artefakt-ID ersetzen
# Schritt 1: Artefakt-URL zum Herunterladen des Berichts abrufen
echo "Rufe Artefakt-Download-URL für Artefakt-ID ab: $ARTIFACT_ID"
DOWNLOAD_URL=$(aws artifact describe-artifact \
  --artifact-id "$ARTIFACT_ID" \
  --query "artifactDetails[0].downloadUrl" \
  --output text)

JFrog Artifactory

Schritt 1: CLI herunterladen
curl -fL https://getcli.jfrog.io | sh
sudo mv jfrog /usr/local/bin/
jfrog config add
jfrog rt config
Devin Enterprise Architecture

JFrog-Repository-Einrichtung

Schritt 2: Artefakt herunterladen
#!/bin/bash

# Variablen für Ihre Artifactory-Instanz und Artefaktdetails festlegen
ARTIFACTORY_URL="https://your-artifactory-instance.jfrog.io/artifactory"  # Ändern Sie dies auf Ihre Artifactory-URL
REPO="my-repository"  # Ersetzen Sie dies durch Ihren Repository-Namen
ARTIFACT_PATH="my-artifact/my-package/1.0.0/my-package-1.0.0.jar"  # Pfad zu Ihrem Artefakt in Artifactory
OUTPUT_DIR="./downloads"  # Verzeichnis zum Speichern des heruntergeladenen Artefakts

## Schritt 1: Artefakt herunterladen
echo "Lade Artefakt $ARTIFACT_PATH von $ARTIFACTORY_URL herunter"
jfrog rt dl "$REPO/$ARTIFACT_PATH" "$OUTPUT_DIR/"

## Schritt 2: Prüfen, ob der Download erfolgreich war
if [ $? -eq 0 ]; then
  echo "Artefakt erfolgreich nach $OUTPUT_DIR/ heruntergeladen"
else
  echo "Fehler beim Herunterladen des Artefakts."
  exit 1
fi

Azure Artifacts

Schritt 1: Herunterladen der CLI
# Microsoft-Paketrepository installieren
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

# Paketlisten aktualisieren und .NET SDK installieren
sudo apt update
sudo apt install -y dotnet-sdk-8.0
dotnet tool install -g AzureArtifactsCredentialProvider
Devin Enterprise Architecture

Azure-Repository-Einrichtung

Schritt 2: Erstellen eines PAT Als Nächstes erstellen Sie ein persönliches Zugriffstoken (PAT).
  1. Melden Sie sich bei Ihrem Azure DevOps-Portal an.
  2. Klicken Sie oben rechts auf Ihr Profil und wählen Sie Security.
  3. Klicken Sie im Abschnitt Personal Access Tokens auf New Token.
  4. Legen Sie die Berechtigungen (Scopes) für das Token fest. Sie benötigen mindestens die Berechtigung “Packaging (read)”, um auf Azure Artifacts zuzugreifen.
  5. Speichern Sie Ihr PAT sicher, da es später nicht mehr angezeigt wird.
Schritt 3: Datei .npmrc konfigurieren:
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
Falls Sie mit NuGet arbeiten, benötigen Sie Folgendes:
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
Wenn Sie Docker-Artefakte von Azure benötigen:
echo your-PAT | docker login https://your-organization-name.azurecr.io --username your-username --password-stdin
Um mit Devin Enterprise zu beginnen, wenden Sie sich an unser Enterprise-Vertriebsteam.