
# Automatizācija

Rudel automatizācija neļauj vienreizējām smilškastēm uzkrāties bezgalīgi. Viens stundas WP-Cron notikums `rudel_scheduled_cleanup` var:

- izpildīt tīrīšanas politiku (termiņi, vecums un dīkstāve)
- izpildīt apvienoto zaru tīrīšanu
- ziņot par smilškastēm, kurām termiņš ir beidzies vai tuvojas beigām

## Konfigurācija

Automatizācija nolasa šīs atslēgas no opcijas `rudel_config`. Pilns saraksts ir sadaļā [Konfigurācija](https://rudel.inline0.dev/lv/docs/configuration).

| Atslēga | Mērķis | Noklusējums |
|-----|---------|---------|
| `auto_cleanup_enabled` | Katrā notikumā izpildīt tīrīšanas politiku | `1` |
| `auto_cleanup_merged` | Noņemt arī smilškastes ar apvienotiem Git darba koku zariem | `0` |
| `expiring_environment_notice_days` | Ziņot par smilškastēm, kuru termiņš beidzas N dienu laikā | `0` |
| `max_age_days` | Tīrīšanas politikā izmantotais vecuma ierobežojums | `0` |
| `max_idle_days` | Tīrīšanas politikā izmantotais dīkstāves ierobežojums | `0` |
| `default_ttl_days` | Termiņš jaunām smilškastēm | `0` |

Izmantojot noklusējuma vērtības, notikums ir ieplānots, bet noņem tikai smilškastes, kurām ir skaidri norādīts termiņš pagātnē, jo nav iestatīts vecuma vai dīkstāves ierobežojums un noklusējuma TTL.

## WP-Cron

Aktivizēšana ieplāno notikumu, un katrs pieprasījums vēlreiz pārbauda grafiku: notikums pastāv, kamēr kāda no vērtībām `auto_cleanup_enabled`, `auto_cleanup_merged` vai `expiring_environment_notice_days` nav nulle; pretējā gadījumā tas tiek noņemts. Deaktivizēšana to noņem.

Automatizācijas komandu nav. Mainiet iestatījumus failā `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` parāda `Auto cleanup`, `Auto cleanup merged`, `Expiry notice days` un `Automation scheduled`.

## Termiņu pārskati

Ja ir iestatīts `expiring_environment_notice_days`, katrā izpildē tiek apkopotas smilškastes, kuru `expires_at` beidzas norādītajā dienu skaitā, un tās tiek nodotas darbībai `rudel_after_automation_expiring_environments`, sadalītas `expiring` un `expired`. Rudel pats nesūta paziņojumus; piesaistiet darbībai paziņošanu īpašniekiem.

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

## Tūlītēja izpilde

Izmantojiet manuālo tīrīšanu, lai nodrošinātu paredzamu lokālu vai CI izpildi:

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

No PHP `Rudel::run_automation()` izpilda tos pašus uzdevumus, ko notikums cron.
