

در این آموزش، توسعهدهندگان GitLab میتوانند GitLab را با برنامهها و سیستمهای خارجی ادغام کنند و قابلیتهای آن را گسترش دهند. این ادغام به تیمها امکان میدهد تا درخواستهای Merge Request را به شکل مؤثرتری مدیریت کرده و بهرهوری و همکاری را افزایش دهند.
بسیاری از کاربران GitLab میخواهند بدانند چگونه میتوانند درخواستهای Merge Request را با سیستمهای دیگر مانند ServiceNow یا ابزارهای سفارشیسازیشده متصل کنند. با این اتصال، تیمها میتوانند تاییدیههای ادغام کد را مستقیماً از سیستمهای خارجی مدیریت کنند و کنترل بیشتری بر فرآیند ادغام داشته باشند.
GitLab اکنون ویژگی بررسی وضعیت خارجی (External Status Check) را ارائه میدهد که توسعهدهندگان میتوانند با استفاده از API وضعیت درخواستهای خارجی را دریافت کنند و این اطلاعات را در فرآیند تایید Merge Request استفاده کنند.
من برنامهای طراحی کردهام که درخواستهای بررسی وضعیت را از Merge Request GitLab دریافت میکند، آنها را فهرست میکند و به کاربران خارجی اجازه میدهد بدون ورود به کنسول GitLab، درخواستها را تایید یا رد کنند.
این برنامه عملی به معماران پلتفرم GitLab کمک میکند تا درک عمیقتری از قابلیتهای GitLab در زمینه گسترش و ادغام با سیستمهای خارجی پیدا کنند.
دریافت مستقیم درخواستهای API از Merge Request
ذخیره دادهها در AlchemyDB روی همان نمونه فعال
نمایش دکمههای تایید/رد برای هر سطر تا کاربران بتوانند بررسی وضعیت Merge Request مربوطه را انجام دهند
برای استقرار برنامه بررسی وضعیت Merge Request در GitLab، مراحل زیر را دنبال کنید:
1. ایجاد پروژه جدید در GitLab
وارد حساب کاربری خود شوید و یک پروژه جدید بسازید. نام پروژه میتواند مشابه یا متفاوت از پروژه قبلی باشد.
2. استقرار برنامه با استفاده از pipeline پروژه
پروژه pipeline برنامه را در خوشه Kubernetes مستقر میکند. برای این کار:
یک عامل GitLab برای Kubernetes در پروژه جداگانه تعریف کنید.
در بخش user_access پیکربندی عامل، مسیر پروژه کپی شده را وارد کنید.
3. اضافه کردن متغیر محیطی KUBE_CONTEXT
مقدار این متغیر باید مسیر عامل تعریفشده باشد، با قالب زیر:
path/to/agent/project:agent-name
4. ایجاد فضای نام در Kubernetes
برنامه بررسی وضعیت بهصورت پیشفرض در فضای نام approval-app مستقر خواهد شد. این فضا را در خوشه Kubernetes خود ایجاد کنید.
5. افزودن راز GitLab Token
در فضای نام approval-app، یک راز به نام gitlab-token ایجاد کنید.
مقدار آن را برابر با توکن دسترسی شخصی کاربری که درخواستها را تایید میکند، تنظیم کنید. برنامه بررسی وضعیت از این توکن برای اتصال مجدد به نمونه GitLab استفاده میکند.
6. اجرای فرآیند خودکار بررسی وضعیت
این فرآیند بهطور خودکار روی آخرین نسخه پایدار کد (شاخه اصلی) اجرا میشود.
7. دسترسی به برنامه از طریق Load Balancer
پس از استقرار، برنامه پشت یک بارگذار تعادل قرار میگیرد. برای دریافت آدرس IP عمومی آن، دستور زیر را اجرا کنید:
kubectl get services -n approval-app
سپس با استفاده از URL زیر به برنامه دسترسی پیدا کنید:
http://EXTERNAL-IP/approval-apps/


