Pipeline tetikleyicilerini kurma
Bir pipeline’ı başlatan şey tetikleyicidir. Her tetikleyici tuvalde bir düğümdür ve düğüm kitaplığının Tetikleyiciler bölümünden bırakılır. O düğümü seçmek, sağda denetçisini açar — her zaman görünen bir tetikleyici listesi, bir tetikleyiciler sekmesi ya da bir tetikleyiciler ekranı yoktur.
Tetikleyici denetçisini açın
Bölüm başlığı “Tetikleyici denetçisini açın”- Ayarlar → Çalışma alanı → Pipeline şablonları bölümüne gidin.
- Düzenleyiciyi açmak için şablonun satırındaki kalem simgesine basın.
- Tuvalde bir tetikleyici düğümü seçin. Sağ panel, o tetikleyicinin ayarlarıyla birlikte görünür. Hiçbir şey seçili değilken panel gizlidir.
Tetikleyici ekle
Bölüm başlığı “Tetikleyici ekle”Düğüm kitaplığının Tetikleyiciler bölümü her başlangıç türünü kendi
düğümü olarak listeler: elle çalıştırma, zamanlama, webhook ve her alan olayı
için bir kart. merged, ticket ya da tür adını (PrMerged) arayın ve kartı
tuvale sürükleyin. Yeni bir şablon, giriş çıpasında ayrıca bir Tetikleyici
ekle hayalet kutucuğu gösterir — aynı aranabilir listeden seçin.
Tetikleyici hemen eklenir. Yeni otomatik tetikleyiciler devre dışı başlar; böylece siz onu yapılandırmadan önce bir bırakma bir çalıştırma ateşlemez. Açmak için denetçideki Etkin anahtarını, silmek için çöp kutusu simgesini kullanın.
Elle çalıştırmaya izin verin
Bölüm başlığı “Elle çalıştırmaya izin verin”Elle çalıştırma düğümünü bırakın (ya da hayalet kutucuktan seçin) ve
denetçisinde Etkin anahtarını açın. Şablonu çalıştırma başlatıcısında
gösteren şey budur. Bu özel bir durum değildir — anahtar, olay türü manual
olan sıradan bir tetikleyici satırı yazar. Hemen kalıcı hale gelir;
kaydedilecek bir şey yoktur.
Aynı anahtar, düzenleyici başlığındaki Manuel çalıştırma düğmesinin arkasındadır ve orada şablonun bildirilen girdilerinin yanında yer alır.
Bir olayda
Bölüm başlığı “Bir olayda”Şu olaylar bir çalıştırma başlatır:
| Seçici etiketi | Olay |
|---|---|
| Harici PR açıldı | ExternalPrDetected |
| PR yayınlandı | PullRequestPublished |
| PR durumu değişti | PullRequestStatusChanged |
| PR birleştirildi | PrMerged |
| Mesaj alındı | MessageReceived |
| Bilet oluşturuldu | TicketCreated |
| Bilet durumu değişti | TicketStatusChanged |
| Bilet atandı | TicketAssigned |
| Bilet tamamlandı | TicketCompleted |
| Bilet başarısız | TicketFailed |
| Bilet iptal edildi | TicketCancelled |
| Bütçe eşiği aşıldı | BudgetThresholdCrossed |
| Depo eklendi | RepoAdded |
| Toplantı kaydı durdu | MeetingRecordingStopped |
| Beceri güncellendi | SkillUpdated |
| Space silindi | SpaceDeleted |
Yerleşik çalışma ağacı temizleme pipeline’ının dinlediği şey SpaceDeleted
olayıdır: silinen alanın kimliğini taşır; böylece çalıştırma, tüm çalışma
alanını taramak yerine tam olarak o alanın çalışma ağaçlarını geri kazanır.
Her olayın taşıdığı yük anahtarları için alan olayları referansına bakın.
Bir olay tetikleyicisini filtreleyin
Bölüm başlığı “Bir olay tetikleyicisini filtreleyin”PR durumu değişti düğümünü seçin. Denetçideki durum çipleri, arayüzün
yazabileceği tek filtredir. merged, closed, approved, opened,
reopened değerlerinden herhangi birine dokunun; tetikleyici artık yalnızca
olayın status değeri bunlardan biriyle eşleştiğinde ateşlenir. Bütün çipleri
seçilmemiş bırakmak, filtre yok anlamına gelir.
Serbest biçimli bir JSON filtre alanı yoktur. Olayın yükünde bulunmayan bir filtre anahtarı asla eşleşmez; bu yüzden alan olayları referansında doğrulamadığınız bir anahtara karşı elle filtre yazmayın.
Zamanlamayla
Bölüm başlığı “Zamanlamayla”Ne zaman ateşleneceğini düzenlemek için Zamanlama düğümünü seçin. Denetçi alanları bıraktığınız gibi kalıcı olur:
| Alan | Açıklama |
|---|---|
| Zamanlama (cron veya every:seconds) | Beş alanlı bir cron ifadesi, örneğin 0 9 * * 1, ya da every:86400 gibi bir aralık. Çıplak bir sayı every:<n> biçimine dönüştürülür. |
| Saat dilimi (isteğe bağlı) | Europe/Paris gibi bir IANA saat dilimi. Varsayılan olarak UTC. |
| Kaçırılan çalıştırmalarda | Sunucu kapalıyken kaçırılan ateşlemelerde ne yapılacağı: Bir kez çalıştır, kaçırılan her dilimi yeniden başlatmada tek bir ateşlemede toplar (varsayılan); Atla ise bir sonraki gelecek dilimden devam eder. |
Tuvaldeki kutucuğun özet satırı, aralığı yalnızca every:<seconds> biçimi için
açıkça yazar; bir cron ifadesi yalnızca “Zamanlama” olarak görünür.
Webhook üzerinden
Bölüm başlığı “Webhook üzerinden”Webhook düğümünü bırakmak rastgele bir token üretir. POST /webhooks/<token>
yolunu denetçiden kopyalamak için düğümü seçin.
Token aynı zamanda HMAC gizli anahtarıdır: istek
X-Hub-Signature-256: sha256=<hex> başlığını taşımalıdır; burada hex değeri
HMAC-SHA256(body, token) ile hesaplanır. Doğrulamayı geçemeyen bir teslimat
reddedilir ve günlüğe kaydedilir; yeniden oynatılamaz. Yinelenenler kendi dedupe
anahtarlarına göre yok sayılır.
Her başlangıç kendi grafik düğümüdür. Zamanlama’dan bir tel çekmek yalnızca Zamanlama’yı bağlar; Elle çalıştırma ise aynı işe katılmadan önce farklı bir yol izleyebilir (örneğin bir koşul düğümü). Bir çalıştırma, olay türüyle eşleşen başlangıca girer ve diğer başlangıçlara ait alt grafikleri atlar.
Bir tetikleyici çalıştırmaya nasıl ulaşır
Bölüm başlığı “Bir tetikleyici çalıştırmaya nasıl ulaşır”Olay türü ve filtresi eşleşen etkin bir tetikleyici, olayın yükünü çalıştırmanın
tetikleyici yükü olarak kullanarak bir çalıştırma başlatır — bir adımın
isteminde ya da betiğinde {{key}} ifadesinin çözümlendiği şey budur. Doğal bir
anahtar taşıyan olaylar tekilleştirilir; böylece aynı olayın iki kez ateşlenmesi
iki çalıştırma başlatmaz.
Devre dışı bir şablon, tetikleyicisi eşleşse bile reddedilir. Yerleşik on üç şablonun sekizi devre dışı gelir; bu yüzden tohumlanan tetikleyicileri, siz şablonu açana kadar boşluğa ateş eder.
Yararlı desenler
Bölüm başlığı “Yararlı desenler”- Yalnızca elle çalıştırma yoluna kapı koyun — Elle çalıştırma’yı bir koşul düğümü üzerinden, Zamanlama’yı ise doğrudan işe bağlayın. Her başlangıç kendi tellerine sahiptir.
- Her yeni PR’ı inceleyin —
pr_reviewşablonunda PR yayınlandı olayı. - Birleştirmeden sonra temizlik yapın —
merged/closed/approveddeğerlerine filtrelenmiş PR durumu değişti olayı. Yerleşikpr_merged_cleanupşablonu zaten bu şekilde dinler; ayrıca bilet tamamlandı/iptal edildi,SpaceDeletedve çöp toplama olduğu için her yeniden tohumlamada zorla etkinleştirilen günlük bir zamanlama. - Gece taraması — ilk düğümü bir bash betiği olan bir şablonda, saat
dilimiyle birlikte
0 2 * * *zamanlaması. - Harici bir sisteme tepki verin — bir webhook tetikleyicisi; çağıran sistem istek gövdesini yukarıdaki gibi imzalar.
İlgili kılavuzlar
Bölüm başlığı “İlgili kılavuzlar”- Bir pipeline şablonu oluşturma
- Bir pipeline’ı elle çalıştırma
- Pipeline çalıştırmalarını izleme
- Alan olayları referansı