
# Automatizare

Automatizarea Rudel împiedică acumularea la nesfârșit a sandboxurilor temporare. Un eveniment WP-Cron orar, `rudel_scheduled_cleanup`, poate:

- să aplice politica de curățare (expirare, vechime și inactivitate)
- să curețe ramurile îmbinate
- să raporteze sandboxurile expirate sau aproape de expirare

## Configurare

Automatizarea citește aceste chei din opțiunea `rudel_config`. Lista completă este în [Configurare](https://rudel.inline0.dev/ro/docs/configuration).

| Cheie | Scop | Implicit |
|-----|---------|---------|
| `auto_cleanup_enabled` | Aplică politica de curățare la fiecare eveniment | `1` |
| `auto_cleanup_merged` | Elimină și sandboxurile cu ramuri de worktree Git îmbinate | `0` |
| `expiring_environment_notice_days` | Raportează sandboxurile care expiră în N zile | `0` |
| `max_age_days` | Limita de vechime folosită de politica de curățare | `0` |
| `max_idle_days` | Limita de inactivitate folosită de politica de curățare | `0` |
| `default_ttl_days` | Expirarea atribuită sandboxurilor noi | `0` |

Cu valorile implicite, evenimentul este programat, dar elimină doar sandboxurile cu o expirare explicită în trecut, deoarece nu este definită nicio limită de vechime sau inactivitate și niciun TTL implicit.

## WP-Cron

Activarea programează evenimentul, iar fiecare solicitare verifică din nou programarea: evenimentul există cât timp oricare dintre `auto_cleanup_enabled`, `auto_cleanup_merged` sau `expiring_environment_notice_days` este diferit de zero și este eliminat în caz contrar. Dezactivarea îl elimină.

Nu există comenzi de automatizare. Modificați setările în `rudel_config`:

```bash
wp option update rudel_config '{"auto_cleanup_enabled":1,"max_idle_days":7,"expiring_environment_notice_days":2}' --format=json
wp rudel status
```

`wp rudel status` afișează `Auto cleanup`, `Auto cleanup merged`, `Expiry notice days` și `Automation scheduled`.

## Rapoarte de expirare

Când este setat `expiring_environment_notice_days`, fiecare rulare colectează sandboxurile cu o `expires_at` în următoarele atâtea zile și le transmite acțiunii `rudel_after_automation_expiring_environments`, împărțite în `expiring` și `expired`. Rudel nu trimite notificări; conectați acțiunea pentru a-i notifica pe proprietari.

```php
add_action(
    'rudel_after_automation_expiring_environments',
    function ( array $report ): void {
        foreach ( $report['expiring'] as $sandbox ) {
            error_log( $sandbox['id'] . ' expires at ' . $sandbox['expires_at'] );
        }
    }
);
```

## Rularea acum

Folosiți curățarea manuală pentru rulări locale sau CI deterministe:

```bash
wp rudel cleanup --dry-run
wp rudel cleanup
```

Din PHP, `Rudel::run_automation()` rulează aceleași sarcini ca evenimentul cron.