برای افزودن بررسی وضعیت خارجی در GitLab و اتصال آن به برنامهای که مستقر کردهاید، مراحل زیر را دنبال کنید:
1. دسترسی به تنظیمات بررسی وضعیت
وارد پروژه GitLab شوید و از منوی سمت چپ به Settings > Merge Requests بروید. به پایین صفحه اسکرول کنید تا به بخش Status Checks برسید.
2. افزودن بررسی وضعیت جدید
روی دکمه “Add Status Check” کلیک کنید.
نام سرویس موردنظر را وارد کنید.
آدرس API برنامه بررسی وضعیت را به شکل زیر وارد کنید:
http://EXTERNAL-IP/approval-apps/status_check
توجه کنید که EXTERNAL-IP را با آدرس IP خارجی بارگذار تعادل جایگزین کنید.
3. انتخاب شاخه هدف
شاخه پیشفرض را نگه دارید یا شاخه موردنظر برای فعال شدن بررسی وضعیت را انتخاب کنید.
4. تنظیم کلید امنیتی HMAC
کلید HMAC پیشفرض را تغییر ندهید و روی “Add Status Check” کلیک کنید تا بررسی وضعیت جدید ایجاد شود.
5. ایجاد فضای نام approval-app
برنامه بررسی وضعیت بهصورت پیشفرض در فضای نام approval-app مستقر میشود. این فضای نام را در خوشه Kubernetes خود ایجاد کنید.
6. افزودن راز GitLab Token
در فضای نام approval-app، یک راز به نام gitlab-token بسازید.
مقدار آن را برابر با توکن دسترسی شخصی کاربری که Merge Request را تایید میکند تنظیم کنید. برنامه بررسی وضعیت از این توکن برای اتصال مجدد به نمونه GitLab استفاده خواهد کرد.
7. اجرای فرآیند خودکار بررسی وضعیت
فرآیند بررسی وضعیت بهطور خودکار روی آخرین نسخه پایدار کد (شاخه اصلی) اجرا میشود.
8. دریافت آدرس IP بارگذار تعادل
پس از استقرار، برنامه پشت یک Load Balancer قرار میگیرد. برای مشاهده آدرس IP عمومی، دستور زیر را اجرا کنید:
kubectl get services -n approval-app
9. دسترسی به برنامه
برای دسترسی به برنامه، از URL زیر استفاده کنید:
http://EXTERNAL-IP/approval-apps/
جایگزین کردن EXTERNAL-IP با مقدار واقعی آدرس IP خارجی الزامی است.
نکته: در اولین اجرا، جدول نتیجه خالی خواهد بود زیرا هنوز هیچ Merge Request جدیدی ثبت نشده است.


1. ایجاد یک Merge Request جدید
در پروژهای که بررسی وضعیت خارجی را پیکربندی کردهاید، یک درخواست ادغام جدید ایجاد کنید. این درخواست میتواند از هر شاخهای به شاخه اصلی (که هنگام پیکربندی بررسی خارجی انتخاب شده بود) ارسال شود.
2. مشاهده وضعیت بررسی در GitLab
پس از ایجاد Merge Request، به صفحه جزئیات آن بروید. در بخش “Status Checks”، باید مشاهده کنید که بررسی وضعیت در حال اجرا است و وضعیت آن Pending نشان داده میشود.
3. دسترسی به برنامه بررسی وضعیت
در یک تب جدید مرورگر، برنامه بررسی وضعیت را از طریق URL زیر باز کنید:
http://EXTERNAL-IP/approval-apps/
جایگزین کردن EXTERNAL-IP با آدرس IP خارجی که در مراحل قبلی به دست آوردید الزامی است.
4. تایید بررسی وضعیت
در لیست بررسی وضعیت خارجی، یک ورودی جدید مربوط به Merge Request تازه ایجاد شده مشاهده خواهید کرد. روی دکمه تایید (Approve) کلیک کنید.
5. بررسی تغییر وضعیت در GitLab
به صفحه جزئیات Merge Request بازگردید. اکنون باید ببینید که وضعیت بررسی از Pending به Approved تغییر کرده است. این نشان میدهد که بررسی وضعیت خارجی با موفقیت عمل کرده و برنامه به درستی با GitLab ادغام شده است.
اگر اجرای برنامه بررسی وضعیت مطابق انتظار پیش نرفت، میتوانید از نکات زیر برای عیبیابی استفاده کنید:
همیشه بهتر است لاگهای برنامه بررسی وضعیت خارجی را بررسی کنید تا مشکلات احتمالی را شناسایی کنید.
برای مشاهده نام پادهای برنامه در فضای نام approval-app از دستور زیر استفاده کنید:
kubectl get pods -n approval-app
سپس با استفاده از دستور زیر، لاگهای یک پاد مشخص را مشاهده کنید:
kubectl logs [POD-NAME] -n approval-app
این دستور پیامها و خروجیهای خطایی که پاد تولید کرده را نمایش میدهد و برای بررسی وضعیت، عیبیابی و پیگیری فعالیتهای پاد بسیار مفید است.
برای بررسی دادههای ذخیره شده در برنامه، میتوانید به پاد برنامه وارد شوید و پایگاه داده SQLite را مشاهده کنید:
1. ورود به پاد از طریق SSH:
kubectl exec -it [POD-NAME] -n approval-app -- /bin/sh
2. رفتن به دایرکتوری برنامه:
cd instance
3. باز کردن پایگاه داده SQLite:
sqlite3 gitlab_status_checks.db
4. مشاهده جداول موجود در پایگاه داده:
.tables
5. مشاهده ساختار جدول status_check:
PRAGMA table_info('status_check');
6. مشاهده تمام رکوردهای جدول status_check:
select * from status_check;
این دستورات به شما امکان میدهند وضعیت بررسیها، سوابق تایید یا رد درخواستها و دیگر اطلاعات حیاتی را مشاهده و تحلیل کنید.






در صورتی که این مقاله Merge Request در GitLab برای شما مفید و آموزنده بود، پیشنهاد میشود برای اطلاع از سایر مقالات مستر لایسنس به صفحه وبلاگ مستر لایسنس مراجعه نمایید.



تیم مستر لایسنس با بهره گیری از متخصصان مجرب امنیتی قادر به ارائه خدمات و راهکار در زمینه مهندسی معکوس و ایجاد لایسنس نرم افزارهای خارجی با تمامی امکانات کامل می باشد .
تمامی حقوق قانونی این سایت مربوط به MRlicense میباشد