---
name: configure-artifactory
description: Lee las credenciales parametrizadas y registra el servidor JFrog Artifactory en JFrog CLI de forma segura.
---

# Skill: Configurar Conexión a JFrog Artifactory

## Descripción
Lee las credenciales del archivo de configuración parametrizado y registra el servidor
en JFrog CLI. Las credenciales nunca se exponen en el chat ni en el código fuente.

## Archivo de configuración
Las credenciales se leen exclusivamente de:
```
.github/config/jfrog-config.properties
```

El archivo debe contener exactamente las siguientes claves:
```properties
JFROG_SERVER_ID=mi-servidor
JFROG_URL=https://miempresa.jfrog.io/artifactory
JFROG_USER=mi-usuario@empresa.com
JFROG_TOKEN=AKCp...token-personal
```

## Pasos de ejecución

### 1. Leer configuración (PowerShell)
```powershell
$config = @{}
Get-Content ".github/config/jfrog-config.properties" | ForEach-Object {
    if ($_ -match "^\s*([^#][^=]+)=(.+)$") {
        $config[$Matches[1].Trim()] = $Matches[2].Trim()
    }
}
$serverId  = $config["JFROG_SERVER_ID"]
$url       = $config["JFROG_URL"]
$user      = $config["JFROG_USER"]
$token     = $config["JFROG_TOKEN"]
```

### 2. Asegurar que $jfCmd esté disponible en la sesión
```powershell
# Si $jfCmd no está definido (skill ejecutado de forma aislada), detectarlo
if (-not $jfCmd) {
    if (Get-Command jfrog -ErrorAction SilentlyContinue) { $jfCmd = "jfrog" }
    elseif (Get-Command jf -ErrorAction SilentlyContinue) { $jfCmd = "jf" }
    else { Write-Error "JFrog CLI no encontrado. Ejecuta primero 01-validate-prerequisites."; exit 1 }
}
```

### 3. Eliminar configuración previa del mismo server-id (evita conflictos)
```powershell
& $jfCmd config remove $serverId --quiet 2>$null
```

### 4. Registrar el servidor en JFrog CLI
```powershell
& $jfCmd config add $serverId `
  --url=$url `
  --user=$user `
  --access-token=$token `
  --interactive=false
```

### 5. Verificar conexión
```powershell
& $jfCmd config show $serverId
& $jfCmd rt ping --server-id=$serverId
```

## Resultado esperado
```
Server ID:   mi-servidor
URL:         https://miempresa.jfrog.io/artifactory
User:        mi-usuario@empresa.com
OK
```

## Advertencias de seguridad
- El token **no** debe commitearse al repositorio.
- `jfrog-config.properties` debe aparecer en `.gitignore`.
- Si el ping falla, verificar que la URL no tenga `/` al final y que el token no haya expirado.
