Bỏ qua để đến nội dung

Thiết lập trình kích hoạt quy trình

Trình kích hoạt là thứ khởi chạy một quy trình. Mỗi trình kích hoạt là một node trên canvas, được kéo thả từ mục Bộ kích hoạt trong thư viện nút. Chọn node đó sẽ mở trình kiểm tra của nó ở bên phải — không có danh sách trình kích hoạt thường trực, không có tab trình kích hoạt và cũng không có màn hình trình kích hoạt.

  1. Vào Cài đặt → Không gian làm việc → Mẫu quy trình.
  2. Nhấn biểu tượng bút chì trên hàng của mẫu để mở trình chỉnh sửa.
  3. Chọn một node trình kích hoạt trên canvas. Bảng bên phải hiện ra với các thiết lập của trình kích hoạt đó. Khi không chọn gì, bảng này bị ẩn.

Mục Bộ kích hoạt trong thư viện nút liệt kê mọi kiểu khởi chạy thành một node riêng: thủ công, theo lịch, webhook và một thẻ cho mỗi sự kiện miền. Hãy tìm merged, ticket hoặc tên loại (PrMerged) rồi kéo thẻ đó vào canvas. Một mẫu mới cũng hiển thị một ô giữ chỗ mờ Thêm bộ kích hoạt tại điểm neo lối vào — hãy chọn từ chính danh sách có thể tìm kiếm đó.

Trình kích hoạt được chèn ngay lập tức. Các trình kích hoạt tự động mới khởi đầu ở trạng thái tắt để một thao tác kéo thả không kích hoạt một lần chạy trước khi bạn cấu hình xong. Dùng công tắc Đã bật trong trình kiểm tra để bật nó, hoặc biểu tượng thùng rác để xóa nó.

Kéo thả Chạy thủ công (hoặc chọn nó từ ô giữ chỗ mờ) rồi bật Đã bật trong trình kiểm tra của nó. Đó là thứ khiến mẫu xuất hiện trong trình chọn lần chạy. Đây không phải một trường hợp đặc biệt — công tắc này ghi một hàng trình kích hoạt bình thường với loại sự kiện là manual. Nó được lưu bền ngay lập tức; không có gì để lưu.

Công tắc tương tự nằm sau Chạy thủ công ở thanh tiêu đề trình chỉnh sửa, nơi nó đứng cạnh các đầu vào đã khai báo của mẫu.

Những sự kiện sau khởi chạy một lần chạy:

Nhãn trong trình chọn Sự kiện
PR bên ngoài được mở ExternalPrDetected
PR được xuất bản PullRequestPublished
Trạng thái PR đã đổi PullRequestStatusChanged
PR được hợp nhất PrMerged
Đã nhận tin nhắn MessageReceived
Phiếu được tạo TicketCreated
Trạng thái phiếu đã đổi TicketStatusChanged
Phiếu được gán TicketAssigned
Phiếu hoàn tất TicketCompleted
Phiếu thất bại TicketFailed
Phiếu bị hủy TicketCancelled
Đã vượt ngưỡng ngân sách BudgetThresholdCrossed
Đã thêm kho lưu trữ RepoAdded
Đã dừng ghi cuộc họp MeetingRecordingStopped
Kỹ năng đã cập nhật SkillUpdated
Không gian đã xóa SpaceDeleted

SpaceDeleted là sự kiện mà quy trình dọn dẹp worktree tích hợp sẵn lắng nghe: nó mang id của space đã xóa, nên lần chạy chỉ thu hồi đúng các worktree của space đó thay vì quét toàn bộ không gian làm việc.

Để biết các khóa payload mà mỗi sự kiện mang theo, xem tham chiếu sự kiện miền.

Chọn node Trạng thái PR đã đổi. Các chip trạng thái trong trình kiểm tra là bộ lọc duy nhất mà giao diện có thể tạo. Nhấn vào bất kỳ mục nào trong merged, closed, approved, opened, reopened; khi đó trình kích hoạt chỉ kích hoạt nếu status của sự kiện khớp với một trong số đó. Để tất cả chip không được chọn nghĩa là không lọc.

