
# Otomasyon

Rudel otomasyonu, geçici yalıtılmış ortamların sonsuza dek birikmesini önler. Saatte bir çalışan WP-Cron olayı `rudel_scheduled_cleanup` şunları yapabilir:

- temizleme politikasını uygular (süre sonu, yaş ve boşta kalma)
- birleştirilmiş dal temizliğini uygular
- süresi dolmuş veya dolmak üzere olan yalıtılmış ortamları bildirir

## Yapılandırma

Otomasyon bu anahtarları `rudel_config` seçeneğinden okur. Tam liste [Yapılandırma](https://rudel.inline0.dev/tr/docs/configuration) sayfasındadır.

| Anahtar | Amaç | Varsayılan |
|-----|---------|---------|
| `auto_cleanup_enabled` | Her olayda temizleme politikasını çalıştırır | `1` |
| `auto_cleanup_merged` | Birleştirilmiş Git çalışma ağacı dallarına sahip yalıtılmış ortamları da kaldırır | `0` |
| `expiring_environment_notice_days` | N gün içinde süresi dolacak yalıtılmış ortamları bildirir | `0` |
| `max_age_days` | Temizleme politikasının kullandığı yaş sınırı | `0` |
| `max_idle_days` | Temizleme politikasının kullandığı boşta kalma sınırı | `0` |
| `default_ttl_days` | Yeni yalıtılmış ortamlara verilen süre sonu | `0` |

Varsayılan ayarlarla olay zamanlanır, ancak yaş veya boşta kalma sınırı ve varsayılan TTL ayarlanmadığından yalnızca geçmişte açıkça belirlenmiş bir süre sonu olan yalıtılmış ortamları kaldırır.

## WP-Cron

Etkinleştirme olayı zamanlar ve her istek zamanlamayı yeniden denetler: `auto_cleanup_enabled`, `auto_cleanup_merged` veya `expiring_environment_notice_days` değerlerinden biri sıfır değilken olay mevcut olur; aksi durumda kaldırılır. Devre dışı bırakma olayı kaldırır.

Otomasyon komutu yoktur. Ayarları `rudel_config` içinde değiştirin:

```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` ve `Automation scheduled` değerlerini gösterir.

## Süre sonu raporları

`expiring_environment_notice_days` ayarlandığında her çalıştırma, bu gün sayısı içinde `expires_at` değerine ulaşacak yalıtılmış ortamları toplar ve bunları `rudel_after_automation_expiring_environments` eylemine `expiring` ile `expired` şeklinde ayırarak iletir. Rudel kendi başına bildirim göndermez; sahipleri bilgilendirmek için eyleme bir kanca ekleyin.

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

## Şimdi çalıştırma

Yerel veya CI çalıştırmalarında belirleyici sonuçlar elde etmek için elle temizlemeyi kullanın:

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

PHP içinden `Rudel::run_automation()`, cron olayıyla aynı görevleri çalıştırır.
