dokümanlar
ProGitHub Actions ile yeniden dağıt
Pipeline yeni imajı gönderdikten sonra tek bir istek sunucuna “al bunu” demeye yeter.
Nasıl çalışır
Deploy webhook’larını açmak sunucuna küçük bir ajan kurar: mihraops-agent adlı bir konteyner, dosyaları /opt/mihraops/agent altında. Webhook route’ları yalnız senin tanımladığın eylemleri çalıştırır. İzleme ve e-posta ayrı capability’lerdir ve Bildirimler ekranından açana kadar kapalı kalır. Agent’ı istediğin anda kaldırabilirsin.
Her uygulama /hooks/<ad> adresinde kendi tetikleyicisini alır. Bu adrese gelen istek en yeni imajı çeker ve konteyneri yeniden dağıtır.
Tetikleyiciyi oluştur
- 01Uygulamayı aç ve deploy webhook’u oluştur.
- 02Kimlik doğrulama yöntemini seç: paylaşılan token veya HMAC imzası.
- 03URL’i ve gizli anahtarı kopyala.
- 04Gizli anahtarı deponda şifreli secret olarak sakla — asla workflow dosyasının içine yazma.
Token yöntemi
En basit seçenek. Token’ı Authorization başlığında gönder:
GitHub Actions — imaj gönderme adımından sonra
- name: Trigger MihraOps deploy
run: |
curl --fail --silent --show-error \
-X POST "${{ secrets.MIHRAOPS_WEBHOOK_URL }}" \
-H "Authorization: Bearer ${{ secrets.MIHRAOPS_WEBHOOK_TOKEN }}"Token, X-MihraOps-Token veya X-Gitlab-Token başlığında da kabul edilir; bu sayede GitLab webhook’ları ek ayar gerektirmeden çalışır.
İmza yöntemi
Ajan, istek gövdesinin HMAC-SHA256 imzasını GitHub’ın depo webhook’larında kullandığı biçimde doğrular. Bir GitHub webhook’unu doğrudan tetikleyici adresine yöneltip gizli anahtarı GitHub’a yapıştırırsan, GitHub’ın zaten gönderdiği X-Hub-Signature-256 başlığı olduğu gibi doğrulanır.
İki yöntemde de karşılaştırma sabit zamanlı yapılır; doğrulamayı geçemeyen istek 401 alır ve hiçbir şeyi değiştirmez.
Derleme önbelleğini atlamak
Dağıtım kaynaktan derleniyorsa ve temiz bir derleme gerekiyorsa tetikleyici adresine ?withoutcache=true ekle.