GitLab

GitLab را وصل کنید تا merge request، pipeline و commit روی Issueهای Pulse دیده شود.

Issueهای Pulse را به merge request گیت‌لب وصل کنید و وضعیت را از فعالیت MR خودکار کنید.

نمای کلی

یک نمونه GitLab.com یا self-hosted را وصل کنید، پروژه بدهید، و merge request را به Issue لینک کنید. GitHub اتصالی جداست — GitHub را ببینید.

پیکربندی یکپارچه‌سازی GitLab

فقط مالکان و ادمین‌های workspace می‌توانند یکپارچه‌سازی‌ها را مدیریت کنند. Settings → Integrations (/settings/integrations) را باز کنید، سپس GitLab (/settings/integrations/gitlab).

برای وصل کردن:

  1. در Integrations، GitLab را باز کنید.
  2. Connect GitLab را بزنید.
  3. Name، API access token، و در صورت نیاز Custom GitLab URL برای نمونه self-hosted (https://gitlab.your-company.com، بدون path) را وارد کنید.
  4. Connect را بزنید. Pulse توکن را در برابر آن GitLab می‌سنجد و بعد ذخیره می‌کند.

توکن را با scope api بسازید. read_api برای خواندن کافی است، اما برای نظر، approve یا linkback کافی نیست.

Pulse می‌تواند GitLab را Direct from Pulse ببیند، یا وقتی نمونه فقط از لپ‌تاپ در دسترس است Through Pulse Bridge on a computer. Connected instances می‌تواند بیش از یک میزبان داشته باشد. اگر چندتا باشد، مشخص کنید بخش‌های جزئیات کدام اتصال را توصیف می‌کنند.

Disconnect webhookهای Pulse را از پروژه‌های GitLab هرجا هنوز بتواند برمی‌دارد، سپس اتصال و grantهای repository را حذف می‌کند.

وب‌هوک‌ها

GitLab رویداد merge request، push و pipeline را با hook روی هر پروژه می‌فرستد. بدون hook، لینک و خودکارسازی از تغییرها خبردار نمی‌شوند.

اگر توکن اتصال روی پروژه Maintainer باشد، Pulse می‌تواند Add hook یا Update hook کند. وگرنه hook را دستی اضافه کنید: Receiver URL را کپی کنید، Secret token را بچسبانید، تأیید SSL را روشن نگه دارید، و triggerهای لازم را بزنید — merge request، push، pipeline، job، deployment، comments و emoji. بقیه triggerها را خاموش بگذارید.

دسترسی repository

Grantهای GitLab با path پروژه از روی اتصال نوشته می‌شوند. Refresh from provider نشان می‌دهد توکن چه می‌بیند. grantی که Pulse دیگر به آن نرسد گزارش می‌شود، نه بی‌صدا حذف.

محدوده‌های اتصال دیگر

اعتبار workspace از شخصی و تیمی جدا می‌ماند.

  • Personal GitLab connections — برای Code Intelligence و کار شخصی agent، در Settings → Code & reviews
  • Personal GitLab accounts — تا Pulse به‌نام شما approve، comment و merge کند، در Settings → Connected accounts
  • Team GitLab connections — مشترک با یک تیم؛ تیم را در تنظیمات Pulse Agent انتخاب کنید

لینک merge request

merge requestهای لینک‌شده روی Issue زیر Diffs دیده می‌شوند. Add pull request… URL merge request گیت‌لب از پروژهٔ اعطاشده را هم می‌پذیرد. سپس نوع لینک را انتخاب کنید: Closes this issue، Contributes to this issue، Related یا References this issue.

Unlink merge request در overflow ارتباط را برمی‌دارد. وضعیت pipeline وقتی GitLab گزارش کند روی کارت می‌آید.

ساخت branch جدید

نام branch را از Issue با Copy git branch name (Cmd/Ctrl Shift .) کپی کنید. قالب شخصی branch در کد و بازبینی‌ها است. branchی که شناسهٔ Issue را حمل کند می‌تواند خودش را لینک کند.

گذاشتن شناسهٔ Issue در عنوان MR

شناسهٔ Issue پالس (مثلاً PUL-42) را در عنوان merge request بگذارید. منبع‌های خودکار Title، Description و Branch name پیش‌فرض روشن‌اند.

استفاده از واژهٔ جادویی

یک واژهٔ جادویی به‌علاوهٔ شناسه را در توضیح merge request بگذارید — مثلاً Fixes PUL-42 یا Part of PUL-42. عبارت‌های بستن یعنی Closes this issue؛ عبارت‌های مشارکت (part of، ref، contributes to، towards) یعنی Contributes to this issue. skip یا ignore شواهد خودکار آن شناسه را سرکوب می‌کند.

Link commits to issues with magic words پیش‌فرض خاموش است و اگر این میزبان GitLab نتواند پیوند commit را به شکلی که Pulse اعتماد کند گزارش کند ممکن است در دسترس نباشد.

برای لینک چند Issue به یک merge request، چند عبارت بستن یا مشارکت در توضیح بگذارید. می‌توانید URL همان MR را روی هر Issue هم بچسبانید.

خودکارسازی merge request

این‌که یک رویداد MR Issue را به کدام وضعیت Pulse ببرد، per team در Settings → Your teams → <team> → Source control workflow پیکربندی می‌شود. Automate issue statuses پیش‌فرض خاموش است. ستون GitLab را پیکربندی کنید. فقط لینک‌های بستن یا مشارکت خودکارسازی می‌شوند.

رویدادها شامل Draft opened، Opened for review، Ready to merge، Entered the merge queue (merge train گیت‌لب)، Merged، Closed without merging و موارد دیگر است.

Code Intelligence و coding sessions در Pulse Agent پروژه‌های اعطاشده را می‌خوانند. Pulse Agent را ببینید.

خودکارسازی آماده برای merge

Ready to merge وقتی شلیک می‌شود که check، review و الزام‌های branch برای commit جاری همه برقرار باشند. webhook باید رویداد pipeline بگیرد، وگرنه Pulse هرگز نمی‌فهمد CI پاس شده.

صف merge سفارشی

اگر یک bot جای دیگری merge کند و merge request را با برچسب ببندد، Externally merged label را در صفحهٔ workflow تیم بگذارید. دیدن برچسب یک بررسی دوباره را آغاز می‌کند. تکمیل همچنان نیاز به اثبات رسیدن تغییر به branch هدف دارد — اضافه یا برداشتن برچسب به‌تنهایی کاری نمی‌کند.

قاعده‌های branch هدف

Target-branch rules پیش‌فرض را برای merge requestهایی که به branch خاصی می‌روند عوض می‌کند. نام دقیق بر الگو پیروز می‌شود؛ بین الگوها، بالایی برنده است.

لینک‌برگشت Issue

Write linkback comments یک نظر مدیریت‌شده روی merge request می‌گذارد که به Issue پالس لینک می‌دهد. پیش‌فرض خاموش.

دید public، private و internal سوییچ‌های مستقل‌اند — internal گیت‌لب همان private نیست. Include the issue title پیش‌فرض خاموش است: خوانندگان repository خوانندگان Issue نیستند. پیش‌نمایش دقیقاً Linked to Pulse issue PUL-42 است، مگر عنوان را هم بگنجانید.

انتساب خودکار و به‌روزرسانی وضعیت

Move issue to In Progress on branch copy سوییچ شخصی در کد و بازبینی‌ها است.

پرسش‌های متداول

آخرین به‌روزرسانی