
# Automatizálás

A Rudel automatizálása megakadályozza az eldobható sandboxok korlátlan felhalmozódását. Egy óránkénti WP-Cron esemény, a `rudel_scheduled_cleanup`, a következőket végezheti:

- futtathatja a takarítási szabályzatot (lejárat, kor és tétlenség alapján)
- eltávolíthatja az összevont ágakhoz tartozó sandboxokat
- jelentést készíthet a lejárt vagy hamarosan lejáró sandboxokról

## Konfiguráció

Az automatizálás ezeket a kulcsokat a `rudel_config` beállításból olvassa. A teljes lista a [Konfiguráció](https://rudel.inline0.dev/hu/docs/configuration) oldalon található.

| Kulcs | Cél | Alapértelmezett érték |
|-----|---------|---------|
| `auto_cleanup_enabled` | Minden eseménynél futtatja a takarítási szabályzatot | `1` |
| `auto_cleanup_merged` | Az összevont Git munkafaágakhoz tartozó sandboxokat is eltávolítja | `0` |
| `expiring_environment_notice_days` | Jelenti a N napon belül lejáró sandboxokat | `0` |
| `max_age_days` | A takarítási szabályzatban használt korhatár | `0` |
| `max_idle_days` | A takarítási szabályzatban használt tétlenségi határ | `0` |
| `default_ttl_days` | Az új sandboxok lejárati ideje | `0` |

Az alapértelmezett beállításokkal az esemény ütemezett, de csak azokat a sandboxokat távolítja el, amelyeknek kifejezetten beállított lejárata már elmúlt, mivel nincs megadva kor- vagy tétlenségi határ, illetve alapértelmezett TTL.

## WP-Cron

Az aktiválás ütemezi az eseményt, és minden kérés újra ellenőrzi az ütemezést: az esemény mindaddig létezik, amíg a `auto_cleanup_enabled`, a `auto_cleanup_merged` vagy a `expiring_environment_notice_days` értéke nem nulla; ellenkező esetben eltávolítja. Deaktiváláskor törlődik.

Nincsenek automatizálási parancsok. Módosítsa a beállításokat itt: `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
```

A `wp rudel status` megjeleníti a következőket: `Auto cleanup`, `Auto cleanup merged`, `Expiry notice days` és `Automation scheduled`.

## Lejárati jelentések

Ha a `expiring_environment_notice_days` be van állítva, minden futás összegyűjti azokat a sandboxokat, amelyek `expires_at` értéke ennyi napon belülre esik, majd átadja őket a `rudel_after_automation_expiring_environments` műveletnek, két csoportra bontva: `expiring` és `expired`. A Rudel önmagában nem küld értesítést; kösse a műveletet egy értesítési kezelőhöz.

```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'] );
        }
    }
);
```

## Futtatás most

A kiszámítható helyi vagy CI-futtatásokhoz használjon kézi takarítást:

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

A PHP környezetben a `Rudel::run_automation()` ugyanazokat a feladatokat futtatja, mint a cron esemény.
