# GitHub depoları ve otomatik yayın

> Version başlığını artırıp push edin; GitHub Actions zip'i ve release'i üretsin, sitelere güncelleme gitsin.

Kaynak: https://fluxwp.com/tr/wiki/guncelleme-sunucusu/github-ve-yayin/  
Bölüm: Kurulum  
Son güncelleme: 2026-11-05

Güncelleme sunucusu paketleri GitHub release'lerinden okur. Bu sayfa, kendi depolarınızda release'i elle uğraşmadan, `Version:` başlığını artırıp push ederek nasıl çıkaracağınızı anlatır. FluxWP depoları da tam olarak böyle çalışır.

## Depo düzeni

Tek depoda birden çok paket tutabilirsiniz:

```text
plugins/<slug>/<slug>.php     eklenti (Version: başlığı burada)
themes/<slug>/style.css       tema (Version: başlığı burada)
bin/build.sh                  zip üretir
.github/workflows/release.yml sürümü değişen paketi yayınlar
```

Hazır iş akışı ve betikler için [FluxWP/fluxwp](https://github.com/FluxWP/fluxwp) deposundaki `bin/` ve `.github/workflows/release.yml` dosyalarını kopyalayabilirsiniz.

## Yeni sürüm çıkarmak

1. Paketteki `Version:` başlığını artırın (eklentide sürüm sabiti varsa onu da).
2. Paket klasöründeki `CHANGELOG.md`'ye `## 1.2.3` başlığıyla notları yazın. Yoksa son commit mesajı not olur.
3. `main`'e push edin.

GitHub Actions sürümü değişen her paket için:

- `dist/<slug>.zip` üretir,
- `<slug>-v<sürüm>` tag'iyle release açar ve zip'i ekler,
- `UPDATE_WEBHOOK_SECRET` tanımlıysa sunucunun önbelleğini boşaltır.

Birkaç dakika içinde sitelerde **Başlangıç › Güncellemeler**'de görünür.

## Kurallar

| Durum | Sonuç |
|---|---|
| Sürümde tire var (`1.3.0-beta.1`) | Pre-release olur; yalnız beta kanalındaki siteler görür. |
| Sürüm geri gitti | İş hata verir, yayın olmaz. |
| `Requires Plugins:` başlığı var | Sunucu bunu sitelere iletir; FluxWP Panel gerekli eklentileri birlikte kurar. |
| Pakete girmemesi gereken dosya | Paket klasörüne `.distignore` koyun, satır başına bir desen. |

Varsayılan olarak `.git*`, `.github`, `node_modules`, `tests` ve `CHANGELOG.md` zip'e girmez.

## Elle yayın ve yerel zip

- GitHub'da **Actions › Paket release › Run workflow** ile elle tetiklenir; isteğe bağlı olarak tek paket klasörü verilir.
- Yerelde zip almak: `bin/build.sh plugins/flx-ornek` → `dist/flx-ornek.zip`.

## Yeni paket eklemek

`plugins/<slug>/` ya da `themes/<slug>/` klasörünü açıp `Version:` başlığıyla push edin. Sunucu paketi release'den tanır; ayrıca ayar gerekmez. Depo sunucuda seçili değilse **GitHub** kartından ekleyin.

Sitelere ilk kurulum: **FluxWP Panel › Paketler › Kur** ([Paketleri kurmak ve güncellemek](https://fluxwp.com/tr/wiki/paketler-ve-guncellemeler/)).

## Secret'lar

| Secret | Nerede | Ne için |
|---|---|---|
| `UPDATE_WEBHOOK_SECRET` | Paket deposu | Release sonrası sunucu önbelleğini hemen boşaltır. |

Token'ı depoya koymayın; GitHub token yalnız güncelleme sunucusunun panelinde durur.
