
# Αυτοματοποίηση

Η αυτοματοποίηση του Rudel αποτρέπει την επ' αόριστον συσσώρευση προσωρινών sandbox. Ένα ωριαίο συμβάν WP-Cron, το `rudel_scheduled_cleanup`, μπορεί να:

- εκτελεί την πολιτική εκκαθάρισης (λήξη, ηλικία και αδράνεια)
- εκτελεί εκκαθάριση συγχωνευμένων κλάδων
- αναφέρει sandbox που έχουν λήξει ή πλησιάζουν στη λήξη

## Διαμόρφωση

Η αυτοματοποίηση διαβάζει αυτά τα κλειδιά από την επιλογή `rudel_config`. Η πλήρης λίστα βρίσκεται στη [Διαμόρφωση](https://rudel.inline0.dev/el/docs/configuration).

| Κλειδί | Σκοπός | Προεπιλογή |
|-----|---------|---------|
| `auto_cleanup_enabled` | Εκτέλεση της πολιτικής εκκαθάρισης σε κάθε συμβάν | `1` |
| `auto_cleanup_merged` | Αφαίρεση επίσης των sandbox με συγχωνευμένους κλάδους worktree Git | `0` |
| `expiring_environment_notice_days` | Αναφορά sandbox που λήγουν μέσα σε N ημέρες | `0` |
| `max_age_days` | Όριο ηλικίας που χρησιμοποιεί η πολιτική εκκαθάρισης | `0` |
| `max_idle_days` | Όριο αδράνειας που χρησιμοποιεί η πολιτική εκκαθάρισης | `0` |
| `default_ttl_days` | Λήξη που δίνεται στα νέα sandbox | `0` |

Με τις προεπιλεγμένες ρυθμίσεις, το συμβάν είναι προγραμματισμένο, αλλά αφαιρεί μόνο sandbox με ρητά ορισμένη λήξη στο παρελθόν, επειδή δεν έχει οριστεί όριο ηλικίας ή αδράνειας ούτε προεπιλεγμένος χρόνος ζωής (TTL).

## WP-Cron

Η ενεργοποίηση προγραμματίζει το συμβάν και κάθε αίτημα ελέγχει ξανά το πρόγραμμα: το συμβάν υπάρχει όσο οποιοδήποτε από τα `auto_cleanup_enabled`, `auto_cleanup_merged` ή `expiring_environment_notice_days` είναι μη μηδενικό και αφαιρείται διαφορετικά. Η απενεργοποίηση το αφαιρεί.

Δεν υπάρχουν εντολές αυτοματοποίησης. Αλλάξτε τις ρυθμίσεις στο `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` εμφανίζει τα `Auto cleanup`, `Auto cleanup merged`, `Expiry notice days` και `Automation scheduled`.

## Αναφορές λήξης

Όταν οριστεί το `expiring_environment_notice_days`, κάθε εκτέλεση συλλέγει τα sandbox με `expires_at` μέσα σε τόσες ημέρες και τα περνά στην ενέργεια `rudel_after_automation_expiring_environments`, χωρισμένα σε `expiring` και `expired`. Το Rudel δεν στέλνει ειδοποιήσεις από μόνο του· συνδέστε την ενέργεια με ειδοποίηση των κατόχων.

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

## Άμεση εκτέλεση

Χρησιμοποιήστε χειροκίνητη εκκαθάριση για προβλέψιμες τοπικές εκτελέσεις ή εκτελέσεις CI:

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

Από το PHP, το `Rudel::run_automation()` εκτελεί τις ίδιες εργασίες με το συμβάν cron.
