راهاندازی تریگرهای پایپلاین
تریگر چیزی است که یک پایپلاین را شروع میکند. هر تریگر یک گره روی بوم است که از بخش تریگرها در کتابخانهٔ گره کشیده میشود. انتخاب آن گره، بازرسش را در سمت راست باز میکند — هیچ فهرست همیشهحاضر تریگرها، هیچ زبانهٔ تریگر و هیچ صفحهٔ تریگری وجود ندارد.
باز کردن بازرس تریگر
بخش با عنوان “باز کردن بازرس تریگر”- به تنظیمات → فضای کاری → قالبهای پایپلاین بروید.
- روی مداد در سطر قالب بزنید تا ویرایشگر باز شود.
- یک گرهٔ تریگر روی بوم انتخاب کنید. پنل سمت راست با تنظیمات آن تریگر ظاهر میشود. وقتی چیزی انتخاب نشده باشد، پنل پنهان است.
افزودن تریگر
بخش با عنوان “افزودن تریگر”بخش تریگرها در کتابخانهٔ گره هر نوع شروع را بهصورت گرهٔ خودش فهرست
میکند: دستی، زمانبندی، وبهوک و یک کارت بهازای هر رویداد دامنه. 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 به آن گوش
میدهد: شناسهٔ فضای حذفشده را حمل میکند، پس اجرا دقیقاً worktreeهای همان فضا
را بازپس میگیرد، نه اینکه کل فضای کاری را جاروب کند.
برای کلیدهای بار دادهٔ هر رویداد، مرجع رویدادهای دامنه را ببینید.
فیلتر کردن یک تریگر رویدادی
بخش با عنوان “فیلتر کردن یک تریگر رویدادی”گرهٔ وضعیت PR تغییر کرد را انتخاب کنید. تراشههای وضعیت در بازرس، تنها
فیلتری هستند که رابط کاربری میتواند بسازد. روی هر یک از 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 است. - واکنش به یک سیستم خارجی — یک تریگر وبهوک، با این شرط که سیستم فراخواننده بدنهٔ درخواستش را مانند بالا امضا کند.