npm package: @rgaa-checker/cli
Description: CLI pour auditer l'accessibilité RGAA de vos sites web - Intégration CI/CD
Author: RGAA Checker
Latest version: 1.0.0

# @rgaa-checker/cli

CLI pour auditer l'accessibilité RGAA de vos sites web. Intégrez les audits d'accessibilité dans vos pipelines CI/CD.

## Installation

```bash
npm install -g @rgaa-checker/cli
```

## Configuration

### Obtenir une clé API

1. Connectez-vous sur [rgaa-checker.com](https://rgaa-checker.com)
2. Accédez à **Tableau de bord > Clés API**
3. Créez une nouvelle clé API

### Configurer la clé

```bash
# Option 1: Commande CLI
rgaa-checker auth set-key rgaa_ci_votre_cle

# Option 2: Variable d'environnement
export RGAA_CHECKER_API_KEY=rgaa_ci_votre_cle
```

## Utilisation

### Scan simple

```bash
rgaa-checker scan https://example.com
```

### Avec seuil personnalisé

```bash
rgaa-checker scan https://example.com --threshold 90
```

### Sortie JSON

```bash
rgaa-checker scan https://example.com --format json
```

### Sortie JUnit (pour CI)

```bash
rgaa-checker scan https://example.com --format junit --output report.xml
```

### Avec authentification Basic

```bash
rgaa-checker scan https://staging.example.com \
  --basic-user admin \
  --basic-pass secret
```

## Fichier de configuration

Créez un fichier `.rgaachecker.json` à la racine de votre projet :

```bash
rgaa-checker init
```

Exemple de configuration :

```json
{
  "url": "https://staging.example.com",
  "threshold": 80,
  "timeout": 60000,
  "auth": {
    "type": "basic",
    "username": "$BASIC_USER",
    "password": "$BASIC_PASS"
  }
}
```

Les variables préfixées par `$` sont remplacées par les variables d'environnement correspondantes.

## Intégration CI/CD

### GitHub Actions

```yaml
name: Accessibility Check

on: [push, pull_request]

jobs:
  rgaa-audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Install RGAA Checker CLI
        run: npm install -g @rgaa-checker/cli

      - name: Run Accessibility Audit
        env:
          RGAA_CHECKER_API_KEY: ${{ secrets.RGAA_CHECKER_API_KEY }}
        run: rgaa-checker scan ${{ vars.STAGING_URL }} --threshold 80
```

### GitLab CI

```yaml
accessibility:
  stage: test
  image: node:20
  script:
    - npm install -g @rgaa-checker/cli
    - rgaa-checker scan $CI_ENVIRONMENT_URL --threshold 80 --format junit --output accessibility.xml
  artifacts:
    reports:
      junit: accessibility.xml
  variables:
    RGAA_CHECKER_API_KEY: $RGAA_CHECKER_API_KEY
```

### Jenkins

```groovy
pipeline {
    agent any
    environment {
        RGAA_CHECKER_API_KEY = credentials('rgaa-checker-api-key')
    }
    stages {
        stage('Accessibility') {
            steps {
                sh 'npm install -g @rgaa-checker/cli'
                sh 'rgaa-checker scan ${STAGING_URL} --threshold 80'
            }
        }
    }
}
```

## Codes de sortie

| Code | Signification |
|------|---------------|
| 0 | Audit réussi (score >= seuil) |
| 1 | Audit échoué (score < seuil ou erreur) |

## Commandes

| Commande | Description |
|----------|-------------|
| `rgaa-checker scan <url>` | Lancer un audit |
| `rgaa-checker auth set-key <key>` | Configurer la clé API |
| `rgaa-checker auth status` | Afficher le statut d'authentification |
| `rgaa-checker auth logout` | Supprimer la clé API |
| `rgaa-checker init` | Créer `.rgaachecker.json` |
| `rgaa-checker config` | Afficher la configuration |

## Options de scan

| Option | Description | Défaut |
|--------|-------------|--------|
| `-t, --threshold <n>` | Score minimum (0-100) | 80 |
| `--timeout <ms>` | Timeout en ms | 60000 |
| `-f, --format <fmt>` | Format: text, json, junit | text |
| `-o, --output <file>` | Fichier de sortie | stdout |
| `--basic-user <user>` | Utilisateur Basic Auth | - |
| `--basic-pass <pass>` | Mot de passe Basic Auth | - |

## Troubleshooting

### Erreur "No API key configured"

Configurez votre clé API :

```bash
# Via CLI
rgaa-checker auth set-key rgaa_ci_votre_cle

# Ou via variable d'environnement
export RGAA_CHECKER_API_KEY=rgaa_ci_votre_cle
```

### Erreur "Invalid API key"

- Vérifiez que la clé commence par `rgaa_ci_`
- Vérifiez que la clé n'a pas été révoquée dans le dashboard
- Vérifiez l'orthographe de la variable d'environnement

### Erreur "Quota exceeded"

Les scans CI partagent le quota avec les scans web :
- Découverte : 50 scans/mois
- Pro : 500 scans/mois

Attendez le prochain mois ou passez à un plan supérieur.

### Timeout sur une SPA

Pour les applications single-page qui chargent du contenu dynamiquement :

```bash
rgaa-checker scan https://spa.example.com --timeout 120000
```

### Échec de connexion à l'API

Vérifiez votre connexion internet et que l'API est accessible :

```bash
curl -s https://rgaa-checker.com/api/ci/scan | head -1
```

### Environnement de staging protégé

Pour les environnements avec Basic Auth :

```bash
rgaa-checker scan https://staging.example.com \
  --basic-user $STAGING_USER \
  --basic-pass $STAGING_PASS
```

### URL API personnalisée (développement)

Pour pointer vers une autre instance de l'API :

```bash
export RGAA_CHECKER_API_URL=http://localhost:3000/api/ci/scan
rgaa-checker scan https://example.com
```

## Support

- Documentation : [rgaa-checker.com/guide](https://rgaa-checker.com/guide)
- Support : [contact@rgaa-checker.com](mailto:contact@rgaa-checker.com)
- GitHub : [github.com/rgaa-checker/cli](https://github.com/rgaa-checker/cli)

## Licence

MIT