ProHoster > وبلاگ > اداره > # GitLab 13.4 با مخزن HashiCorp برای متغیرهای CI و Kubernetes Agent منتشر شد
# GitLab 13.4 با مخزن HashiCorp برای متغیرهای CI و Kubernetes Agent منتشر شد
نسخه 13.4 با حافظه HashiCorp برای متغیرهای CI، Kubernetes Agent و مرکز امنیتی و همچنین ویژگیهای قابل تعویض در Starter منتشر شده است.
در GitLab، ما همیشه به این فکر میکنیم که چگونه میتوانیم به کاربران در کاهش ریسک، بهبود کارایی و بهبود سرعت تحویل در پلتفرم مورد علاقهتان کمک کنیم. در این ماه ما بسیاری از ویژگیهای مفید جدید را اضافه کردهایم که قابلیتهای امنیتی را افزایش میدهند، تعداد آسیبپذیریها را کاهش میدهند، کارایی را افزایش میدهند، کار با GitLab را ساده میکنند و به تیم شما کمک میکنند ویژگیها را حتی سریعتر ارائه دهند. امیدواریم که ویژگی های اصلی نسخه و همچنین برای شما مفید واقع شود 53 ویژگی جدید دیگر، در این نسخه اضافه شده است.
یکی دیگر از راه های کاهش ریسک استفاده از جدید است نماینده GitLab Kubernetes. تیمهای عملیاتی میتوانند خوشههای Kubernetes را از GitLab بدون نیاز به قرار دادن خوشه خود در کل اینترنت مستقر کنند. ما همچنین در حال معرفی پشتیبانی کنترل نسخه خودکار برای فایلهای جدید Terraform State هستیم GitLab حالت Terraform را مدیریت کرد برای پشتیبانی از انطباق و سهولت اشکال زدایی. بالاخره داشبورد امنیتی نمونه شد مرکز امنیتی GitLab با گزارش های آسیب پذیری و تنظیمات امنیتی.
کار راحت تر و کارآمدتر با GitLab
ما جستجوی جهانی خود را برای گنجاندن آن بهبود بخشیده ایم پیمایش سریع از نوار جستجو، به شما امکان می دهد به راحتی به آخرین بلیط ها، گروه ها، پروژه ها، تنظیمات و موضوعات راهنما بروید. ما مشتاقیم که صفحات GitLab را اعلام کنیم تغییر مسیرها ظاهر شد برای تغییر مسیر صفحات و دایرکتوری های فردی در داخل سایت، که به کاربران اجازه می دهد تا سایت های خود را به طور موثرتری گسترش دهند. و برای کسانی که می خواهند اطلاعات گسترده ای در مورد استقرار دریافت کنند، این نسخه اجازه می دهد صدها استقرار پروژه پشتیبانی شده را از نوار ابزار محیطی مدیریت کنید!
فابیو کمک قابل توجهی کرد مشارکت в نمایش پوشش کد در تفاوت های درخواست ادغام - قابلیتی که مدت هاست در انجمن GitLab منتظر آن بوده است. این یک کمک واقعاً مهم با تغییرات غیر ضروری است که نیاز به همکاری مداوم با اعضای تیم GitLab دارد و بسیاری از بخشهای پروژه مانند UX، front-end و back-end را تحت تأثیر قرار میدهد.
ویژگی های اصلی نسخه GitLab 13.4
از کلیدهای HashiCorp Vault در کارهای CI استفاده کنید
در نسخه 12.10، GitLab توانایی دریافت و انتقال کلیدها به کارهای CI را با استفاده از کنترلر کار GitLab (رانر GitLab) معرفی کرد. اکنون در حال گسترش هستیم احراز هویت با استفاده از JWT، اضافه کردن نحو جدید secrets برای تشکیل پرونده .gitlab-ci.yml. این کار راه اندازی و استفاده از مخزن HashiCorp با GitLab را آسان تر می کند.
ادغام GitLab با Kubernetes مدتهاست که امکان استقرار در خوشههای Kubernetes را بدون نیاز به پیکربندی دستی فراهم کرده است. بسیاری از کاربران سهولت استفاده از این بسته را دوست داشتند، در حالی که برخی دیگر با مشکلاتی مواجه شدند. برای ادغام فعلی، خوشه شما باید از اینترنت قابل دسترسی باشد تا GitLab به آن دسترسی داشته باشد. برای بسیاری از سازمان ها، این امکان پذیر نیست، زیرا آنها دسترسی به خوشه ها را به دلایل امنیتی، انطباق، یا مقررات محدود می کنند. برای دور زدن این محدودیت ها، کاربران باید ابزارهای خود را در بالای GitLab بسازند، در غیر این صورت نمی توانند از این ویژگی استفاده کنند.
امروز ما در حال معرفی GitLab Kubernetes Agent هستیم، راهی جدید برای استقرار در خوشه های Kubernetes. عامل در داخل خوشه شما اجرا می شود، بنابراین نیازی نیست آن را در معرض کل اینترنت قرار دهید. عامل استقرار را با درخواست تغییرات جدید از GitLab هماهنگ می کند، به جای اینکه GitLab به روز رسانی ها را به کلاستر فشار دهد. مهم نیست از چه روش GitOps استفاده می کنید، GitLab شما را تحت پوشش قرار می دهد.
لطفا توجه داشته باشید که این اولین نسخه از عامل است. تمرکز فعلی ما برای GitLab Kubernetes Agent پیکربندی و مدیریت استقرارها از طریق کد است. برخی از ویژگیهای ادغام Kubernetes موجود، مانند بردهای استقرار و برنامههای مدیریتشده GitLab، هنوز پشتیبانی نمیشوند. ما فرض می کنیمکه این قابلیتها در نسخههای بعدی و همچنین ادغامهای جدید با تمرکز بر امنیت و انطباق به عامل اضافه میشوند.
پیش از این، سیستم مجوزهای GitLab تقسیم درست مسئولیتها در تیم شما بین مسئول توسعه و کسانی که مسئول استقرار هستند را دشوار میکرد. با انتشار GitLab 13.4، میتوانید اجازه دهید درخواستهای ادغام برای استقرار را تأیید کند، و همچنین به افرادی که کد را نمینویسند، واقعاً کد را استقرار دهید، بدون اینکه به آنها حقوق دسترسی نگهدارنده بدهید (در محلی سازی روسی GitLab "نگهدار" ).
پیش از این، مدیریت آسیبپذیری در سطح نمونه از نظر عملکرد و انعطافپذیری محدود بود. رابط کاربری یک صفحه واحد بود که جزئیات آسیب پذیری ها، نمودارهای متریک و تنظیمات را ترکیب می کرد. فضای زیادی برای توسعه این ویژگی ها یا استفاده از سایر ویژگی های امنیتی وجود ندارد.
ما تغییرات اساسی در نحوه مدیریت امنیت و شفافیت در GitLab ایجاد کرده ایم. پنل امنیتی نمونه به یک مرکز امنیتی کامل تبدیل شده است. بزرگترین تغییر، معرفی ساختار منوی جدید است: به جای یک صفحه، اکنون داشبورد امنیتی، گزارش آسیب پذیری و بخش تنظیمات را به طور جداگانه می بینید. در حالی که عملکرد تغییر نکرده است، تقسیم آن به بخش ها امکان بهبود این بخش را فراهم می کند که در غیر این صورت دشوار است. این همچنین زمینه را برای افزودن سایر قابلیت های مرتبط با امنیت در آینده فراهم می کند.
بخش اختصاصی گزارش آسیب پذیری اکنون فضای بیشتری برای نمایش جزئیات مهم دارد. در اینجا آسیب پذیری هایی است که در حال حاضر در لیست آسیب پذیری های پروژه قرار دارند. انتقال ویجتها با معیارهای آسیبپذیری به بخش جداگانه، یک پنل کنترل امنیتی مناسب ایجاد میکند. اکنون یک بوم برای تجسمهای آینده است - نه فقط برای مدیریت آسیبپذیری، بلکه برای هر معیار مربوط به امنیت. در نهایت، یک ناحیه تنظیمات جداگانه، فضای مشترکی را برای تمام تنظیمات امنیتی در سطح نمونه ایجاد می کند، نه فقط مدیریت آسیب پذیری.
در اوایل سال جاری، GitLab تعهدی را پذیرفت حرکت 18 ویژگی به منبع باز در این نسخه، ما انتقال ویژگی های قابل تعویض به برنامه Starter را تکمیل کرده ایم و به انتقال آنها به Core از Git Lab 13.5. ما خوشحالیم که این ویژگی را برای کاربران بیشتری ارائه میکنیم و میخواهیم نحوه استفاده شما از آن را بدانیم.
(هسته، استارت، ممتاز، نهایی، رایگان، برنز، نقره، طلا) در دسترس بودن
گاهی اوقات هنگام پیمایش GitLab می خواهید مستقیماً به یک پروژه خاص بروید نه صفحه نتایج جستجو.
با استفاده از نوار جستجوی جهانی، می توانید به سرعت به آخرین بلیط ها، گروه ها، پروژه ها، تنظیمات و موضوعات راهنما بروید. حتی می توانید از کلید میانبر استفاده کنید /برای حرکت دادن مکان نما به نوار جستجو برای حرکت در GitLab حتی کارآمدتر!
هنگام بررسی یک درخواست ادغام، تشخیص اینکه آیا کد تغییر یافته تحت پوشش تست های واحد قرار می گیرد یا خیر، ممکن است دشوار باشد. در عوض، بازبینها میتوانند به پوشش کلی تکیه کنند و قبل از تأیید درخواست ادغام، افزایش آن را درخواست کنند. این می تواند منجر به رویکردی تصادفی برای نوشتن تست ها شود که در واقع کیفیت کد یا پوشش تست را بهبود نمی بخشد.
اکنون، هنگام مشاهده تفاوت درخواست ادغام، نمایش تصویری پوشش کد را مشاهده خواهید کرد. علائم جدید به شما این امکان را می دهد که به سرعت درک کنید که آیا کد تغییر یافته توسط یک تست واحد پوشش داده می شود یا خیر، که به سرعت بازبینی کد و زمان ادغام و استقرار کد جدید کمک می کند.
از زمان انتشار GitLab 12.5 با استفاده از پانل های محیطی شما می توانید وضعیت محیط ها را نظارت کنید، اما نه بیش از هفت محیط در سه پروژه. ما این پانل را در نسخه 13.4 با صفحه بندی آن بهبود بخشیده ایم تا به شما در حفظ و مدیریت محیط های خود در مقیاس کمک کنیم. اکنون می توانید محیط های بیشتری را در پروژه های بیشتری ببینید.
تست fuzzing API یک راه عالی برای یافتن اشکالات و آسیبپذیریها در برنامههای کاربردی وب و APIهای شماست که ممکن است سایر اسکنرها و روشهای تست آن را از دست بدهند.
تست فازی API در GitLab به شما این امکان را می دهد که ارائه دهید مشخصات OpenAPI v2 یا فایل HAR برنامه شما و سپس به طور خودکار داده های ورودی تصادفی را تولید می کند که برای آزمایش موارد لبه و یافتن اشکالات طراحی شده است. نتایج بلافاصله در خط لوله شما قابل مشاهده است.
این اولین نسخه آزمایشی فاز API ما است و ما دوست داریم نظر شما را بشنویم. ما بیشتر در انبار برای تست فاز داریم بسیاری از ایده ها، که بر اساس انتشار این ویژگی خواهیم بود.
پیش از این، ایجاد یک نمودار در داشبورد متریک در GitLab کار آسانی نبود. پس از ایجاد معیار در فایل YAML داشبورد، تغییراتی در آن ایجاد کردید master، بدون اینکه بتوانید تأیید کنید که نمودار جدید ایجاد شده دقیقاً همانطور که شما نیاز دارید کار می کند. با شروع این نسخه، میتوانید با ایجاد نمودار، تغییرات را پیشنمایش کنید و قبل از ارسال تغییرات به فایل YAML داشبورد، از نتیجه آن ایده بگیرید.
هنگامی که تعداد زیادی پروژه را در GitLab مدیریت می کنید، به یک منبع اطلاعاتی واحد در مورد نحوه تغییر پوشش کد در طول زمان در تمام پروژه ها نیاز دارید. پیش از این، نمایش این اطلاعات نیاز به کار دستی خسته کننده و وقت گیر داشت: باید داده های پوشش کد را از هر پروژه دانلود کرده و در یک جدول ترکیب کنید.
در نسخه 13.4 امکان مونتاژ آسان و سریع فراهم شد .csv فایل با تمام داده ها در مورد پوشش کد برای همه پروژه های گروه یا برای مجموعه ای از پروژه ها. این ویژگی MVC است، قابلیت آن را به دنبال خواهد داشت میانگین پوشش در طول زمان.
این نسخه پشتیبانی از چندین زبان جدید را برای تست فازی با هدف پوشش کامل معرفی می کند.
اکنون میتوانید قابلیتهای کامل تست فازی را در برنامههای جاوا، Rust و Swift خود ارزیابی کنید و خطاها و آسیبپذیریهایی را که ممکن است سایر اسکنرها و روشهای تست از دست بدهند، بیابید.
صفحه Environments وضعیت کلی محیط های شما را نشان می دهد. در این نسخه ما این صفحه را با افزودن نمایشگر هشدار بهبود بخشیده ایم. هشدارهای فعال همراه با وضعیت محیطهایتان به شما کمک میکند تا سریعاً برای تصحیح موقعیتهای پیش آمده اقدام کنید.
با استفاده از خطوط لوله تو در تو، اکنون امکان اجرای خطوط لوله جدید در خطوط لوله فرزند وجود دارد. اگر به انعطاف پذیری برای تولید تعداد متغیر خطوط لوله نیاز دارید، سطح عمق اضافی می تواند مفید باشد.
قبلاً، هنگام استفاده از خطوط لوله تو در تو، هر خط لوله فرزند نیاز به یک کار ماشه ای داشت که به صورت دستی در خط لوله اصلی تعریف شود. اکنون می توانید خطوط لوله تودرتو ایجاد کنید که به صورت پویا هر تعداد خط لوله تودرتو جدید را راه اندازی کنند. به عنوان مثال، اگر شما یک مخزن تکی دارید، می توانید به صورت پویا اولین خط فرعی را ایجاد کنید، که خود تعداد مورد نیاز خطوط لوله جدید را بر اساس تغییرات در شاخه ایجاد می کند.
پیش از این، پیمایش بین خطوط لوله اصلی و تودرتو خیلی راحت نبود - برای رسیدن به خط لوله مورد نظر به کلیک های زیادی نیاز داشتید. همچنین تشخیص اینکه کدام کار خط لوله را شروع کرده است آسان نبود. اکنون مشاهده اتصالات بین خطوط لوله مادر و تودرتو بسیار آسان تر خواهد بود.
اگر استفاده کردید ماتریس وظیفه، ممکن است متوجه شده باشید که تعیین اینکه کدام متغیر ماتریسی برای یک کار خاص استفاده شده است دشوار است، زیرا نام مشاغل شبیه به matrix 1/4. در نسخه 13.4، مقادیر متغیر مربوطه را خواهید دید که در آن شغل به جای نام شغل عمومی استفاده شده است. به عنوان مثال، اگر هدف شما اشکال زدایی معماری x86 باشد، کار فراخوانی می شود matrix: debug x86.
کاربران GitLab اکنون می توانند حساب های GitLab خود را به حساب Atlassian Cloud خود متصل کنند. این به شما امکان می دهد با اعتبار Atlassian خود به GitLab وارد شوید و همچنین زمینه را برای بهبودهای ادغام در آینده فراهم می کند. گیتلب با جیرا و با محصولات دیگر از خط اطلسیان.
سازمانهای متمرکز بر انطباق به روشی نیاز دارند تا به حسابرسان دیدی جامع از اجزای مرتبط با هر تغییری در تولید نشان دهد. در GitLab، این به معنای جمعآوری همه چیز در یک مکان است: درخواستهای ادغام، بلیطها، خطوط لوله، اسکنهای امنیتی و سایر دادههای commit. تا به حال، یا باید آن را به صورت دستی در GitLab جمع آوری می کردید یا ابزارهای خود را برای جمع آوری اطلاعات پیکربندی می کردید که خیلی کارآمد نبود.
اکنون میتوانید این دادهها را بهصورت برنامهریزی جمعآوری و صادر کنید تا نیازهای حسابرسی را برآورده کنید یا تجزیه و تحلیلهای دیگری را انجام دهید. برای صادر کردن لیستی از تمام تعهدات ادغام برای گروه فعلی، باید به آن بروید داشبوردهای سازگاری و روی دکمه کلیک کنید لیست همه ادغام commit. فایل حاصل شامل تمام تعهدات درخواست ادغام، نویسنده آنها، شناسه درخواست ادغام مرتبط، گروه، پروژه، تایید کننده ها و سایر اطلاعات خواهد بود.
مدیریت دسترسی به فضای نام GitLab بخش مهمی از تلاشهای انطباق است. از اصول کمترین امتیاز گرفته تا غیرفعال کردن دسترسی زمانبندی شده، ممکن است چندین الزام مرتبط با توکنهای دسترسی شخصی در GitLab وجود داشته باشد. برای آسانتر کردن نگهداری و مدیریت همه این اعتبارنامههای کاربر در فضای نام شما، ما این امکان را فراهم کردهایم که همه نشانههای دسترسی شخصی را فهرست کنیم و به صورت اختیاری دسترسی را رد کنید از طریق API.
این پیشرفتها در GitLab API به کاربران اجازه میدهد تا توکنهای دسترسی شخصی خود را فهرست کرده و لغو کنند، و مدیران نیز توکنهای کاربران خود را فهرست و لغو کنند. اکنون برای مدیران آسانتر خواهد بود که ببینند چه کسی به فضای نام آنها دسترسی دارد، تصمیمات دسترسی را بر اساس دادههای کاربر اتخاذ کند و نشانههای دسترسی شخصی را که ممکن است به خطر افتاده یا خارج از خطمشیهای مدیریت دسترسی شرکت باشد، لغو کنند.
چند ماه پیش ما برنامه ای را اعلام کردیم ترجمه 18 ویژگی به کد منبع باز. با تلاش برای تحقق این وعده، ما داده ایم بلیط های مرتبط, صدور بلیط به CSV и حالت فوکوس تخته وظیفه (در بومی سازی روسی GitLab "تصاویر بحث") موجود در طرح هسته. این فقط برای روابط "پیوند شده" اعمال می شود، روابط "بلاک" و "مسدود شده" در طرح های پولی باقی می مانند.
هنگام بررسی تغییرات کد، بحثها و تعهدات درخواست ادغام، اغلب مطلوب است که یک بررسی محلی از شعبه برای بررسی عمیقتر انجام شود. با این حال، یافتن نام موضوع به طور فزاینده ای دشوار می شود زیرا محتوای بیشتری به توضیحات درخواست ادغام اضافه می شود و شما باید صفحه را بیشتر به سمت پایین اسکرول کنید.
ما نام شعبه را به نوار کناری درخواست ادغام اضافه کردهایم تا در هر زمان به آن دسترسی داشته باشید و نیازی به پیمایش در کل صفحه نباشد. درست مانند پیوند به درخواست ادغام، بخش شاخه منبع حاوی یک دکمه مناسب "کپی" است.
سپاس ها اتان ریسور برای سهم بزرگ شما در توسعه این ویژگی!
درخواستهای ادغام که تغییراتی را به چندین فایل اضافه میکنند، گاهی اوقات تفاوتهای فایلهای بزرگ را جمع میکنند تا عملکرد رندر را بهبود ببخشند. هنگامی که این اتفاق می افتد، ممکن است به طور تصادفی از یک فایل در حین بررسی رد شود، به خصوص در درخواست های ادغام با تعداد زیادی فایل. با شروع نسخه 13.4، درخواستهای ادغام، تفاوتهایی را که حاوی فایلهای تا شده هستند علامتگذاری میکنند، بنابراین در طول بررسی کد، این فایلها را از دست نخواهید داد. برای وضوح بیشتر، ما قصد داریم در نسخه های بعدی به این فایل ها برجسته اضافه کنیم. منتظر به روز رسانی در بلیط gitlab شماره 16047.
در بخش تفاوت درخواست ادغام، فایل های بزرگ جمع می شوند تا عملکرد بهبود یابد. با این حال، هنگام بررسی کد، ممکن است زمانی که بازبین لیست فایلها را مرور میکند، برخی از فایلها نادیده گرفته شوند، زیرا همه فایلهای بزرگ جمع میشوند.
ما یک هشدار قابل مشاهده در بالای صفحه تفاوت درخواست ادغام اضافه کرده ایم تا به کاربران اطلاع دهیم که یک فایل ادغام شده در این بخش وجود دارد. به این ترتیب، هیچ تغییری در درخواست ادغام در طول بررسی از دست نخواهید داد.
پیش از این، زمانی که گره اولیه یک خوشه Gitaly آفلاین میشد، مخازن روی آن گره بهعنوان فقط خواندنی علامتگذاری میشدند. این امر در شرایطی که تغییراتی در گره وجود داشت که هنوز تکرار نشده بودند، از دست دادن داده ها جلوگیری می کرد. هنگامی که گره آنلاین شد، GitLab به طور خودکار بازیابی نشد و مدیران مجبور بودند به صورت دستی فرآیند همگام سازی را شروع کنند یا از دست دادن داده را بپذیرند. موقعیت های دیگر، مانند شکست یک کار تکرار در یک گره ثانویه، همچنین می تواند منجر به مخازن قدیمی یا فقط خواندنی شود. در این حالت، مخزن تا زمانی که عملیات نوشتن بعدی رخ دهد که کار تکرار را شروع می کند، بیات می ماند.
برای حل این مسئله پرفکت اکنون زمانی که یک مخزن قدیمی را در یک گره و آخرین نسخه مخزن را در گره دیگری شناسایی می کند، یک کار تکرار را برنامه ریزی می کند. این کار تکرار، مخزن را بهطور خودکار بهروز نگه میدارد و نیازی به بازیابی دستی دادهها را از بین میبرد. بازیابی خودکار همچنین تضمین میکند که گرههای ثانویه بهجای اینکه منتظر عملیات نوشتن بعدی باشند، بهسرعت بهروز میشوند در صورت شکست یک کار تکرار. از آنجایی که بسیاری از خوشه های Gilaly تعداد زیادی مخزن را ذخیره می کنند، این امر به طور قابل توجهی زمان صرف شده توسط مدیران و مهندسان قابلیت اطمینان را برای بازیابی داده ها پس از یک خطا کاهش می دهد.
علاوه بر این، تعمیر خودکار شروع به تکثیر مخازن در هر گره Gitaly جدید اضافه شده به خوشه می کند و کار دستی را هنگام اضافه کردن گره های جدید حذف می کند.
ارتباط موثر در GitLab بر اساس لیست کارهای انجام شده است. اگر در یک نظر از شما نام برده شده است، بسیار مهم است که بتوانید به کار بروید و یا شروع به انجام کاری کنید یا آن را به عنوان قبلاً تکمیل شده علامت گذاری کنید. همچنین مهم است که بتوانید زمانی که باید روی چیزی کار کنید یا بعداً به آن بازگردید، کاری را به خودتان محول کنید.
قبلاً، هنگام کار با طرح ها نمی توانستید کارها را اضافه کنید یا آنها را به عنوان تکمیل شده علامت گذاری کنید. این به طور جدی کارایی ارتباط بین تیم های محصول را مختل کرد، زیرا کارهای انجام شده یک عنصر حیاتی از گردش کار GitLab است.
در نسخه 13.4، طرح ها با نظرات بلیط در استفاده از وظایف، که کار با آنها را سازگارتر و کارآمدتر می کند، مطابقت دارند.
ما راهنمای عیبیابی GitLab CI/CD را با اطلاعات بیشتر در مورد مشکلات رایجی که ممکن است با آن مواجه شوید، بهبود بخشیدهایم. ما امیدواریم که اسناد بهبودیافته منبع ارزشمندی برای کمک به شما در راه اندازی و اجرای سریع و آسان GitLab CI/CD باشد.
قبلاً، درخواستهای ادغام ممکن بود بهدلیل نظرات دیرهنگام، تصادفاً از صف ادغام خارج شوند. اگر یک درخواست ادغام قبلاً در صف بود و شخصی نظری به آن اضافه کرد که یک بحث حل نشده جدید ایجاد کرد، درخواست ادغام برای ادغام واجد شرایط نبود و از صف خارج می شد. اکنون، پس از اضافه شدن درخواست ادغام به صف ادغام، نظرات جدید را می توان بدون ترس از اختلال در فرآیند ادغام اضافه کرد.
توسعه دهندگان باید بتوانند مقدار پوشش کد را پس از تکمیل خط لوله مشاهده کنند - حتی در سناریوهای پیچیده مانند اجرای خط لوله با چندین کار که برای محاسبه مقدار پوشش نیاز به تجزیه و تحلیل دارند. قبلاً، ویجت درخواست ادغام فقط میانگین این مقادیر را نشان میداد، به این معنی که برای دریافت مقادیر پوشش متوسط باید به صفحه کار بروید و به درخواست ادغام برگردید. برای صرفهجویی در وقت و این مراحل اضافی، ویجت را ساختیم که مقدار پوشش متوسط، تغییرات آن بین شاخههای هدف و منبع، و راهنمای ابزاری را نمایش دهد که مقدار پوشش را برای هر شغلی که میانگین بر اساس آن محاسبه شده است، نشان میدهد.
رجیستری بسته GitLab مکانی برای ذخیره و توزیع بسته ها در قالب های مختلف است. هنگامی که بسته های زیادی در پروژه یا گروه خود دارید، باید به سرعت بسته های استفاده نشده را شناسایی کرده و آنها را حذف کنید تا از دانلود آنها توسط افراد جلوگیری شود. می توانید بسته ها را از رجیستری خود حذف کنید بسته API یا از طریق رابط کاربری رجیستری بسته. با این حال، تا کنون نمیتوانستید هنگام مشاهده یک گروه از طریق رابط کاربری، بستهها را حذف کنید. در نتیجه، شما مجبور بودید بسته های غیر ضروری را بر اساس هر پروژه حذف کنید، که ناکارآمد بود.
اکنون می توانید هنگام مشاهده رجیستری بسته یک گروه، بسته ها را حذف کنید. به سادگی به صفحه رجیستری بسته گروه بروید، بسته ها را بر اساس نام فیلتر کنید و هر موردی را که نیاز ندارید حذف کنید.
می توانید از مخزن Conan در GitLab برای انتشار و توزیع وابستگی های C/C++ استفاده کنید. با این حال، بستههای قبلی فقط میتوانستند تا سطح نمونه مقیاس شوند، زیرا نام بسته Conan حداکثر میتوانست 51 کاراکتر باشد. مثلاً اگر میخواهید بستهای را از یک زیرگروه منتشر کنید gitlab-org/ci-cd/package-stage/feature-testing/conan، انجام آن تقریبا غیرممکن بود.
اکنون میتوانید بستههای Conan را تا سطح پروژه کاهش دهید و انتشار و توزیع وابستگیهای پروژههای خود را آسان میکند.
ما هیجان زده هستیم که اسکن های وابستگی برای پروژه های C، C++، C# و Net. که از NuGet 4.9+ یا مدیریت بسته Conan استفاده می کنند را به لیست خود اضافه کنیم. زبان ها و فریمورک های پشتیبانی شده. اکنون می توانید اسکن وابستگی را به عنوان بخشی از مرحله Secure برای بررسی آسیب پذیری های شناخته شده در وابستگی های اضافه شده از طریق مدیران بسته فعال کنید. آسیب پذیری های یافت شده در درخواست ادغام شما به همراه سطح شدت آنها نمایش داده می شوند تا قبل از اجرای ادغام بدانید وابستگی جدید چه خطراتی دارد. شما همچنین می توانید پروژه خود را برای نیاز پیکربندی کنید تایید درخواست ادغام برای وابستگی های دارای آسیب پذیری با سطوح شدت بحرانی (بحرانی)، بالا (بالا) یا ناشناخته (ناشناس).
قبلاً هنگام تنظیم تنظیمات درخواست ادغام وقتی خط لوله تمام شد، ادغام شوید (Merge When Pipeline Succeeds, MWPS) هیچ اعلان ایمیلی ارسال نشد. باید به صورت دستی وضعیت را بررسی میکردید یا منتظر اعلان ادغام میشید. با این نسخه، ما خوشحالیم که مشارکت های کاربران را ارائه می دهیم @ravishankar2kool، که این مشکل را با افزودن اعلانهای خودکار به همه افرادی که در یک درخواست ادغام مشترک هستند، هنگامی که بازبینی تنظیم ادغام را به MWPS تغییر میدهد، حل کرد.
هر مشکلی که فوراً ایجاد میشود هشدارها را ایجاد نمیکند: کاربران قطعیها را گزارش میکنند و اعضای تیم مسائل مربوط به عملکرد را بررسی میکنند. حوادث اکنون نوعی بلیط هستند، بنابراین تیم های شما می توانند به سرعت آنها را به عنوان بخشی از گردش کار عادی خود ایجاد کنند. کلیک وظیفه جدید از هر کجای GitLab و در میدان نوع انتخاب کنید حادثه.
ما هشدارهای GitLab را با افزودن یک نوع ذکر جدید به طور خاص برای آنها در GitLab Markdown بهبود بخشیدهایم و اشتراکگذاری و ذکر هشدارها را آسانتر میکنیم. استفاده کنید ^alert#1234برای ذکر هشدار در هر فیلد Markdown: در حوادث، بلیطها یا درخواستهای ادغام. این همچنین به شما کمک می کند تا مشاغلی را که از طریق هشدارها به جای بلیط یا درخواست های ادغام ایجاد می شوند، شناسایی کنید.
شرح هشدار حاوی اطلاعات مهمی برای عیبیابی و بازیابی است، و این اطلاعات باید به راحتی قابل دسترسی باشد، بنابراین لازم نیست ابزارها یا برگهها را هنگام کار برای حل یک حادثه تغییر دهید. حوادث ایجاد شده از هشدارها توضیحات کامل هشدار را در برگه نمایش می دهند جزئیات هشدار.
جستجوی پیشرفته 75 درصد سریعتر
(استارت، پریمیوم، نهایی، برنز، نقره، طلا) در دسترس بودن
GitLab، به عنوان یک برنامه واحد، توانایی منحصر به فرد برای کشف سریع محتوا در کل گردش کار DevOps شما را دارد. در GitLab 13.4، جستجوی پیشرفته نتایج را 75٪ سریعتر برمی گرداند محدود به فضاهای نام و پروژه های خاص است، مانند GitLab.com.
گزینه ای برای به تعویق انداختن حذف پروژه وجود داشت معرفی شده در 12.6. با این حال، قبلاً امکان مشاهده همه پروژه های در انتظار حذف در یک مکان وجود نداشت. مدیران نمونه کاربر GitLab اکنون میتوانند تمام پروژههای حذف در انتظار را به همراه دکمههایی برای بازیابی آسان آن پروژهها در یک مکان مشاهده کنند.
این ویژگی با جمعآوری تمام اطلاعات مربوطه در یک مکان و ارائه توانایی لغو اقدامات حذف ناخواسته، کنترل بیشتری بر حذف پروژه به مدیران میدهد.
قبلاً، قوانین فشار گروهی فقط با بازدید از هر گروه به صورت جداگانه از طریق رابط کاربری GitLab و اعمال آن قوانین پیکربندی می شد. اکنون می توانید این قوانین را از طریق یک API برای پشتیبانی از ابزارهای سفارشی و اتوماسیون GitLab مدیریت کنید.
ذخیره سازی اعتبار به مدیران اطلاعاتی را که برای مدیریت اعتبار کاربری برای نمونه GitLab خود نیاز دارند، ارائه می دهد. از آنجایی که سازمانهای متمرکز بر انطباق از نظر سختگیری خطمشیهای مدیریت اعتبار خود متفاوت هستند، ما دکمهای اضافه کردهایم که به مدیران اجازه میدهد به صورت اختیاری رمز دسترسی شخصی کاربر (PAT) را لغو کنند. مدیران اکنون می توانند به راحتی PAT های بالقوه در معرض خطر را لغو کنند. این ویژگی برای سازمانهایی مفید است که میخواهند گزینههای انطباق انعطافپذیرتری برای به حداقل رساندن اختلال در کاربرانشان داشته باشند.
در GitLab 13.4، راه جدیدی را برای سفارشی کردن ویرایشگر سایت استاتیک معرفی می کنیم. اگرچه فایل پیکربندی هیچ گونه تنظیماتی را در این نسخه ذخیره یا دریافت نمی کند، ما در حال ایجاد زمینه برای سفارشی سازی رفتار ویرایشگر در آینده هستیم. در نسخه های بعدی به فایل اضافه خواهیم کرد .gitlab/static-site-editor.yml پارامترهای نصب آدرس سایت پایه، که در آن تصاویر بارگذاری شده در ویرایشگر ذخیره می شوند، نادیده گرفتن تنظیمات نحو Markdown و سایر تنظیمات ویرایشگر.
Front Matter یک روش منعطف و راحت برای تعریف متغیرهای صفحه در فایل های داده برای پردازش توسط مولد سایت استاتیک است. معمولاً برای تنظیم عنوان صفحه، الگوی طرحبندی یا نویسنده استفاده میشود، اما میتوان از آن برای ارسال هر نوع متادیتا به ژنراتور هنگام رندر صفحه در HTML استفاده کرد. قسمت مقدماتی که در بالای هر فایل داده گنجانده شده است، معمولاً به صورت YAML یا JSON قالب بندی می شود و نیاز به نحو سازگار و دقیق دارد. کاربرانی که با قوانین نحوی خاص آشنا نیستند ممکن است به طور ناخواسته نشانه گذاری نامعتبر را وارد کنند که به نوبه خود می تواند باعث مشکلات قالب بندی یا حتی خرابی در ساخت شود.
حالت ویرایش WYSIWYG ویرایشگر سایت استاتیک از قبل مقدمه را از ویرایشگر حذف می کند تا از این خطاهای قالب بندی جلوگیری کند. با این حال، این شما را از تغییر مقادیر ذخیره شده در این قسمت بدون بازگشت به ویرایش در حالت منبع جلوگیری می کند. در GitLab 13.4، میتوانید به هر فیلدی دسترسی داشته باشید و مقدار آن را در یک رابط مبتنی بر فرمهای آشنا ویرایش کنید. هنگامی که دکمه فشار داده می شود تنظیمات (تنظیمات) یک پانل باز می شود که یک فیلد فرم برای هر کلید تعریف شده در ابتدا نشان می دهد. فیلدها با مقدار فعلی پر شده اند و ویرایش هر یک از آنها به سادگی وارد کردن آن در فرم وب است. ویرایش مقدمه به این روش از نحو پیچیده جلوگیری می کند و به شما امکان کنترل کامل بر محتوا را می دهد و در عین حال اطمینان حاصل می کنید که نتیجه نهایی به طور مداوم قالب بندی شده است.
برای کاربران Jira در GitLab: برنامه GitLab برای Jira и رابط DVCS به شما امکان می دهد اطلاعات مربوط به تعهدات GitLab و درخواست های ادغام را مستقیماً در Jira نمایش دهید. همراه با ادغام داخلی Jira ما، می توانید به راحتی بین دو برنامه در حین کار حرکت کنید.
این ویژگیها قبلاً فقط در طرح Premium ما موجود بودند، اما اکنون برای همه کاربران در دسترس هستند!
یک کلاستر Gitaly به شما امکان می دهد مخازن Git را در چندین گره Gitaly "گرم" تکرار کنید. این امر تحمل خطا را با حذف نقاط شکست افزایش می دهد. عملیات معاملاتی، که در GitLab 13.3 معرفی شد، باعث می شود تغییرات به همه گره های Gitaly در خوشه پخش شود، اما فقط گره های گیتالی که موافق با گره اولیه رای می دهند، تغییرات را در دیسک ذخیره می کنند. اگر همه گرههای replica موافق نباشند، تنها یک کپی از تغییر روی دیسک ذخیره میشود و یک نقطه خرابی ایجاد میکند تا زمانی که تکرار ناهمزمان کامل شود.
رای اکثریت با نیاز به رضایت اکثریت گره ها (نه همه) قبل از ذخیره تغییرات در دیسک، تحمل خطا را بهبود می بخشد. اگر این قابلیت جابجایی فعال باشد، نوشتن باید در چندین گره موفق باشد. گره های مخالف به طور خودکار با استفاده از همانندسازی ناهمزمان از گره هایی که حد نصاب را تشکیل داده اند، همگام می شوند.
پروژه هایی که در آن افراد پیکربندی ها را به JSON یا YAML می نویسند اغلب مستعد مشکلات هستند زیرا اشتباه تایپی و شکستن چیزی آسان است. نوشتن ابزارهای بازرسی برای شناسایی این مسائل در خط لوله CI امکان پذیر است، اما استفاده از یک فایل طرحواره JSON می تواند برای ارائه مستندات و نکات مفید باشد.
شرکت کنندگان پروژه می توانند در مخزن خود مسیر یک طرح سفارشی را در یک فایل تعریف کنند .gitlab/.gitlab-webide.yml، که طرح و مسیر فایل های مورد بررسی را مشخص می کند. هنگامی که یک فایل خاص را در Web IDE بارگذاری می کنید، بازخورد و اعتبار سنجی بیشتری را مشاهده خواهید کرد که به شما در ایجاد فایل کمک می کند.
اگر از نوار نقاله استفاده می کنید با گراف غیر چرخه ای جهت دار (گراف غیر چرخشی جهت دار (DAG))، ممکن است متوجه شوید که یک شغل می تواند در آن 10 شغل مشخص کند. needs:، خیلی خشن در 13.4، حد پیش فرض از 10 به 50 افزایش یافت تا شبکه های پیچیده تری از روابط بین مشاغل در خطوط لوله شما ایجاد شود.
اگر مدیر یک نمونه GitLab سفارشی هستید، میتوانید با تنظیم یک ویژگی تغییر وضعیت، این محدودیت را حتی بیشتر کنید، اگرچه ما پشتیبانی رسمی برای این کار ارائه نمیدهیم.
در برخی موارد، یک کار از دست رفته در خط لوله ممکن است به اشتباه برای وابستگی های مشخص شده در needs، که باعث شد کارهای بعدی اجرا شود که نباید اتفاق می افتاد. این رفتار در نسخه 13.4 رفع شده است و needs اکنون موارد وظایف از دست رفته را به درستی مدیریت می کند.
GitLab اکنون به طور خودکار آخرین کار موفق و آرتیفکت خط لوله را در هر شاخه فعال، درخواست ادغام یا برچسب قفل می کند تا از حذف آن پس از انقضا جلوگیری کند. تنظیم قوانین انقضای تهاجمی تر برای تمیز کردن مصنوعات قدیمی آسان تر می شود. این به کاهش مصرف فضای دیسک کمک می کند و تضمین می کند که همیشه یک کپی از آخرین مصنوعات را از خط لوله داشته باشید.
بهینه سازی خط لوله CI/CD می تواند سرعت تحویل را بهبود بخشد و در هزینه صرفه جویی کند. ما اسناد خود را بهبود بخشیدهایم تا راهنمای سریعی برای بهینهسازی خطوط لوله خود داشته باشید.
گزارش آزمون واحد یک راه آسان برای دیدن نتایج تمام آزمایشات در یک خط لوله است. با این حال، با تعداد زیادی تست، یافتن تست های ناموفق می تواند زمان زیادی را ببرد. مشکلات دیگری که میتواند استفاده از گزارش را دشوار کند عبارتند از: مشکل در پیمایش در خروجیهای ردیابی طولانی و گرد کردن زمان به صفر برای آزمایشهایی که در کمتر از 1 ثانیه اجرا میشوند. اکنون به طور پیش فرض هنگام مرتب سازی یک گزارش تست، ابتدا تست های ناموفق را در ابتدای گزارش قرار می دهد و سپس تست ها را بر اساس مدت زمان مرتب می کند. این امر یافتن شکست ها و آزمایش های طولانی را آسان تر می کند. علاوه بر این، مدت زمان تست اکنون بر حسب میلی ثانیه یا ثانیه نمایش داده می شود که خواندن آنها را بسیار سریعتر می کند و مشکلات اسکرول قبلی نیز حل شده است.
اکنون محدودیتهایی برای اندازه فایلهای بسته وجود دارد که میتوانند در رجیستری بسته GitLab آپلود شوند. محدودیت هایی برای بهینه سازی عملکرد رجیستری بسته و جلوگیری از سوء استفاده اضافه شده است. محدودیت ها بسته به قالب بسته متفاوت است. برای GitLab.com، حداکثر اندازه فایل عبارتند از:
کانن: 250 مگابایت
Maven: 3 گیگابایت
NPM: 300 مگابایت
NuGet: 250 مگابایت
PyPI: 3 گیگابایت
برای نمونه های سفارشی GitLab، پیش فرض ها یکسان هستند. با این حال، مدیر می تواند با استفاده از محدودیت ها را به روز کند کنسول های ریل.
شما می توانید از مخزن PyPI GitLab برای ایجاد، انتشار و به اشتراک گذاری بسته های پایتون به همراه کد منبع و خطوط لوله CI/CD استفاده کنید. با این حال، قبلاً نمیتوانستید با استفاده از یک متغیر محیطی از پیش تعریف شده در مخزن احراز هویت کنید CI_JOB_TOKEN. در نتیجه، مجبور بودید از اعتبار شخصی خود برای به روز رسانی مخزن PyPI استفاده کنید، یا ممکن است تصمیم گرفته باشید که اصلا از مخزن استفاده نکنید.
اکنون استفاده از GitLab CI/CD برای انتشار و نصب بسته های PyPI با استفاده از یک متغیر محیطی از پیش تعریف شده آسان تر شده است. CI_JOB_TOKEN.
به اسکن DAST درخواستی که بود در نسخه قبلی معرفی شد، پروفایل های اسکنر DAST اضافه شده است. آنها قابلیتهای پیکربندی این اسکنها را گسترش میدهند و به شما این امکان را میدهند که به سرعت پروفایلهای متعددی را برای پوشش انواع مختلف اسکن ایجاد کنید. در 13.4، نمایه خزنده به طور بومی شامل یک تنظیم زمان پایان خزنده است که تعیین می کند خزنده DAST چه مدت باید اجرا شود، زیرا تلاش می کند تمام صفحات یک سایت خزیده شده را کشف کند. این نمایه همچنین شامل یک تنظیم وقفه زمانی سایت هدف میشود تا تعیین کند که خزنده چه مدت باید منتظر بماند تا یک سایت قبل از لغو خزیدن، در صورتی که سایت با کد وضعیت 200 یا 300 پاسخ نمیدهد، منتظر بماند. با ادامه بهبود، این ویژگی خواهد بود. در نسخه های بعدی به نمایه اسکنر اضافه می شود؛ پارامترهای پیکربندی اضافی اضافه خواهند شد.
اگر از صفحات GitLab استفاده می کنید و می خواهید تغییرات URL را بهتر مدیریت کنید، ممکن است متوجه شده باشید که مدیریت تغییر مسیرها در سایت صفحات GitLab شما امکان پذیر نیست. GitLab اکنون به شما اجازه میدهد تا با افزودن یک فایل پیکربندی به مخزن، قوانینی را برای تغییر مسیر یک URL به آدرس دیگر برای سایت Pages خود پیکربندی کنید. این ویژگی به لطف کمک کوین بارنت (@PopeDrFreudاریک ایستوود ما (@MadLittleMods) و تیم های GitLab. با تشکر از همه برای ورودی شما.
دسترسی به نسخه های قبلی حالت Terraform هم برای انطباق و هم برای اشکال زدایی در صورت لزوم ضروری است. پشتیبانی از نسخه سازی Terraform State مدیریت شده توسط GitLab با شروع GitLab 13.4 ارائه می شود. نسخهسازی بهطور خودکار برای فایلهای جدید Terraform فعال میشود. فایل های حالت Terraform موجود خواهد بود به طور خودکار به مخزن نسخه شده منتقل شد در نسخه بعدی
هنگام پردازش رویدادها، باید بتوانید به راحتی تعیین کنید که یک هشدار چه مدت باز بوده و چند بار رویداد راه اندازی شده است. این جزئیات اغلب در تعیین تأثیر بر مشتری و آنچه که تیم شما باید ابتدا به آن بپردازد بسیار مهم است. در پانل جدید جزئیات حادثه، زمان شروع هشدار، تعداد رویدادها و پیوندی به هشدار اصلی را نمایش می دهیم. این اطلاعات برای حوادثی که از هشدارها ایجاد می شوند در دسترس است.
بعد شدت حادثه به پاسخ دهندگان و ذینفعان اجازه می دهد تا تأثیر قطعی و همچنین روش و فوریت پاسخ را تعیین کنند. از آنجایی که تیم شما نتایج را در حین حل حادثه و بازیابی به اشتراک می گذارد، می توانند این تنظیم را تغییر دهند. اکنون می توانید شدت یک حادثه را در نوار کناری سمت راست صفحه جزئیات حادثه ویرایش کنید و شدت آن در لیست حوادث نمایش داده می شود.
این پیشرفت در ویرایشگر قوانین امنیت شبکه Container به کاربران اجازه می دهد تا به راحتی قوانین خود را مستقیماً از رابط کاربری GitLab ایجاد، ویرایش و حذف کنند. ویژگی های ویرایشگر شامل .yaml برای کاربران با تجربه و یک ویرایشگر قوانین با یک رابط بصری برای کسانی که تازه وارد قوانین شبکه شده اند. می توانید گزینه های مدیریت قوانین جدید را در بخش پیدا کنید امنیت و انطباق > مدیریت تهدید > قوانین (امنیت و انطباق > مدیریت تهدید > سیاست ها).
(هسته، استارت، ممتاز، نهایی، رایگان، برنز، نقره، طلا) در دسترس بودن
هر دو GitLab و GitLab Runner اکنون پشتیبانی می کنند ذخیره سازی لکه های لاجوردی، اجرای سرویس های GitLab در Azure را آسان تر می کند.
نمونههای GitLab از Azure برای همه انواع ذخیرهسازی اشیا، از جمله فایلهای LFS، مصنوعات CI، و پشتیبان گیری. برای راه اندازی ذخیره سازی Azure Blob، دستورالعمل های نصب را دنبال کنید اتوبوس یا نمودار هلم.
پردازنده های شغلی GitLab نیز از Azure برای ذخیره سازی پشتیبانی می کنند حافظه پنهان توزیع شده. ذخیره سازی Azure را می توان با استفاده از بخش پیکربندی کرد [runners.cache.azure].
در پاسخ به تقاضای فزاینده برای پشتیبانی از اجرای GitLab در معماری 64 بیتی ARM، ما خوشحالیم که بسته رسمی ARM64 Ubuntu 20.04 Omnibus را اعلام کنیم. با تشکر فراوان از Zitai Chen و Guillaume Gardet برای کمکهای بزرگی که انجام دادند - درخواستهای ادغام آنها در این امر نقش کلیدی داشت!
برای دانلود و نصب بسته Ubuntu 20.04 به آدرس ما مراجعه کنید صفحه نصب و انتخاب کنید Ubuntu.
کارتهای هوشمند، مانند کارتهای دسترسی مشترک (CAC)، اکنون میتوانند برای احراز هویت در یک نمونه GitLab که از طریق نمودار Helm مستقر شده است، استفاده شوند. کارتهای هوشمند با استفاده از گواهیهای X.509 بر اساس پایگاه داده محلی احراز هویت میشوند. با این کار، پشتیبانی کارت هوشمند با نمودار Helm اکنون در راستای پشتیبانی از کارت هوشمند موجود در استقرار Omnibus است.