Tüm dokümanlar

dokümanlar

Pro

GitHub 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

  1. 01Uygulamayı aç ve deploy webhook’u oluştur.
  2. 02Kimlik doğrulama yöntemini seç: paylaşılan token veya HMAC imzası.
  3. 03URL’i ve gizli anahtarı kopyala.
  4. 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.

İlgili rehberler