
# Automatizavimas

Rudel automatizavimas neleidžia kauptis vienkartinėms smėlio dėžėms. Vienas kas valandą vykstantis WP-Cron įvykis, `rudel_scheduled_cleanup`, gali:

- vykdyti valymo politiką (pagal galiojimo pabaigą, amžių ir neveiklumą)
- valyti sujungtas šakas
- pranešti apie pasibaigusio arba netrukus pasibaigsiančio galiojimo smėlio dėžes

## Konfigūracija

Automatizavimas skaito šiuos raktus iš parinkties `rudel_config`. Visas sąrašas pateiktas puslapyje [Konfigūracija](https://rudel.inline0.dev/lt/docs/configuration).

| Raktas | Paskirtis | Numatytoji reikšmė |
|-----|---------|---------|
| `auto_cleanup_enabled` | Vykdyti valymo politiką per kiekvieną įvykį | `1` |
| `auto_cleanup_merged` | Taip pat pašalinti smėlio dėžes, kurių susietos darbinio medžio Git šakos sujungtos | `0` |
| `expiring_environment_notice_days` | Pranešti apie smėlio dėžes, kurių galiojimas baigsis per N dienų | `0` |
| `max_age_days` | Valymo politikoje naudojama amžiaus riba | `0` |
| `max_idle_days` | Valymo politikoje naudojama neveiklumo riba | `0` |
| `default_ttl_days` | Naujoms smėlio dėžėms nustatoma galiojimo trukmė | `0` |

Esant numatytosioms reikšmėms, įvykis suplanuojamas, bet pašalinamos tik tos smėlio dėžės, kurių aiškiai nustatyta galiojimo pabaiga jau praėjusi, nes nenustatyta nei amžiaus, nei neveiklumo riba, nei numatytoji galiojimo trukmė.

## WP-Cron

Aktyvinus suplanuojamas įvykis, o kiekviena užklausa iš naujo patikrina tvarkaraštį: įvykis vykdomas, kol bent vienos iš reikšmių `auto_cleanup_enabled`, `auto_cleanup_merged` arba `expiring_environment_notice_days` reikšmė nėra nulis; kitu atveju jis pašalinamas. Išjungus įvykis pašalinamas.

Automatizavimo komandų nėra. Pakeiskite nustatymus čia: `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` rodo `Auto cleanup`, `Auto cleanup merged`, `Expiry notice days` ir `Automation scheduled`.

## Galiojimo pabaigos ataskaitos

Nustačius `expiring_environment_notice_days`, kiekvieno vykdymo metu surenkamos smėlio dėžės, kurių `expires_at` sueis per nurodytą dienų skaičių, ir perduodamos veiksmui `rudel_after_automation_expiring_environments`, suskirstytos į `expiring` ir `expired`. Rudel pats nepraneša; susiekite veiksmą su savininkų informavimo mechanizmu.

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

## Vykdymas dabar

Jei norite nuspėjamai vykdyti vietinį arba CI valymą, naudokite rankinį valymą:

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

Iš PHP komanda `Rudel::run_automation()` vykdo tas pačias užduotis kaip ir įvykis cron.