Không có trường lọc JSON tự do. Một khóa lọc mà payload của sự kiện không mang theo sẽ không bao giờ khớp, nên đừng tự viết một khóa mà bạn chưa xác nhận trong tham chiếu sự kiện miền.

Chọn node Lịch để chỉnh thời điểm nó kích hoạt. Các trường trong trình kiểm tra được lưu lại đúng như khi bạn rời khỏi chúng:

Trường Mô tả
Lịch (cron hoặc every:seconds) Một biểu thức cron năm trường như 0 9 * * 1, hoặc một khoảng thời gian như every:86400. Một con số trần sẽ được chuyển thành every:<n>.
Múi giờ (tùy chọn) Một vùng IANA như Europe/Paris. Mặc định là UTC.
Khi bỏ lỡ lần chạy Phải làm gì với những lần kích hoạt bị bỏ lỡ khi máy chủ ngừng chạy: Chạy một lần gộp mọi khung giờ bị bỏ lỡ thành một lần kích hoạt khi khởi động lại (mặc định), Bỏ qua tiếp tục từ khung giờ tương lai kế tiếp.

Dòng tóm tắt của thẻ trên canvas chỉ ghi rõ khoảng thời gian với dạng every:<seconds>; một biểu thức cron chỉ hiển thị là “Lịch”.

Kéo thả Webhook sẽ tạo ngẫu nhiên một token. Chọn node đó để sao chép đường dẫn POST /webhooks/<token> từ trình kiểm tra.

Token cũng chính là khóa bí mật HMAC: request phải mang X-Hub-Signature-256: sha256=<hex>, trong đó chuỗi hex là HMAC-SHA256(body, token). Một gói tin không xác minh được sẽ bị từ chối, được ghi log và không thể phát lại. Các bản trùng lặp bị bỏ qua theo khóa khử trùng lặp của chúng.

Mỗi điểm khởi chạy là một node riêng trên đồ thị. Kéo một dây nối từ Lịch chỉ gắn với Lịch; Chạy thủ công có thể đi theo một đường khác (ví dụ qua một node điều kiện) trước khi hòa vào cùng công việc. Một lần chạy đi vào điểm khởi chạy khớp với loại sự kiện của nó và bỏ qua các đồ thị con thuộc những điểm khởi chạy khác.

Cách một trình kích hoạt đi đến một lần chạy

Phần tiêu đề “Cách một trình kích hoạt đi đến một lần chạy”

Một trình kích hoạt đang bật có loại sự kiện và bộ lọc đều khớp sẽ khởi chạy một lần chạy với payload của sự kiện làm payload trình kích hoạt của lần chạy — đó chính là thứ mà {{key}} trong prompt hoặc script của một bước phân giải dựa vào. Những sự kiện mang khóa tự nhiên được khử trùng lặp, nên cùng một sự kiện kích hoạt hai lần sẽ không tạo ra hai lần chạy.

Một mẫu bị tắt vẫn bị từ chối ngay cả khi trình kích hoạt của nó khớp. Tám trong số mười ba mẫu tích hợp sẵn xuất xưởng ở trạng thái tắt, nên các trình kích hoạt được gieo của chúng kích hoạt vào khoảng không cho tới khi bạn bật mẫu lên.

  • Chỉ chặn đường thủ công — nối Chạy thủ công qua một node điều kiện, còn Lịch nối thẳng tới công việc. Mỗi điểm khởi chạy sở hữu các dây nối của riêng nó.
  • Xem xét mọi PR mới — sự kiện PR được xuất bản trên mẫu pr_review.
  • Dọn dẹp sau khi hợp nhất — sự kiện Trạng thái PR đã đổi, lọc theo merged / closed / approved. Mẫu tích hợp sẵn pr_merged_cleanup đã lắng nghe theo cách này, cùng với phiếu hoàn tất/bị hủy, SpaceDeleted, và một lịch chạy hằng ngày luôn bị buộc bật ở mỗi lần gieo lại vì đó là việc thu gom rác.
  • Quét hằng đêm — lịch 0 2 * * * kèm múi giờ, trên một mẫu có node đầu tiên là script bash.
  • Phản ứng với một hệ thống bên ngoài — một trình kích hoạt webhook, với hệ thống gọi ký phần thân request của nó như trên.