GitHub Plugin Sync
Zadáš verejné GitHub repozitáre (a cestu k pluginu v nich) – pri každom pushi na sledovanú vetvu GitHub webhook okamžite pošle WordPressu signál a plugin sa automaticky stiahne a nainštaluje/aktualizuje z GitHubu. Bez FTP, bez ručného nahrávania zipov.
Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/tomin9/syncplugin/archive/refs/heads/main.zipWordPress plugin, ktorý drží iné pluginy zosynchronizované s ich GitHub repozitárom. Zadáš zoznam verejných repozitárov (a voliteľne cestu k pluginu v nich, ak plugin nie je priamo v koreni repa) – pri každom pushi na sledovanú vetvu GitHub okamžite pošle webhook a plugin sa automaticky stiahne a nainštaluje/aktualizuje priamo na živom webe.
Inštalácia
- Skopíruj priečinok
github-plugin-syncdowp-content/plugins/. - Aktivuj plugin – hneď pri aktivácii sa vygeneruje náhodný webhook secret.
- Choď do ľavé menu → Sync plug.
- Pridaj repozitár:
- Repozitár –
owner/repo, napr.tomin9/nox-art. - Vetva – ktorú vetvu sledovať (napr.
main). - Cesta k pluginu v repe – ak plugin nie je v koreni repozitára, ale
v podpriečinku (napr.
nox-art-festival), vlož ju sem. Ak je repo = plugin, nechaj prázdne. - Cieľový priečinok (slug) – meno priečinka vo
wp-content/plugins/, kam sa má plugin nainštalovať. - Auto-aktivovať – po prvej inštalácii plugin rovno aktivuje.
- Repozitár –
- Ulož nastavenia.
- V GitHub repozitári choď do Settings → Webhooks → Add webhook:
- Payload URL – skopíruj z poľa „Webhook URL“ na stránke nastavení.
- Content type –
application/json. - Secret – skopíruj z poľa „Webhook secret“.
- Events – „Just the push event“.
- Ulož webhook v GitHube. GitHub hneď pošle testovací
ping– ak je secret správne, webhook sa v GitHube zobrazí ako úspešný (zelená fajočka).
Odteraz každý push na sledovanú vetvu daného repozitára automaticky nainštaluje najnovšiu verziu ako WordPress plugin. Tlačidlo „Synchronizovať teraz“ pri repozitári spustí to isté ručne (užitočné na prvotné otestovanie).
Bezpečnosť
- Webhook endpoint (
/wp-json/ghps/v1/webhook) prijme a spracuje iba požiadavky, ktoré nesú platný HMAC-SHA256 podpis vypočítaný z webhook secretu – bez znalosti secretu (uloženého len v databáze WordPressu a v nastaveniach GitHub webhooku) sa nedá vynútiť inštalácia ničoho. - Funguje len s verejnými repozitármi – žiadny GitHub token sa nikde neukladá.
- Pri synchronizácii sa nová verzia najprv skopíruje do dočasného priečinka a až potom nahradí starú (pri chybe ostane pôvodná). Obsah cieľového priečinka sa nahradí a nahradí obsahom z GitHubu – necháva ho teda ako presnú kópiu danej vetvy. Prípadné úpravy urobené priamo na serveri (mimo GitHubu) sa touto cestou stratia.