Vai al contenuto principale
Per utilizzare gli artifact durante la configurazione dello snapshot, devi autenticarti con essi durante la configurazione del repository. Se hai bisogno di accedere a un artifact durante il runtime della sessione, utilizza il secrets store all’interno di Devin Settings. Di seguito trovi le sezioni per AWS, Azure e Jfrog. Se i tuoi artifact si trovano in una rete privata, consulta VPC Deployment

AWS CodeArtifact

Passaggio 1: Scaricare la 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"

# Passaggio 1: Creare il ruolo IAM per AWS Artifact
echo "Creazione ruolo IAM: $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

# Verificare se il ruolo IAM è stato creato correttamente
if [ $? -eq 0 ]; then
  echo "Ruolo IAM $ROLE_NAME creato correttamente."
else
  echo "Creazione del ruolo IAM $ROLE_NAME non riuscita."
  exit 1
fi

Passaggio 2: Associare la policy al ruolo per l'accesso ad Artifact
echo "Associazione della policy AWSArtifactReadOnlyAccess al ruolo IAM $ROLE_NAME"
aws iam attach-role-policy \
  --role-name "$ROLE_NAME" \
  --policy-arn "$POLICY_ARN"

if [ $? -eq 0 ]; then
  echo "Policy associata correttamente."
else
  echo "Associazione della policy non riuscita."
  exit 1
fi

Passaggio 3: Creare le chiavi di accesso IAM (per l'accesso programmatico)
echo "Creazione chiavi di accesso per il ruolo IAM: $ROLE_NAME"
aws iam create-access-key \
  --user-name "$ROLE_NAME" \
  > access_keys_output.json

# Verificare se le chiavi sono state create
if [ $? -eq 0 ]; then
  echo "Chiavi di accesso create correttamente."
  ACCESS_KEY_ID=$(jq -r '.AccessKey.AccessKeyId' access_keys_output.json)
  SECRET_ACCESS_KEY=$(jq -r '.AccessKey.SecretAccessKey')

  echo "ID chiave di accesso: $ACCESS_KEY_ID"
  echo "Chiave di accesso segreta: $SECRET_ACCESS_KEY"
else
  echo "Creazione delle chiavi di accesso non riuscita."
  exit 1
fi

Passaggio 4: Visualizzare le informazioni sul ruolo IAM e sulle chiavi di accesso
echo "Il ruolo IAM $ROLE_NAME è stato creato con la policy: $POLICY_ARN"
echo "ID chiave di accesso: $ACCESS_KEY_ID"
echo "Chiave di accesso segreta: $SECRET_ACCESS_KEY"
Devin Enterprise Architecture

Configurazione del repository AWS

Passaggio 2: Scaricamento dell’artifact
#!/bin/bash

# Variabili
ARTIFACT_ID="example-artifact-id"  # Sostituire con l'ID Artifact effettivo
# Passaggio 1: Ottenere l'URL dell'Artifact per scaricare il report
echo "Recupero URL di download dell'artifact per ID Artifact: $ARTIFACT_ID"
DOWNLOAD_URL=$(aws artifact describe-artifact \
  --artifact-id "$ARTIFACT_ID" \
  --query "artifactDetails[0].downloadUrl" \
  --output text)

Jfrog Artifactory

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

Configurazione del repository JFrog

Passaggio 2: Scaricare l’artifact
#!/bin/bash

# Imposta le variabili per l'istanza Artifactory e i dettagli dell'artefatto
ARTIFACTORY_URL="https://your-artifactory-instance.jfrog.io/artifactory"  # Sostituisci con l'URL della tua istanza Artifactory
REPO="my-repository"  # Sostituisci con il nome del repository
ARTIFACT_PATH="my-artifact/my-package/1.0.0/my-package-1.0.0.jar"  # Percorso dell'artefatto in Artifactory
OUTPUT_DIR="./downloads"  # Directory in cui salvare l'artefatto scaricato

## Passaggio 1: Scarica l'artefatto
echo "Download dell'artefatto $ARTIFACT_PATH da $ARTIFACTORY_URL in corso"
jfrog rt dl "$REPO/$ARTIFACT_PATH" "$OUTPUT_DIR/"

## Passaggio 2: Verifica il completamento del download
if [ $? -eq 0 ]; then
  echo "Artefatto scaricato correttamente in $OUTPUT_DIR/"
else
  echo "Download dell'artefatto non riuscito."
  exit 1
fi

Azure Artifacts

Passaggio 1: Scaricare la CLI
# Installa il repository dei pacchetti 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

# Aggiorna l'elenco dei pacchetti e installa .NET SDK
sudo apt update
sudo apt install -y dotnet-sdk-8.0
dotnet tool install -g AzureArtifactsCredentialProvider
Architettura Enterprise di Devin

Configurazione di Azure Repo

Passaggio 2: Generazione di un PAT Successivamente, dovrai generare un personal access token (PAT).
  1. Accedi al tuo portale Azure DevOps.
  2. Nell’angolo in alto a destra, fai clic sul tuo profilo e seleziona Security.
  3. Nella sezione Personal Access Tokens, fai clic su New Token.
  4. Imposta gli scope per il token. Avrai bisogno almeno dell’ambito “Packaging (read)” per accedere ad Azure Artifacts.
  5. Salva il tuo PAT in modo sicuro, poiché non potrai visualizzarlo di nuovo.
Passaggio 3: Configurazione del file .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
Se stai lavorando con NuGet, avrai bisogno di quanto segue:
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
Se ti servono artefatti Docker da Azure:
echo your-PAT | docker login https://your-organization-name.azurecr.io --username your-username --password-stdin
Per iniziare con Devin Enterprise, contatta il nostro team di vendita enterprise.