ข้ามไปยังเนื้อหา

ตั้งทริกเกอร์ไปป์ไลน์

ทริกเกอร์คือสิ่งที่เริ่มไปป์ไลน์ แต่ละตัวเป็นโหนดบนแคนวาส ที่ลากมาจากส่วน ทริกเกอร์ ของคลังโหนด การเลือกโหนดนั้นจะเปิดตัวตรวจสอบของมันทางด้านขวา — ไม่มีรายการทริกเกอร์ที่แสดงอยู่ตลอด ไม่มีแท็บทริกเกอร์ และไม่มีหน้าจอทริกเกอร์

  1. ไปที่ การตั้งค่า → เวิร์กสเปซ → เทมเพลตไปป์ไลน์
  2. กดไอคอนดินสอบนแถวของเทมเพลตเพื่อเปิดตัวแก้ไข
  3. เลือกโหนดทริกเกอร์บนแคนวาส แผงด้านขวาจะปรากฏขึ้นพร้อมการตั้งค่าของ ทริกเกอร์ตัวนั้น เมื่อไม่ได้เลือกอะไร แผงจะถูกซ่อนไว้

ส่วน ทริกเกอร์ ของคลังโหนดแสดงชนิดการเริ่มทุกแบบเป็นโหนดของตัวเอง: ด้วยตนเอง ตารางเวลา 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 จะสร้างโทเค็นแบบสุ่ม เลือกโหนดเพื่อคัดลอกเส้นทาง 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 โดยให้ระบบที่เรียกเป็นผู้ลงนาม ในบอดีคำขอตามข้างต้น