ตั้งทริกเกอร์ไปป์ไลน์
ทริกเกอร์คือสิ่งที่เริ่มไปป์ไลน์ แต่ละตัวเป็นโหนดบนแคนวาส ที่ลากมาจากส่วน ทริกเกอร์ ของคลังโหนด การเลือกโหนดนั้นจะเปิดตัวตรวจสอบของมันทางด้านขวา — ไม่มีรายการทริกเกอร์ที่แสดงอยู่ตลอด ไม่มีแท็บทริกเกอร์ และไม่มีหน้าจอทริกเกอร์
เปิดตัวตรวจสอบของทริกเกอร์
หัวข้อที่มีชื่อว่า “เปิดตัวตรวจสอบของทริกเกอร์”- ไปที่ การตั้งค่า → เวิร์กสเปซ → เทมเพลตไปป์ไลน์
- กดไอคอนดินสอบนแถวของเทมเพลตเพื่อเปิดตัวแก้ไข
- เลือกโหนดทริกเกอร์บนแคนวาส แผงด้านขวาจะปรากฏขึ้นพร้อมการตั้งค่าของ ทริกเกอร์ตัวนั้น เมื่อไม่ได้เลือกอะไร แผงจะถูกซ่อนไว้
เพิ่มทริกเกอร์
หัวข้อที่มีชื่อว่า “เพิ่มทริกเกอร์”ส่วน ทริกเกอร์ ของคลังโหนดแสดงชนิดการเริ่มทุกแบบเป็นโหนดของตัวเอง:
ด้วยตนเอง ตารางเวลา webhook และหนึ่งการ์ดต่อหนึ่งเหตุการณ์โดเมน ค้นหา
merged, ticket หรือชื่อชนิด (PrMerged) แล้วลากการ์ดลงบนแคนวาส
เทมเพลตใหม่ยังแสดงไทล์จาง เพิ่มทริกเกอร์ ที่จุดยึดทางเข้า — เลือกจาก
รายการที่ค้นหาได้ชุดเดียวกัน
ทริกเกอร์จะถูกแทรกทันที ทริกเกอร์อัตโนมัติตัวใหม่เริ่มต้นในสถานะปิดใช้งาน การวางจึงไม่ยิงการรันก่อนที่คุณจะตั้งค่าเสร็จ ใช้สวิตช์ เปิดใช้ ในตัวตรวจสอบ เพื่อเปิดมัน หรือไอคอนถังขยะเพื่อลบ
อนุญาตการรันด้วยตนเอง
หัวข้อที่มีชื่อว่า “อนุญาตการรันด้วยตนเอง”วาง รันด้วยตนเอง (หรือเลือกจากไทล์จาง) แล้วเปิดสวิตช์ เปิดใช้ ในตัวตรวจสอบ
ของมัน นั่นคือสิ่งที่ทำให้เทมเพลตปรากฏในตัวเลือกการรัน มันไม่ใช่กรณีพิเศษ —
สวิตช์นี้เขียนแถวทริกเกอร์ธรรมดาที่มีชนิดเหตุการณ์เป็น manual การเปลี่ยนแปลง
มีผลทันที ไม่มีอะไรต้องบันทึก
สวิตช์เดียวกันนี้อยู่เบื้องหลัง รันด้วยตนเอง ในส่วนหัวของตัวแก้ไข ซึ่งวางอยู่ ข้างอินพุตที่เทมเพลตประกาศไว้
เมื่อเกิดเหตุการณ์
หัวข้อที่มีชื่อว่า “เมื่อเกิดเหตุการณ์”เหตุการณ์เหล่านี้เริ่มการรัน:
| ป้ายในตัวเลือก | เหตุการณ์ |
|---|---|
| เปิด PR ภายนอก | ExternalPrDetected |
| เผยแพร่ PR | PullRequestPublished |
| สถานะ PR เปลี่ยน | PullRequestStatusChanged |
| รวม PR แล้ว | PrMerged |
| ได้รับข้อความ | MessageReceived |
| สร้างตั๋วงานแล้ว | TicketCreated |
| สถานะตั๋วงานเปลี่ยน | TicketStatusChanged |
| มอบหมายตั๋วงาน | TicketAssigned |
| ตั๋วงานเสร็จ | TicketCompleted |
| ตั๋วงานล้มเหลว | TicketFailed |
| ตั๋วงานถูกยกเลิก | TicketCancelled |
| ข้ามเกณฑ์งบประมาณ | BudgetThresholdCrossed |
| เพิ่มรีโพสิทอรี | RepoAdded |
| หยุดการบันทึกประชุม | MeetingRecordingStopped |
| อัปเดตสกิลแล้ว | SkillUpdated |
| สเปซถูกลบ | SpaceDeleted |
SpaceDeleted คือเหตุการณ์ที่ไปป์ไลน์เก็บกวาด worktree ในตัวรอฟังอยู่: มันพก id
ของสเปซที่ถูกลบมาด้วย การรันจึงเรียกคืน worktree ของสเปซนั้นเท่านั้น แทนที่จะ
กวาดทั้งเวิร์กสเปซ
ดูคีย์เพย์โหลดที่แต่ละเหตุการณ์พกมาได้ที่ ข้อมูลอ้างอิงเหตุการณ์โดเมน
กรองทริกเกอร์แบบเหตุการณ์
หัวข้อที่มีชื่อว่า “กรองทริกเกอร์แบบเหตุการณ์”เลือกโหนด สถานะ PR เปลี่ยน ชิปสถานะในตัวตรวจสอบเป็นตัวกรองเดียวที่ UI
เขียนได้ แตะตัวใดก็ได้ใน merged, closed, approved, opened, reopened
ทริกเกอร์จะยิงเฉพาะเมื่อ status ของเหตุการณ์ตรงกับหนึ่งในนั้น การปล่อยทุกชิป
ไว้ไม่เลือกหมายถึงไม่มีตัวกรอง
ไม่มีช่องตัวกรอง JSON แบบอิสระ คีย์ตัวกรองที่เพย์โหลดของเหตุการณ์ไม่พกมาจะไม่มี ทางตรง จึงไม่ควรเขียนขึ้นเองกับคีย์ที่คุณยังไม่ได้ยืนยันในข้อมูลอ้างอิงเหตุการณ์ โดเมน
ตามตารางเวลา
หัวข้อที่มีชื่อว่า “ตามตารางเวลา”เลือกโหนด ตารางเวลา เพื่อแก้ไขว่าเมื่อใดจะยิง ฟิลด์ในตัวตรวจสอบจะคงอยู่ ตามที่คุณปล่อยไว้:
| ฟิลด์ | คำอธิบาย |
|---|---|
| ตารางเวลา (cron หรือ every:seconds) | นิพจน์ cron แบบห้าฟิลด์ เช่น 0 9 * * 1 หรือช่วงเวลา เช่น every:86400 ตัวเลขล้วนจะถูกแปลงเป็น every:<n> |
| เขตเวลา (ไม่บังคับ) | โซน IANA เช่น Europe/Paris ค่าเริ่มต้นคือ UTC |
| เมื่อพลาดรัน | จะทำอย่างไรกับรอบที่พลาดไปขณะเซิร์ฟเวอร์ปิด: รันครั้งเดียว ยุบทุกช่วงที่พลาดให้เป็นการยิงครั้งเดียวเมื่อรีสตาร์ต (ค่าเริ่มต้น) ส่วน ข้าม จะเริ่มใหม่ที่ช่วงถัดไปในอนาคต |
บรรทัดสรุปบนไทล์ในแคนวาสจะระบุช่วงเวลาให้เห็นชัดเฉพาะรูปแบบ every:<seconds>
ส่วนนิพจน์ cron จะแสดงเป็นแค่ “ตารางเวลา”
ผ่าน webhook
หัวข้อที่มีชื่อว่า “ผ่าน webhook”การวาง Webhook จะสร้างโทเค็นแบบสุ่ม เลือกโหนดเพื่อคัดลอกเส้นทาง
POST /webhooks/<token> จากตัวตรวจสอบ
โทเค็นยังเป็นซีเคร็ต HMAC ด้วย: คำขอต้องพก
X-Hub-Signature-256: sha256=<hex> โดยที่ hex คือ HMAC-SHA256(body, token)
การส่งที่ตรวจสอบไม่ผ่านจะถูกปฏิเสธและบันทึกไว้ และเล่นซ้ำไม่ได้ ส่วนรายการซ้ำ
จะถูกตัดออกด้วยคีย์ตัดรายการซ้ำของมัน
จุดเริ่มแต่ละจุดเป็นโหนดกราฟของตัวเอง การลากเส้นเชื่อมออกจาก ตารางเวลา จะเชื่อมเฉพาะตารางเวลา ส่วน รันด้วยตนเอง อาจเดินคนละเส้นทาง (เช่นผ่านโหนด เงื่อนไข) ก่อนจะไปรวมกับงานเดียวกัน การรันจะเข้าที่จุดเริ่มที่ตรงกับชนิดเหตุการณ์ ของมัน และข้ามกราฟย่อยที่เป็นของจุดเริ่มอื่น
ทริกเกอร์ไปถึงการรันได้อย่างไร
หัวข้อที่มีชื่อว่า “ทริกเกอร์ไปถึงการรันได้อย่างไร”ทริกเกอร์ที่เปิดใช้ซึ่งทั้งชนิดเหตุการณ์และตัวกรองตรงกันจะเริ่มการรัน โดยใช้
เพย์โหลดของเหตุการณ์เป็นเพย์โหลดทริกเกอร์ของการรัน — นั่นคือสิ่งที่ {{key}}
ในพรอมป์ต์หรือสคริปต์ของขั้นตอนใช้แก้ค่า ส่วนเหตุการณ์ที่พกคีย์ตามธรรมชาติจะถูก
ตัดรายการซ้ำ เหตุการณ์เดียวกันจึงยิงสองครั้งโดยไม่เกิดสองรัน
เทมเพลต ที่ปิดใช้งานจะถูกปฏิเสธแม้ทริกเกอร์ของมันจะตรงกัน เทมเพลตในตัวสิบสาม ตัวมีแปดตัวที่ติดตั้งมาพร้อมสถานะปิด ทริกเกอร์ที่ติดตั้งไว้ล่วงหน้าของพวกมันจึง ยิงไปอย่างไร้ผลจนกว่าคุณจะเปิดเทมเพลต
รูปแบบที่ใช้บ่อย
หัวข้อที่มีชื่อว่า “รูปแบบที่ใช้บ่อย”- กั้นเฉพาะเส้นทางด้วยตนเอง — เชื่อม รันด้วยตนเอง ผ่านโหนดเงื่อนไข และต่อ ตารางเวลา ตรงไปที่ตัวงาน จุดเริ่มแต่ละจุดมีเส้นเชื่อมของตัวเอง
- รีวิว PR ใหม่ทุกตัว — เหตุการณ์ เผยแพร่ PR บนเทมเพลต
pr_review - เก็บกวาดหลังการรวม — เหตุการณ์ สถานะ PR เปลี่ยน ซึ่งกรองเฉพาะ
merged/closed/approvedเทมเพลตในตัวpr_merged_cleanupฟังแบบนี้ อยู่แล้ว รวมทั้งตั๋วงานเสร็จ/ถูกยกเลิก,SpaceDeletedและตารางเวลารายวันที่ ถูกบังคับให้เปิดทุกครั้งที่ติดตั้งซ้ำ เพราะมันคือการเก็บขยะ - กวาดทุกคืน — ตารางเวลา
0 2 * * *พร้อมเขตเวลา บนเทมเพลตที่โหนดแรกเป็น สคริปต์ bash - ตอบสนองต่อระบบภายนอก — ทริกเกอร์ webhook โดยให้ระบบที่เรียกเป็นผู้ลงนาม ในบอดีคำขอตามข้างต้น