{"id":319519,"date":"2021-03-13T15:01:05","date_gmt":"2021-03-13T15:01:05","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=319519"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=319519","title":{"rendered":"\u0412\u044b\u0448\u0435\u043b \u0440\u0435\u043b\u0438\u0437 GitLab 13.9 \u0441 \u043f\u0430\u043d\u0435\u043b\u044c\u044e \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u0440\u0435\u0436\u0438\u043c\u043e\u043c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f"},"content":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/d25\/04e\/9ff\/d2504e9ffdbdcf62b2bc0b54fe47feff.jpg\" alt=\"\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f\"><\/p>\n<p>  <\/p>\n<p>GitLab 13.9 \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u2014 \u0441 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\u043c\u0438 DevSecOps, \u043f\u0430\u043d\u0435\u043b\u044c\u044e \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0445 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439, \u0440\u0435\u0436\u0438\u043c\u043e\u043c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434, \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u043e\u0439 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0435\u0442\u0440\u0438\u043a DORA, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u0430\u043c \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u0431\u044b\u0441\u0442\u0440\u0435\u0435. \u042d\u0442\u043e \u043b\u0438\u0448\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 <strong>\u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c 60 \u043d\u043e\u0432\u044b\u0445 \u0444\u0438\u0447 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439<\/strong> \u0432 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435.<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h2 id=\"uluchsheniya-devsecops\">\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f DevSecOps<\/h2>\n<p>  <\/p>\n<p>\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u0435 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u043c \u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u2014 \u043a\u0440\u0430\u0439\u043d\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u0437\u0430\u0434\u0430\u0447\u0438, \u043d\u043e \u0438\u0445 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u0442\u044c. \u041d\u0430\u0448\u0430 \u043d\u043e\u0432\u0430\u044f <a href=\"#panel-opovescheniy-bezopasnosti-dlya-uvedomleniy-pravil-seti-konteynerov\">\u043f\u0430\u043d\u0435\u043b\u044c \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438<\/a> \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u043d\u0430\u0439\u0442\u0438 \u0431\u0430\u043b\u0430\u043d\u0441 \u043c\u0435\u0436\u0434\u0443 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044e \u043f\u043e\u0434\u043e\u0437\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0439 \u0441\u0435\u0442\u0435\u0432\u043e\u0439 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0434\u043e\u043b\u0436\u043d\u0430 \u0431\u044b\u0442\u044c \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0430 \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e \u0438\u043b\u0438 \u0436\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f, \u0447\u0442\u043e \u0441\u0432\u0435\u0434\u0451\u0442 \u043a \u043c\u0438\u043d\u0438\u043c\u0443\u043c\u0443 \u043f\u0435\u0440\u0435\u0431\u043e\u0438 \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u041c\u044b \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0434\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c <a href=\"#podderzhka-javascript-i-python-dlya-fazzing-testirovaniya-po-pokrytiyu\">\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 JavaScript \u0438 Python \u0434\u043b\u044f \u0444\u0430\u0437\u0437\u0438\u043d\u0433-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044e<\/a>, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u0433\u0440\u0443\u0436\u0435\u043d\u044b \u0432 \u0432\u0430\u0448\u0443 \u043f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e. \u042d\u0442\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0433\u043e \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0433\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p>GitLab \u0441\u043e\u0437\u0434\u0430\u043d \u0434\u043b\u044f \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434. \u041d\u0430\u0448 \u043d\u043e\u0432\u044b\u0439 \u0440\u0435\u0436\u0438\u043c <a href=\"#rezhim-obsluzhivaniya\">\u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f<\/a> \u0434\u0435\u043b\u0430\u0435\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0443 \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430 \u0447\u0442\u0435\u043d\u0438\u0435 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u0447 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043f\u0440\u043e\u0441\u0442\u043e\u0435\u0432. \u041c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u044b \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f <a href=\"#pereopredelenie-koefficienta-replikacii-klastera-gitaly-dlya-konkretnyh-repozitoriev\">\u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430\u043c \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 Gitaly<\/a>, \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440 \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0432\u0430\u0448\u0438\u043c\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044e \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u0431\u044e\u0434\u0436\u0435\u0442\u0443, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0435 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<p>  <\/p>\n<p>\u0414\u0440\u0443\u0433\u0438\u043c \u0432\u0430\u0436\u043d\u044b\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0440\u0438 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 DevOps \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c, \u0438 \u043d\u043e\u0432\u0430\u044f <a href=\"#analitika-relizov-na-urovne-gruppy\">\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0433\u0440\u0443\u043f\u043f\u044b<\/a> \u0440\u0430\u0437\u0432\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0448\u0443 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0435\u0442\u0440\u0438\u043a DORA \u0441 \u0434\u0430\u043d\u043d\u044b\u043c\u0438, \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u043e \u0432\u0441\u0435\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c \u0432 \u0433\u0440\u0443\u043f\u043f\u0435. \u041d\u043e\u0432\u044b\u0435 <a href=\"#schyotchik-neprohozhdeniya-testa-v-otchyote-yunit-testa\">\u0441\u0447\u0451\u0442\u0447\u0438\u043a \u043d\u0435\u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u0430 \u0432 \u043e\u0442\u0447\u0451\u0442\u0435 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0430<\/a> \u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432 (\u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 GitLab \u00ab\u0437\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u0441\u043b\u0438\u044f\u043d\u0438\u0435\u00bb), <a href=\"#novaya-metrika-merzh-rekvesta-srednee-vremya-merzha\">\u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043b\u044f \u043c\u0435\u0440\u0436\u0430<\/a> \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u0430\u043c \u043f\u043e\u043d\u044f\u0442\u044c \u0438 \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432.<\/p>\n<p>  <\/p>\n<h2 id=\"avtomatiziruyte-vash-put-k-bolee-bystroy-i-kachestvennoy-postavke\">\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u0443\u0439\u0442\u0435 \u0432\u0430\u0448 \u043f\u0443\u0442\u044c \u043a \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u043e\u0439 \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043f\u043e\u0441\u0442\u0430\u0432\u043a\u0435<\/h2>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 DevOps \u0438\u043b\u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0435 \u043f\u043e\u0441\u043b\u0435 \u043d\u0435 \u0441\u0430\u043c\u044b\u0445 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u043f\u043e\u043f\u044b\u0442\u043e\u043a, \u0442\u043e \u043d\u0430 \u043f\u0435\u0440\u0432\u044b\u0439 \u0432\u0437\u0433\u043b\u044f\u0434 \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043f\u0440\u0438\u0437\u044b\u0432 \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u00ab\u043b\u0443\u0447\u0448\u0438\u0439 \u043f\u0440\u043e\u0434\u0443\u043a\u0442, \u0431\u044b\u0441\u0442\u0440\u0435\u0435\u00bb \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u043e\u0445\u043e\u0436 \u043d\u0430 \u00ab\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0441 \u043c\u0435\u043d\u044c\u0448\u0438\u043c\u0438 \u0437\u0430\u0442\u0440\u0430\u0442\u0430\u043c\u0438\u00bb, \u0447\u0442\u043e \u0432\u044b\u0433\u043b\u044f\u0434\u0438\u0442 \u0432\u0435\u0441\u044c\u043c\u0430 \u043f\u0440\u043e\u0442\u0438\u0432\u043e\u0440\u0435\u0447\u0438\u0432\u043e. \u041d\u043e DevOps \u2014 \u044d\u0442\u043e \u043e\u0442\u0432\u0435\u0442, \u0430 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u2014 \u043a\u043b\u044e\u0447 \u043a \u0442\u043e\u043c\u0443, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0432\u044b\u0448\u0430\u0442\u044c \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c \u0438 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u043e.<\/p>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u0438\u043c \u0438\u0437 \u0432\u0435\u0440\u043d\u044b\u0445 \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u0432 \u0443\u0441\u043a\u043e\u0440\u0438\u0442\u044c \u0441\u0431\u043e\u0440\u043a\u0443 \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0438\u0441\u043a \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u043e\u0432 \u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u0412 13.9 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u043d\u043e\u0432\u0430\u044f \u0444\u0438\u0447\u0430, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u044d\u043a\u043e\u043d\u043e\u043c\u0438\u0442 \u0432\u0430\u0448\u0435 \u0432\u0440\u0435\u043c\u044f, \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0432 <a href=\"#pereispolzuyte-konfiguraciyu-lyubogo-cicd-zadaniya\">\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c CI\/CD \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043b\u044e\u0431\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f<\/a> \u0432 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0435 (\u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 GitLab \u00ab\u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0430\u044f \u043b\u0438\u043d\u0438\u044f\u00bb), \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0444\u0430\u0439\u043b\u0435.<\/p>\n<p>  <\/p>\n<p>\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f \u0432 \u043a\u0440\u0443\u043f\u043d\u044b\u0445 \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0430\u0445 \u0447\u0430\u0441\u0442\u043e \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043c\u0438\u043d\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438. \u0415\u0441\u043b\u0438 \u0432\u044b \u0440\u0430\u0437\u0431\u0438\u043b\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u043e\u0432, \u0432\u0430\u043c \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c <a href=\"#razvyornutaya-versiya-konfiguracii-cicd\">\u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438<\/a>. \u041f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0438\u043b\u0438 \u043c\u0435\u0436\u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u043e\u0432 \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0433\u0443\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <a href=\"#gruppy-resursov-dlya-mezhproektnyh-i-vlozhennyh-konveyerov\">\u0433\u0440\u0443\u043f\u043f\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043b\u043b\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\u044e \u043c\u0435\u0436\u0434\u0443 \u044d\u0442\u0430\u043f\u0430\u043c\u0438, \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u043c\u0438 \u0438 \u0434\u0430\u0436\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438<\/a>.<\/p>\n<p>  <\/p>\n<h2 id=\"vklady-ot-nashego-soobschestva\">\u0412\u043a\u043b\u0430\u0434\u044b \u043e\u0442 \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430<\/h2>\n<p>  <\/p>\n<p>\u041c\u044b \u0440\u0430\u0434\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c <a href=\"#podderzhka-graficheskogo-processora-i-umnogo-planirovaniya-dlya-obrabotchika-zadaniy-gitlab\">\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 GPU \u0438 \u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 GitLab<\/a> \u0434\u043b\u044f \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043d\u0430\u0433\u0440\u0443\u0437\u043e\u043a, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0434\u043b\u044f \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f; \u044d\u0442\u0443 \u0444\u0438\u0447\u0443 \u0432\u043d\u0451\u0441 <a href=\"#mvphttpsaboutgitlabcomcommunitymvp-etogo-mesyaca--andreas-gravgaard-andersenhttpsgitlabcomagravgaard\">MVP \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u044f\u0446\u0430, Andreas Gravgaard Andersen<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0443\u043f\u043e\u0440\u043d\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u043d\u0430\u0434 \u043d\u0435\u0439 \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 10-\u043c\u0435\u0441\u044f\u0447\u043d\u043e\u0433\u043e \u0440\u0435\u0432\u044c\u044e.<\/p>\n<p>  <\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0442\u0430\u043a\u0436\u0435 <a href=\"https:\/\/gitlab.com\/marshall007\" rel=\"nofollow noopener noreferrer\">Marshall Cottrell @marshall007 \u0438\u0437 NASA<\/a> \u0437\u0430 <a href=\"https:\/\/gitlab.com\/gitlab-org\/cluster-integration\/gitlab-agent\/-\/merge_requests\/281#note_507445139\" rel=\"nofollow noopener noreferrer\">\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u043e\u0447\u043d\u043e\u0433\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a\u0430 \u0434\u043b\u044f GitLab Kubernetes Agent<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/charts\/gitlab\/-\/merge_requests\/1807#note_505567583\" rel=\"nofollow noopener noreferrer\">\u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0435 \u0435\u0433\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438<\/a>, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0449\u0435 \u043f\u0440\u0438\u0441\u0442\u0443\u043f\u0438\u0442\u044c \u043a \u0440\u0430\u0431\u043e\u0442\u0435 \u0441 \u0430\u0433\u0435\u043d\u0442\u043e\u043c. \u041c\u044b \u043e\u0447\u0435\u043d\u044c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u044b Marshall \u0437\u0430 \u0431\u0435\u0441\u0446\u0435\u043d\u043d\u044b\u0435 \u043e\u0442\u0437\u044b\u0432\u044b, \u0438\u0434\u0435\u0438 \u0438 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u0447\u0435\u0441\u0442\u0432\u043e, \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0445 \u043e\u0442 \u043d\u0435\u0433\u043e \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432.<\/p>\n<p>  <\/p>\n<p>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0435\u0449\u0451 \u043e\u0434\u043d\u043e\u043c\u0443 \u0432\u0435\u043b\u0438\u043a\u043e\u043b\u0435\u043f\u043d\u043e\u043c\u0443 \u0432\u043a\u043b\u0430\u0434\u0443 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 <a href=\"#podpisyvaytes-na-aktivnost-polzovatelya\">\u0441\u043b\u0435\u0434\u0438\u0442\u044c \u0437\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c\u044e \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 GitLab<\/a>! \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0447\u0430\u0442\u044c \u0441 <a href=\"https:\/\/gitlab.com\/bufferoverflow\" rel=\"nofollow noopener noreferrer\">Roger Meier @bufferoverflow<\/a> \u0438\u0437 <a href=\"https:\/\/gitlab.com\/siemens\" rel=\"nofollow noopener noreferrer\">Siemens<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043d\u0451\u0441 \u044d\u0442\u0443 \u0444\u0438\u0447\u0443, \u0432\u0435\u0434\u044c \u043e\u043d \u0438 \u0441\u0430\u043c \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 <a href=\"https:\/\/about.gitlab.com\/community\/mvp\/\" rel=\"nofollow noopener noreferrer\">\u0437\u0430\u043b\u0435 \u0441\u043b\u0430\u0432\u044b GitLab<\/a> \u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0437\u043d\u0430\u0442\u043e\u043a\u043e\u043c Open Source \u0438 InnerSource.<\/p>\n<p>  <\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e <a href=\"https:\/\/gitlab.com\/KevSlashNull\" rel=\"nofollow noopener noreferrer\">Kev @KevSlashNull<\/a> \u0438\u0437 SiegeGG \u0437\u0430 <a href=\"#filtr-aktivnosti-v-otchyote-ob-uyazvimostyah\">\u0444\u0438\u043b\u044c\u0442\u0440 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0432 \u043e\u0442\u0447\u0451\u0442\u0430\u0445 \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u0434\u0435\u0442\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0432\u0438\u0434 \u0441\u043f\u0438\u0441\u043a\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439. \u041a\u043e\u043c\u0430\u043d\u0434\u0430 GitLab, \u043e\u0442\u0432\u0435\u0447\u0430\u044e\u0449\u0430\u044f \u0437\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c, \u043a\u0430\u043a \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u043d\u0430\u0448\u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b, \u043e\u0447\u0435\u043d\u044c \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u043d\u0430 @KevSlashNull \u0437\u0430 \u044d\u0442\u043e\u0442 \u0438 \u043c\u043d\u043e\u0433\u0438\u0435 \u0434\u0440\u0443\u0433\u0438\u0435 \u0432\u043a\u043b\u0430\u0434\u044b.<\/p>\n<p>  <\/p>\n<p>GitLab \u2014 \u044d\u0442\u043e \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e DevOps-\u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0430 \u0438\u043b\u0438 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f, \u043d\u0435 \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u044e\u044e \u043e\u0447\u0435\u0440\u0435\u0434\u044c GitLab \u2014 \u044d\u0442\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u043e, \u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0432 \u0440\u0435\u043b\u0438\u0437\u0435 13.9 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 <a href=\"https:\/\/gitlab.biterg.io\/goto\/937475d38035f496df3501c9b30af5ef\" rel=\"nofollow noopener noreferrer\">299 \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0445 \u0432\u043a\u043b\u0430\u0434\u043e\u0432, \u0432\u043d\u0435\u0441\u0451\u043d\u043d\u044b\u0445 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c\u0438 \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430<\/a>. \u0412\u044b\u0431\u0440\u0430\u0442\u044c \u043e\u0434\u043d\u043e\u0433\u043e MVP \u0431\u044b\u043b\u043e \u043d\u0435\u043b\u0435\u0433\u043a\u043e; \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u0438\u0437 \u0432\u0430\u0441 \u0437\u0430 \u0432\u0430\u0448 \u043f\u0440\u043e\u0444\u0435\u0441\u0441\u0438\u043e\u043d\u0430\u043b\u0438\u0437\u043c \u0438 \u0443\u043f\u043e\u0440\u043d\u044b\u0439 \u0442\u0440\u0443\u0434.<\/p>\n<p>  <\/p>\n<h2 id=\"i-eto-eschyo-ne-vsyo\">\u0418 \u044d\u0442\u043e \u0435\u0449\u0451 \u043d\u0435 \u0432\u0441\u0451!<\/h2>\n<p>  <\/p>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u043b\u044e\u0431\u0438\u043c\u044b\u0445 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439 \u0432 13.9 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"#sozdanie-spiskov-izmeneniy-s-pomoschyu-gitlab-api\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 API<\/a><\/li>\n<li><a href=\"#vozmozhnost-otmechat-prosmotrennye-izmeneniya-v-merzh-rekveste\">\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043c\u0435\u0447\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430\u0445 \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0435<\/a><\/li>\n<li><a href=\"#zaprosy-na-povtornoe-revyu\">\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u0438\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0440\u0435\u0432\u044c\u044e \u0443 \u0440\u0435\u0432\u044c\u044e\u0435\u0440\u0430<\/a><\/li>\n<li><a href=\"#sozdavayte-tikety-v-jira-iz-uyazvimostey\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0442\u0438\u043a\u0435\u0442\u0430 \u0432 Jira \u0438\u0437 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/a><\/li>\n<li><a href=\"#naznachenie-incidentov-maylstounam\">\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0439\u043b\u0441\u0442\u043e\u0443\u043d\u0443<\/a> (\u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 GitLab \u00ab\u044d\u0442\u0430\u043f\u00bb)<\/li>\n<li><a href=\"#ssylki-na-pereklyuchaemye-fichi-v-markdown\">\u0421\u0441\u044b\u043b\u043a\u0438 \u0432 \u043c\u0430\u0440\u043a\u0434\u0430\u0443\u043d\u0435 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0445 \u0444\u0438\u0447<\/a><\/li>\n<li><a href=\"#razreshenie-na-push-v-zaschischyonnye-vetki-cherez-klyuchi-razvyortyvaniya\">\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0443\u0448 \u0432 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0435 \u0432\u0435\u0442\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 \u043a\u043b\u044e\u0447\u0438 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0412\u0441\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u2014 \u0434\u0430\u043b\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435, \u0430 \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c, \u0447\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u043c\u0435\u0441\u044f\u0446\u0435, \u043f\u043e\u0441\u0435\u0442\u0438\u0442\u0435 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 <a href=\"https:\/\/about.gitlab.com\/direction\/kickoff\/\" rel=\"nofollow noopener noreferrer\">\u043f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u0449\u0438\u0445 \u0440\u0435\u043b\u0438\u0437\u043e\u0432<\/a> \u0438 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 <a href=\"https:\/\/www.youtube.com\/watch?v=8VolMk8VorM\" rel=\"nofollow noopener noreferrer\">\u0432\u0438\u0434\u0435\u043e \u043f\u043e \u0440\u0435\u043b\u0438\u0437\u0443 13.10<\/a>.<\/p>\n<p>  <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e GitLab \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442 \u043d\u0430 <a href=\"https:\/\/about.gitlab.com\/blog\/2021\/01\/26\/new-gitlab-product-subscription-model\/\" rel=\"nofollow noopener noreferrer\">\u0442\u0440\u0451\u0445\u0443\u0440\u043e\u0432\u043d\u0435\u0432\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043f\u043b\u0430\u043d\u043e\u0432<\/a>, \u0442\u0430\u043a \u0447\u0442\u043e \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u0432 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u0445 \u0444\u0438\u0447 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u043e\u0432\u0430\u044f \u0441\u0438\u0441\u0442\u0435\u043c\u0430 \u0443\u0440\u043e\u0432\u043d\u0435\u0439. \u0414\u043b\u044f \u043d\u043e\u0432\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u043b\u0430\u043d\u044b Bronze\/Starter \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0431\u0443\u0434\u0443\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b, \u0443 \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u044d\u0442\u0438\u0445 \u043f\u043b\u0430\u043d\u043e\u0432 \u0435\u0441\u0442\u044c \u0433\u043e\u0434 \u043d\u0430 <a href=\"https:\/\/about.gitlab.com\/blog\/2021\/01\/26\/new-gitlab-product-subscription-model\/#timeline-and-transition-offers\" rel=\"nofollow noopener noreferrer\">\u043f\u0440\u0438\u043d\u044f\u0442\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435<\/a>.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/page.gitlab.com\/webcast-tei.html\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435 \u0432\u0435\u0431\u043a\u0430\u0441\u0442 The Total Economic Impact of GitLab (\u043d\u0430 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u043c)<\/a>.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/1f4\/2b7\/125\/1f42b7125b8e58f40d41c3350cac3ffa.png\" alt=\"GitLab MVP badge\"><\/p>\n<p>  <\/p>\n<h2 id=\"mvphttpsaboutgitlabcomcommunitymvp-etogo-mesyaca--andreas-gravgaard-andersenhttpsgitlabcomagravgaard\"><a href=\"https:\/\/about.gitlab.com\/community\/mvp\/\" rel=\"nofollow noopener noreferrer\">MVP<\/a> \u044d\u0442\u043e\u0433\u043e \u043c\u0435\u0441\u044f\u0446\u0430 \u2014 <a href=\"https:\/\/gitlab.com\/agravgaard\" rel=\"nofollow noopener noreferrer\">Andreas Gravgaard Andersen<\/a><\/h2>\n<p>  <\/p>\n<p>\u0412 \u0440\u0435\u043b\u0438\u0437\u0435 13.9 Andreas <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/merge_requests\/1955\" rel=\"nofollow noopener noreferrer\">\u0434\u043e\u0431\u0430\u0432\u0438\u043b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430<\/a> (GPU) \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439 GitLab. \u042d\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0442\u0440\u0435\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043c\u043e\u0434\u0435\u043b\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043e\u0442\u0440\u0438\u0441\u043e\u0432\u044b\u0432\u0430\u0442\u044c \u0430\u043d\u0438\u043c\u0430\u0446\u0438\u044e \u0438\u043b\u0438 \u0432\u044b\u0433\u0440\u0443\u0436\u0430\u0442\u044c \u043f\u0440\u043e\u0447\u0438\u0435 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f. \u0417\u0430 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439 \u043e\u0431 \u044d\u0442\u043e\u0439 \u0444\u0438\u0447\u0435 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0435\u0441\u044c \u043a <a href=\"#podderzhka-graficheskogo-processora-i-umnogo-planirovaniya-dlya-obrabotchika-zadaniy-gitlab\">\u0435\u0451 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044e \u0434\u0430\u043b\u0435\u0435 \u0432 \u0441\u0442\u0430\u0442\u044c\u0435<\/a>. \u042d\u0442\u043e\u0442 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442 \u043d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e \u0431\u044b\u043b \u043f\u0440\u0438\u043d\u044f\u0442 \u0432 13.9, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043d\u0430\u0441\u0442\u043e\u0439\u0447\u0438\u0432\u043e\u0441\u0442\u0438 \u0430\u0432\u0442\u043e\u0440\u0430 \u0438 \u0435\u0433\u043e \u0443\u0447\u0430\u0441\u0442\u0438\u044e \u0432\u043e \u0432\u0441\u0435\u0445 \u0446\u0438\u043a\u043b\u0430\u0445 \u0440\u0435\u0432\u044c\u044e, \u0434\u043b\u0438\u0432\u0448\u0438\u0445\u0441\u044f \u0431\u043e\u043b\u0435\u0435 10 \u043c\u0435\u0441\u044f\u0446\u0435\u0432. \u0421\u043f\u0430\u0441\u0438\u0431\u043e, Andreas! <\/p>\n<p>  <\/p>\n<h2 id=\"osnovnye-fichi-reliza-gitlab-139\">\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0438\u0447\u0438 \u0440\u0435\u043b\u0438\u0437\u0430 GitLab 13.9<\/h2>\n<p>  <\/p>\n<h3 id=\"panel-opovescheniy-bezopasnosti-dlya-uvedomleniy-pravil-seti-konteynerov\">\u041f\u0430\u043d\u0435\u043b\u044c \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043f\u0440\u0430\u0432\u0438\u043b \u0441\u0435\u0442\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432<\/h3>\n<p>  <\/p>\n<p>(SaaS: ULTIMATE; self-managed: ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/protect\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Protect<\/a><\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0440\u0430\u0434\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u0435\u0440\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u043f\u0430\u043d\u0435\u043b\u0438 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438! \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0441\u0435\u0442\u0438 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439 \u043d\u0430 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u0443\u044e \u043f\u0430\u043d\u0435\u043b\u044c \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0439. \u042d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e \u0432 \u0442\u0435\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0430\u0444\u0438\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0442\u0449\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f, \u043d\u043e \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d \u0431\u0435\u0437 \u043d\u0435\u0433\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0432\u043b\u0438\u044f\u043d\u0438\u044f \u043d\u0430 \u0431\u0438\u0437\u043d\u0435\u0441. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f \u0432 <strong>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 &gt; \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0433\u0440\u043e\u0437\u0430\u043c\u0438 &gt; \u041f\u0440\u0430\u0432\u0438\u043b\u0430<\/strong>, \u0438 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 <strong>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 &gt; \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0433\u0440\u043e\u0437\u0430\u043c\u0438 &gt; \u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u044f<\/strong>.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/74b\/bd9\/354\/74bbd9354a27abadb01fd71b2e23709f.png\" alt=\"Security Alert Dashboard for Container Network Policy Alerts\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/threat_monitoring\/#configuring-network-policy-alerts\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0439<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/3438\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043f\u0438\u043a<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"rezhim-obsluzhivaniya\">\u0420\u0435\u0436\u0438\u043c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>  <\/p>\n<p>(self-managed: PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/handbook\/engineering\/development\/enablement\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c<\/a><\/p>\n<p>  <\/p>\n<p>\u0421\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u0432\u0440\u0435\u043c\u044f \u043e\u0442 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044e \u0441\u0432\u043e\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430 GitLab, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u043e\u043f\u0442\u0438\u043c\u0430\u043b\u044c\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443. \u041f\u0440\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u044d\u0442\u0438\u0445 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0439 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0441\u0432\u043e\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c. \u041f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043c, \u0447\u0442\u043e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c <a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/geo\/disaster_recovery\/planned_failover.html\" rel=\"nofollow noopener noreferrer\">\u0442\u0435\u0441\u0442 \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0430\u0439\u0442<\/a> \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043f\u043b\u0430\u043d\u0430 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0441\u0442\u0438 \u0431\u0438\u0437\u043d\u0435\u0441-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u041f\u0435\u0440\u0435\u0434 \u044d\u0442\u0438\u043c \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u043f\u0440\u0438\u043e\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043d\u0430 \u043a\u043e\u0440\u043e\u0442\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0441\u0430\u0439\u0442 \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d. \u0412 GitLab 13.8 \u0438 \u0440\u0430\u043d\u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u043b\u043e <a href=\"https:\/\/docs.gitlab.com\/omnibus\/maintenance\/#restrict-users-from-logging-into-gitlab\" rel=\"nofollow noopener noreferrer\">\u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0432\u0445\u043e\u0434\u0438\u0442\u044c \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443<\/a>, \u043d\u043e \u044d\u0442\u043e \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043b\u043e \u0432\u0435\u0441\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u0434\u0435\u043b\u0430\u043b\u043e GitLab \u043d\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<p>  <\/p>\n<p>C GitLab 13.9 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f <a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/maintenance_mode\/index.html\" rel=\"nofollow noopener noreferrer\">\u0440\u0435\u0436\u0438\u043c\u043e\u043c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f<\/a>, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0437\u0430\u043f\u0438\u0441\u0438 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u044b \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e GitLab \u0444\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u00ab\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\u00bb \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043d\u0435 \u044f\u0432\u043b\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c\u0438; \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u043f\u043e-\u043f\u0440\u0435\u0436\u043d\u0435\u043c\u0443 \u043c\u043e\u0433\u0443\u0442 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 <a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/maintenance_mode\/index.html#background-jobs\" rel=\"nofollow noopener noreferrer\">\u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u0442\u0441\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0444\u043e\u043d\u043e\u0432\u044b\u0445 \u0437\u0430\u0434\u0430\u043d\u0438\u0439<\/a>. \u041e\u0431\u044b\u0447\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0432 GitLab, \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u0432 \u0440\u0435\u0436\u0438\u043c\u0435 \u00ab\u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f\u00bb, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a <code>git clone<\/code> \u0438\u043b\u0438 <code>git pull<\/code>. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u044d\u0442\u043e\u0442 \u0440\u0435\u0436\u0438\u043c, \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f, \u0442\u0430\u043a\u0438\u0435 \u043a\u0430\u043a \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0441\u0430\u0439\u0442, \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0435\u0440\u0435\u0431\u043e\u044f\u043c\u0438 \u0434\u043b\u044f \u043e\u0431\u044b\u0447\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<p>  <\/p>\n<p>\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, \u0447\u0442\u043e GitLab \u0443\u0436\u0435 <a href=\"https:\/\/docs.gitlab.com\/omnibus\/update\/#zero-downtime-updates\" rel=\"nofollow noopener noreferrer\">\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0441 \u043d\u0443\u043b\u0435\u0432\u044b\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c \u043f\u0440\u043e\u0441\u0442\u043e\u044f<\/a>, \u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430 \u0432 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043d\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0440\u0435\u0436\u0438\u043c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/906\/ac1\/a85\/906ac1a8505d91442e614f2ae866e01b.png\" alt=\"Maintenance Mode\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/maintenance_mode\/index.html\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u0435\u0436\u0438\u043c\u0443 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/2149\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043f\u0438\u043a<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"analitika-relizov-na-urovne-gruppy\">\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0433\u0440\u0443\u043f\u043f\u044b<\/h3>\n<p>  <\/p>\n<p>(SaaS: ULTIMATE; self-managed: ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/release\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Release<\/a><\/p>\n<p>  <\/p>\n<p>\u0421 \u0440\u0435\u043b\u0438\u0437\u043e\u043c 13.9 \u0441\u0442\u0430\u043b\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0433\u0440\u0443\u043f\u043f\u044b, \u0441 \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u043c\u0438 \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435 \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c\u0438 \u0440\u0435\u043b\u0438\u0437\u0430 \u043f\u043e \u043a\u0430\u0436\u0434\u043e\u043c\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0443, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u043c\u0443 \u0441 \u044d\u0442\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u043e\u0439. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0437\u043d\u0430\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u043e\u0442\u043d\u043e\u0441\u0438\u0442\u0441\u044f \u043a \u044d\u0442\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u0435 \u0438 \u043a\u0430\u043a\u043e\u0439 \u043f\u0440\u043e\u0446\u0435\u043d\u0442 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0441\u0432\u044f\u0437\u0430\u043d \u0441 \u0440\u0435\u043b\u0438\u0437\u0430\u043c\u0438. \u042d\u0442\u0430 \u0444\u0438\u0447\u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043b\u0443\u0436\u0438\u0442 \u043f\u0435\u0440\u0432\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u043a \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u043c\u0435\u0442\u0440\u0438\u043a <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/4358\" rel=\"nofollow noopener noreferrer\">DORA 4<\/a> \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0433\u0440\u0443\u043f\u043f\u044b.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/b3b\/ed7\/e7b\/b3bed7e7b00883c980cb7224ef4fcfcd.png\" alt=\"Release Analytics at the group level\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/releases\/#release-metrics\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043c\u0435\u0442\u0440\u0438\u043a\u0430\u043c \u0440\u0435\u043b\u0438\u0437\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/259703\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"podderzhka-javascript-i-python-dlya-fazzing-testirovaniya-po-pokrytiyu\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 JavaScript \u0438 Python \u0434\u043b\u044f \u0444\u0430\u0437\u0437\u0438\u043d\u0433-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044e<\/h3>\n<p>  <\/p>\n<p>(SaaS: ULTIMATE; self-managed: ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/secure\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Secure<\/a><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u0444\u0430\u0437\u0437\u0438\u043d\u0433-\u0442\u0435\u0441\u0442\u044b \u043f\u043e \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044e \u0434\u043b\u044f \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043d\u0430 Python \u0438 JavaScript! \u042d\u0442\u0438 \u0434\u0432\u0430 \u044f\u0437\u044b\u043a\u0430 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b, \u0438 \u043c\u044b \u0440\u0430\u0434\u044b \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u044d\u0442\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432 \u0432 \u0444\u0430\u0437\u0437\u0438\u043d\u0433-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u043e \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044e.<\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0444\u0430\u0437\u0437\u0438\u043d\u0433-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u044d\u0442\u0438\u0445 \u044f\u0437\u044b\u043a\u0430\u0445, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/coverage_fuzzing\/#configuration\" rel=\"nofollow noopener noreferrer\">\u0442\u0443 \u0436\u0435 \u0441\u0445\u0435\u043c\u0443<\/a>, \u0447\u0442\u043e \u0438 \u0434\u043b\u044f \u043b\u044e\u0431\u043e\u0433\u043e \u0434\u0440\u0443\u0433\u043e\u0433\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430. \u0421\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0435\u0441\u0442\u0430; \u043a\u043e\u0433\u0434\u0430 GitLab \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442 \u0435\u0433\u043e, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u0444\u0430\u0437\u0437\u0438\u043d\u0433-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0437\u044f\u0442\u0441\u044f \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u043d\u0430 \u0432\u043a\u043b\u0430\u0434\u043a\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/425\/8bd\/baf\/4258bdbaf77799b1c76e2a315de12cc7.png\" alt=\"JavaScript and Python support for coverage-guided fuzz testing\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/coverage_fuzzing\/#supported-fuzzing-engines-and-languages\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u044f\u0437\u044b\u043a\u0430\u043c \u0438 \u0434\u0432\u0438\u0436\u043a\u0430\u043c \u0444\u0430\u0437\u0437\u0438\u043d\u0433\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/4215\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043f\u0438\u043a<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"pereopredelenie-koefficienta-replikacii-klastera-gitaly-dlya-konkretnyh-repozitoriev\">\u041f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Gitaly \u0434\u043b\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432<\/h3>\n<p>  <\/p>\n<p>(self-managed: PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/create\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Create<\/a><\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u043d\u0435\u0435 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u043e\u043c \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Gitaly \u0431\u044b\u043b\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u043e\u0434 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. \u042d\u0442\u043e \u0434\u0435\u043b\u0430\u043b\u043e \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Gitaly \u0434\u043b\u044f \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432 GitLab \u0441 \u043e\u0447\u0435\u043d\u044c \u0432\u044b\u0441\u043e\u043a\u0438\u043c\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043a \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0443. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043a\u043b\u0430\u0441\u0442\u0435\u0440 500 \u0422\u0411 \u0441 50 \u043d\u043e\u0434\u0430\u043c\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b \u0431\u044b 25 \u041f\u0411 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f. \u0427\u0442\u043e\u0431\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Gitaly \u0434\u043b\u044f \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c\u0438 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c\u0438 \u043a \u043c\u0435\u0441\u0442\u0443 \u0431\u044b\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c, \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0441\u044f \u0441\u043f\u043e\u0441\u043e\u0431 \u0437\u0430\u0434\u0430\u0432\u0430\u0442\u044c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043c\u0435\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u043e\u0431\u0449\u0435\u0435 \u0447\u0438\u0441\u043b\u043e \u043d\u043e\u0434 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435.<\/p>\n<p>  <\/p>\n<p>\u0412 GitLab 13.9 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d \u0438\u043d\u0434\u0438\u0432\u0438\u0434\u0443\u0430\u043b\u044c\u043d\u043e, \u043d\u0430 \u043b\u044e\u0431\u043e\u0435 \u0447\u0438\u0441\u043b\u043e, \u043c\u0435\u043d\u044c\u0448\u0435\u0435, \u0447\u0435\u043c \u0447\u0438\u0441\u043b\u043e \u043d\u043e\u0434 \u0432 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0435. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0435\u043f\u043b\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0432\u0430\u0436\u043d\u044b\u0435 \u0438\u043b\u0438 \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438, \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0434\u0440\u0443\u0433\u0438\u0435, \u043c\u0435\u043d\u0435\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u043d\u0430 \u043c\u0435\u043d\u044c\u0448\u0435\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0435 \u043d\u043e\u0434. \u0422\u0435\u043f\u0435\u0440\u044c \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438 \u0441\u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u044b \u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0438 \u0441 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044e \u0438 \u0431\u044e\u0434\u0436\u0435\u0442\u0443. \u041c\u044b \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043c\u0435\u0442\u043e\u0434 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043d\u043e\u0432\u044b\u0445 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432. \u042d\u0442\u043e \u0434\u043e\u043b\u0436\u043d\u043e \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0434\u043b\u044f \u0433\u043e\u0440\u0438\u0437\u043e\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438\u0445 \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u0432 Gitaly.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/2b6\/a13\/c96\/2b6a13c965c0a2cae29537d3bd94b64a.png\" alt=\"Override Gitaly Cluster replication factor for specific repositories\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/gitaly\/praefect.html#replication-factor\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0443 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitaly\/-\/issues\/2971\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"schyotchik-neprohozhdeniya-testa-v-otchyote-yunit-testa\">\u0421\u0447\u0451\u0442\u0447\u0438\u043a \u043d\u0435\u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u0430 \u0432 \u043e\u0442\u0447\u0451\u0442\u0435 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0430<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/verify\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Verify<\/a><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435 \u043d\u0435\u043f\u0440\u043e\u0439\u0434\u0435\u043d\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043d\u0435 \u0442\u0430\u043a-\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043b\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u0432\u0448\u0438\u0439\u0441\u044f \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0442\u0435\u0441\u0442 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f, \u0438\u043b\u0438 \u0436\u0435 \u044d\u0442\u043e \u043f\u0440\u043e\u0441\u0442\u043e \u043d\u0435\u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0439 \u0442\u0435\u0441\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0438 \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0439\u0434\u0435\u043d.<\/p>\n<p>  <\/p>\n<p>\u041d\u043e\u0432\u0430\u044f \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u044f <a href=\"https:\/\/habr.com\/ru\/post\/541688\/#schyotchik-neuspeshnyh-testov\">\u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0430 \u043d\u0435\u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u0430<\/a> \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u044d\u0442\u043e\u0442 \u0441\u0447\u0451\u0442\u0447\u0438\u043a \u0432 \u043e\u0442\u0447\u0451\u0442 \u043f\u043e \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0443. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u043e \u0442\u0435\u0441\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0430\u043b\u0441\u044f \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043d\u0430 \u0432\u0435\u0442\u043a\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0438 \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u0432\u0430\u043c \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0438\u0441\u043a\u0430\u0442\u044c \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0441 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435\u043c \u0442\u0435\u0441\u0442\u0430.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/ed9\/62a\/2b2\/ed962a2b264c483ca88cb25090e7d5d7.png\" alt=\"Easily see repeat failed tests in Unit Test Reports\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/unit_test_reports.html#number-of-recent-failures\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0443 \u043d\u0435\u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u0435\u0441\u0442\u0430 \u0432 \u043e\u0442\u0447\u0451\u0442\u0435 \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/235525\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"pereispolzuyte-konfiguraciyu-lyubogo-cicd-zadaniya\">\u041f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u043b\u044e\u0431\u043e\u0433\u043e CI\/CD \u0437\u0430\u0434\u0430\u043d\u0438\u044f<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/verify\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Verify<\/a><\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u043d\u0435\u0435, \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u0443 \u0438 \u0442\u0443 \u0436\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u0445, \u0443 \u0432\u0430\u0441 \u0431\u044b\u043b\u043e \u0434\u0432\u0430 \u0432\u0430\u0440\u0438\u0430\u043d\u0442\u0430: \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u044f\u043a\u043e\u0440\u0438 YAML, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0442 \u0432 \u0440\u0430\u0437\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u0430\u0445, \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c <code>extends<\/code> \u0434\u043b\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0446\u0435\u043b\u043e\u0433\u043e \u0440\u0430\u0437\u0434\u0435\u043b\u0430.<\/p>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e YAML <code>!reference<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0430\u043c \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0438\u043c\u0435\u043d\u043d\u043e \u0442\u0443 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u0432\u044b \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0432\u0430\u0448\u0435\u0433\u043e CI\/CD \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u0444\u0430\u0439\u043b\u0435.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/6e7\/1b4\/716\/6e71b4716edce6d79b7c7779c4369c77.png\" alt=\"Select CI\/CD configuration from any job and reuse it\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/yaml\/README.html#reference-tags\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e reference<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/266173\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"razvyornutaya-versiya-konfiguracii-cicd\">\u0420\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 CI\/CD<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/verify\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Verify<\/a><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u043e\u0432 \u0447\u0430\u0441\u0442\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f \u0442\u0430\u043a\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430, \u043a\u0430\u043a <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/yaml\/#include\" rel=\"nofollow noopener noreferrer\"><code>include<\/code><\/a> \u0438 <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/yaml\/#extends\" rel=\"nofollow noopener noreferrer\"><code>extends<\/code><\/a>. \u041e\u043d\u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u044e\u0442 \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u043e\u0432, \u0447\u0442\u043e \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u0443\u0434\u043e\u0431\u043e\u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u044c \u0438 \u0441\u043e\u043a\u0440\u0430\u0449\u0430\u0435\u0442 \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435. \u041a \u0441\u043e\u0436\u0430\u043b\u0435\u043d\u0438\u044e, \u044d\u0442\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0441\u043b\u043e\u0432\u0430 \u043c\u043e\u0433\u0443\u0442 \u0443\u0441\u043b\u043e\u0436\u043d\u0438\u0442\u044c \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/blob\/master\/.gitlab-ci.yml#L91\" rel=\"nofollow noopener noreferrer\">\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430<\/a> \u043c\u043e\u0436\u0435\u0442 \u0432 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u043c \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u043f\u0435\u0440\u0435\u0447\u043d\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u043a\u043b\u044e\u0447\u0451\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0432\u0430\u0448\u0435\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\u043c\u0438 \u0438\u0437 <code>include<\/code> \u0438<code>extends<\/code>, \u0441\u0432\u0435\u0434\u0451\u043d\u043d\u044b\u043c\u0438 \u0432\u043c\u0435\u0441\u0442\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0449\u0435 \u043f\u043e\u043d\u044f\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u043e\u0432, \u0447\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043e\u0442\u043b\u0430\u0434\u043a\u0438.<\/p>\n<p>  <\/p>\n<div class=\"oembed\"><iframe allowfullscreen id=\"604916e3aa2e6ed27439fa1d\" src=\"https:\/\/embedd.srv.habr.com\/iframe\/604916e3aa2e6ed27439fa1d\"><\/iframe><\/div>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/pipeline_editor\/#view-expanded-configuration\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0443 \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u043e\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/246801\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"gruppy-resursov-dlya-mezhproektnyh-i-vlozhennyh-konveyerov\">\u0413\u0440\u0443\u043f\u043f\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0434\u043b\u044f \u043c\u0435\u0436\u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0445 \u0438 \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u043e\u0432<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/release\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Release<\/a><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430\u043c\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/yaml\/#pipeline-level-concurrency-control-with-cross-projectparent-child-pipelines\" rel=\"nofollow noopener noreferrer\">\u0433\u0440\u0443\u043f\u043f \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432<\/a>, \u0434\u0430\u0436\u0435 \u0435\u0441\u043b\u0438 \u0432\u0430\u0448 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/parent_child_pipelines.html\" rel=\"nofollow noopener noreferrer\">\u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0435<\/a> \u0438\u043b\u0438 <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/multi_project_pipelines.html\" rel=\"nofollow noopener noreferrer\">\u043c\u0435\u0436\u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0435<\/a> \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u044b. \u0422\u0430\u043a\u0438\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u044b \u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u0442\u044c \u0438\u0437 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u044d\u0442\u0430\u043f\u043e\u0432, \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0438 \u0434\u0430\u0436\u0435 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u0413\u0440\u0443\u043f\u043f\u044b \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u044e\u0442, \u0447\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d \u043d\u0438\u0436\u0435\u0441\u0442\u043e\u044f\u0449\u0438\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0432 \u043e\u0434\u043d\u043e \u0432\u0440\u0435\u043c\u044f, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e. \u0420\u0430\u043d\u0435\u0435 <code>resource_group<\/code> \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043f\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044e \u0432 \u043e\u0434\u043d\u043e\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0435.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c1a\/70e\/129\/c1a70e1297bcc4742979acef04dc48c9.png\" alt=\"Resource Group for multi-project and parent-child pipelines\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/yaml\/#pipeline-level-concurrency-control-with-cross-projectparent-child-pipelines\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0433\u0440\u0443\u043f\u043f\u0430\u043c \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 \u0434\u043b\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u044b\u0445 \u0438 \u043c\u0435\u0436\u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0445 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u043e\u0432<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/39057\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"podpisyvaytes-na-aktivnost-polzovatelya\">\u041f\u043e\u0434\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/manage\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Manage<\/a><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 GitLab \u043c\u043e\u0433\u0443\u0442 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0434\u0440\u0443\u0433\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u041f\u043e\u0434\u043f\u0438\u0441\u043a\u0430 \u043d\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0432\u0430\u043c \u0431\u044b\u0442\u044c \u0432 \u043a\u0443\u0440\u0441\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u0443 \u0442\u043e\u0432\u0430\u0440\u0438\u0449\u0435\u0439 \u043f\u043e \u043a\u043e\u043c\u0430\u043d\u0434\u0435 \u0438 \u0443 \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u043d\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u043b\u0438 \u0436\u0435 \u043e\u0442\u043f\u0438\u0441\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u043d\u0435\u0433\u043e \u0432 \u0435\u0433\u043e \u043f\u0440\u043e\u0444\u0438\u043b\u0435. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0432\u044b \u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u044b, \u043f\u0435\u0440\u0435\u0439\u0434\u0438\u0442\u0435 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0410\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0438 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0443 \u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 (Followed Users).<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u0430 \u0444\u0438\u0447\u0430 \u0441\u0442\u0430\u043b\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432 GitLab 13.9 \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043f\u043e\u0442\u0440\u044f\u0441\u0430\u044e\u0449\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 <a href=\"https:\/\/gitlab.com\/bufferoverflow\" rel=\"nofollow noopener noreferrer\">Roger Meier<\/a> \u0438\u0437 <a href=\"https:\/\/gitlab.com\/siemens\" rel=\"nofollow noopener noreferrer\">Siemens<\/a> \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 3 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/4b3\/0e9\/7f9\/4b30e97f96dc204ed260cc4447776882.png\" alt=\"Follow user activity\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/index.html#user-activity\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/17772\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"sozdavayte-tikety-v-jira-iz-uyazvimostey\">\u0421\u043e\u0437\u0434\u0430\u0432\u0430\u0439\u0442\u0435 \u0442\u0438\u043a\u0435\u0442\u044b \u0432 Jira \u0438\u0437 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439<\/h3>\n<p>  <\/p>\n<p>(SaaS: ULTIMATE; self-managed: ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/secure\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Secure<\/a><\/p>\n<p>  <\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 Jira \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0435\u0434\u0438\u043d\u043e\u0433\u043e \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0442\u0438\u043a\u0435\u0442\u043e\u0432 \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442. \u041f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 GitLab \u0434\u043b\u044f SCM \u0438 CI\/CD \u0432\u044b \u0443\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u043d\u0430\u0448\u0435\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0438\u0437 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432 \u0438 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0442\u0438\u043a\u0435\u0442\u044b Jira. \u041e\u0434\u043d\u0430\u043a\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432 Jira \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u0445 \u0441\u043a\u0430\u043d\u0435\u0440\u0430\u043c\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445. \u042d\u0442\u043e \u043d\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 Jira \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b, \u0438\u043d\u043e\u0433\u043e \u0432\u044b\u0431\u043e\u0440\u0430, \u043a\u0440\u043e\u043c\u0435 \u043a\u0430\u043a \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 \u0432 \u043d\u043e\u0432\u044b\u0435 \u0442\u0438\u043a\u0435\u0442\u044b.<\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u0438\u043a\u0435\u0442\u044b Jira \u043d\u0435\u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0438\u0437 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438. \u0412\u044b \u043d\u0430\u0439\u0434\u0451\u0442\u0435 \u044d\u0442\u0443 \u043d\u043e\u0432\u0443\u044e \u043e\u043f\u0446\u0438\u044e \u0432 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 Jira; \u043f\u0440\u043e\u0441\u0442\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u0435 \u0435\u0451 \u0438 \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043d\u0443\u0436\u043d\u044b\u0439 \u0442\u0438\u043f \u0442\u0438\u043a\u0435\u0442\u0430 \u0432 Jira. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u043e\u0434\u0442\u044f\u0433\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0446\u0435\u043b\u0435\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Jira. \u041f\u043e\u0441\u043b\u0435 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u043e\u043f\u0446\u0438\u0438 \u0432\u043e \u0432\u0441\u0435\u0445 \u043c\u0435\u0441\u0442\u0430\u0445 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0433\u0434\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0442\u0438\u043a\u0435\u0442\u044b GitLab \u0438\u0437 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0431\u0443\u0434\u0443\u0442 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0442\u0438\u043a\u0435\u0442\u044b \u0432 Jira \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u0432\u0430\u043c\u0438 \u0442\u0438\u043f\u043e\u043c.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/ab1\/eec\/833\/ab1eec8339578fb0af5c34631709c1ad.png\" alt=\"Create Jira issues from Vulnerabilities\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/vulnerabilities\/#create-a-gitlab-issue-for-a-vulnerability\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0442\u0438\u043a\u0435\u0442\u0430 \u0438\u0437 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/4677\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043f\u0438\u043a<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"ssylki-na-pereklyuchaemye-fichi-v-markdown\">\u0421\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0435 \u0444\u0438\u0447\u0438 \u0432 Markdown<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/release\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Release<\/a><\/p>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c Markdown-\u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0435 \u0444\u0438\u0447\u0438 (feature flags). \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0441\u043c\u043e\u0433\u0443\u0442 \u0434\u0435\u043b\u0430\u0442\u044c \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0445 \u0444\u0438\u0447 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 <code>[feature_flag:&lt;IID&gt;]<\/code> \u0432 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u044f\u0445 \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u044f\u0445. \u0414\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u044d\u0442\u043e\u0439 \u0444\u0438\u0447\u0438 \u0434\u043e\u0441\u0442\u0430\u0442\u043e\u0447\u043d\u043e \u0431\u0443\u0434\u0435\u0442 \u043a\u043b\u0438\u043a\u043d\u0443\u0442\u044c \u043f\u043e \u0441\u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0441\u044b\u043b\u043a\u0435. \u042d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430\u0434 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u043c\u0438 \u0444\u0438\u0447\u0430\u043c\u0438 \u043d\u0430\u043c\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0449\u0435 \u0438 \u0443\u0434\u043e\u0431\u043d\u0435\u0435.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/09d\/0b3\/8be\/09d0b38be24c14e20e73b54538e52bdb.png\" alt=\"Markdown links for Feature Flags\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/markdown.html#special-gitlab-references\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e Markdown-\u0441\u0441\u044b\u043b\u043a\u0430\u043c \u0432 GitLab<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/320735\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"razreshenie-na-push-v-zaschischyonnye-vetki-cherez-klyuchi-razvyortyvaniya\">\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430 \u043f\u0443\u0448 \u0432 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0435 \u0432\u0435\u0442\u043a\u0438 \u0447\u0435\u0440\u0435\u0437 \u043a\u043b\u044e\u0447\u0438 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/release\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Release<\/a><\/p>\n<p>  <\/p>\n<p>\u0414\u043e \u0432\u0435\u0440\u0441\u0438\u0438 GitLab 12.0 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u044b \u043a\u043b\u044e\u0447\u0435\u0439 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0441 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435\u043c \u043d\u0430 \u0437\u0430\u043f\u0438\u0441\u044c \u043c\u043e\u0433\u043b\u0438 \u043f\u0443\u0448\u0438\u0442\u044c \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u0432 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0435 \u0432\u0435\u0442\u043a\u0438. \u041c\u044b \u0443\u0431\u0440\u0430\u043b\u0438 \u044d\u0442\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0437-\u0437\u0430 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e, \u043e\u0434\u043d\u0430\u043a\u043e \u043c\u043d\u043e\u0433\u0438\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043e\u043d\u0430 \u0431\u044b\u043b\u0430 \u043d\u0443\u0436\u043d\u0430, \u0447\u0442\u043e\u0431\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u043f\u0443\u0448\u0438 \u0432 \u0441\u0432\u043e\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438 \u0442\u043e\u043b\u044c\u043a\u043e \u0442\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c, \u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0435\u0441\u0442\u044c \u043a\u043b\u044e\u0447\u0438 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0442\u0430\u043a\u0430\u044f \u0441\u0445\u0435\u043c\u0430 \u0443\u0431\u0438\u0440\u0430\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441\u043d\u044b\u0435 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0442\u043e\u0436\u0435 \u0432\u0445\u043e\u0434\u044f\u0442 \u0432 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0435 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0435\u0439, \u0438\u043c\u0435\u043d\u043d\u043e \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043c\u043d\u043e\u0433\u0438\u0435 \u0445\u043e\u0442\u0435\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043b\u044e\u0447\u0438 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0443\u0448\u0430 \u0432 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0435 \u0432\u0435\u0442\u043a\u0438. \u041c\u044b \u0440\u0430\u0434\u044b \u0441\u043e\u043e\u0431\u0449\u0438\u0442\u044c \u0432\u0430\u043c, \u0447\u0442\u043e \u0440\u0435\u0448\u0438\u043b\u0438 \u044d\u0442\u0443 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0443, \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u044b \u043a\u043b\u044e\u0447\u0435\u0439 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0441\u043d\u043e\u0432\u0430 \u0441\u043c\u043e\u0433\u0443\u0442 \u043f\u0443\u0448\u0438\u0442\u044c \u0432 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0435 \u0432\u0435\u0442\u043a\u0438, \u0432 \u0442\u043e \u0436\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u043e\u0431\u043b\u044e\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u0433\u0438\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u0414\u0432\u0438\u0433\u0430\u044f\u0441\u044c \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u043c\u043e\u0434\u0435\u043b\u0438 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0445 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f, \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0445 \u0432\u0435\u0442\u043e\u043a \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0432\u044b\u0431\u0438\u0440\u0430\u0442\u044c \u043a\u043b\u044e\u0447\u0438 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u043c \u0432\u0435\u0442\u043a\u0430\u043c.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/aea\/08a\/eca\/aea08aecaf4d953108aa3fd68efdbde2.png\" alt=\"Allow Deploy Keys to push to protected branches\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/protected_branches.html#allow-deploy-keys-to-push-to-a-protected-branch\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u044e \u043d\u0430 \u043f\u0443\u0448 \u0432 \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0435 \u0432\u0435\u0442\u043a\u0438 \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/30769\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"zaprosy-na-povtornoe-revyu\">\u0417\u0430\u043f\u0440\u043e\u0441\u044b \u043d\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0440\u0435\u0432\u044c\u044e<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/create\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Create<\/a><\/p>\n<p>  <\/p>\n<p>\u0410\u0432\u0442\u043e\u0440\u044b \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432 \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/merge_requests\/getting_started.html#reviewer\" rel=\"nofollow noopener noreferrer\">\u0444\u0438\u0434\u0431\u0435\u043a \u043e\u0442 \u0440\u0435\u0432\u044c\u044e\u0435\u0440\u043e\u0432<\/a>. \u0417\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u044d\u0442\u043e\u0442 \u0444\u0438\u0434\u0431\u0435\u043a \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0433\u043e \u0440\u0435\u0432\u044c\u044e \u043f\u043e\u0441\u043b\u0435 \u0435\u0433\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0432\u0441\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u043f\u043e \u043d\u0435\u043c\u0443 \u0431\u044b\u043b\u0438 \u0440\u0435\u0448\u0435\u043d\u044b. \u0414\u043b\u044f \u044d\u0442\u043e\u0433\u043e \u0430\u0432\u0442\u043e\u0440\u0443 \u043d\u0443\u0436\u043d\u0430 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u0434\u0430\u0442\u044c \u0440\u0435\u0432\u044c\u044e\u0435\u0440\u0443 \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0440\u0435\u0432\u044c\u044e.<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0440\u0435\u0432\u044c\u044e \u0442\u0435\u043c \u0440\u0435\u0432\u044c\u044e\u0435\u0440\u0430\u043c, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0443\u0436\u0435 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/discussions\/#merge-request-reviews\" rel=\"nofollow noopener noreferrer\">\u043f\u0440\u043e\u0432\u043e\u0434\u0438\u043b\u0438 \u0440\u0435\u0432\u044c\u044e \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430<\/a>. \u042d\u0442\u043e\u0442 \u0437\u0430\u043f\u0440\u043e\u0441 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043f\u0443\u043d\u043a\u0442 \u0432 \u0441\u043f\u0438\u0441\u043a\u0435 To-Do \u0440\u0435\u0432\u044c\u044e\u0435\u0440\u0430 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0435\u043c\u0443 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043f\u043e email, \u0447\u0442\u043e\u0431\u044b \u0443\u0432\u0435\u0434\u043e\u043c\u0438\u0442\u044c \u0430\u0434\u0440\u0435\u0441\u0430\u0442\u0430 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0440\u0435\u0432\u044c\u044e \u0432\u0430\u0448\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/d92\/7f4\/74b\/d927f474b47c1238869648e91735ca69.png\" alt=\"Request a follow-up review from a Reviewer\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/merge_requests\/getting_started.html#requesting-a-new-review\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u043d\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0440\u0435\u0432\u044c\u044e<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/293933\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"uluchsheniya-na-gitlabcom-dlya-prilozheniya-jira-cloud\">\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043d\u0430 GitLab.com \u0434\u043b\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f Jira Cloud<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/create\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Create<\/a><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0432\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 Jira Cloud \u0441 GitLab, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 <a href=\"https:\/\/marketplace.atlassian.com\/apps\/1221011\/gitlab-com-for-jira-cloud?tab=overview&amp;hosting=cloud\" rel=\"nofollow noopener noreferrer\">GitLab.com \u0434\u043b\u044f Jira Cloud<\/a>, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0435 \u043d\u0430 Atlassian Marketplace. \u042d\u0442\u043e\u0442 \u043f\u043b\u0430\u0433\u0438\u043d \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0432\u0430\u0448\u0438\u0445 \u0432\u0435\u0442\u043a\u0430\u0445, \u043a\u043e\u043c\u043c\u0438\u0442\u0430\u0445, \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430\u0445, \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f\u0445 \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u044b\u0445 \u0444\u0438\u0447\u0430\u0445 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 Jira. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u0438\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442, \u0430 \u0437\u0430\u0442\u0435\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u0432\u0435\u0440\u043d\u0443\u0442\u044c\u0441\u044f \u043d\u0430\u0437\u0430\u0434 \u043a \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c \u0432 GitLab.<\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u044d\u0442\u0438\u0445 \u0444\u0438\u0447, \u043d\u0430 \u043f\u0440\u043e\u0442\u044f\u0436\u0435\u043d\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u043c\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0438\u043b\u0438 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043f\u0435\u0440\u0432\u043e\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438, \u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0442\u044c \u0432\u0430\u0448\u0438 \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438\u043c\u0451\u043d GitLab \u0441\u0442\u0430\u043b\u043e \u043f\u0440\u043e\u0449\u0435 \u0447\u0435\u043c \u043a\u043e\u0433\u0434\u0430-\u043b\u0438\u0431\u043e. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u043e\u0439 \u0444\u0438\u0447\u0435\u0439, \u043d\u0430\u0439\u0434\u0438\u0442\u0435 \u043d\u0430\u0448 \u043f\u043b\u0430\u0433\u0438\u043d \u043d\u0430 <a href=\"https:\/\/marketplace.atlassian.com\/apps\/1221011\/gitlab-com-for-jira-cloud?tab=overview&amp;hosting=cloud\" rel=\"nofollow noopener noreferrer\">Atlassian Marketplace<\/a>.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/7c0\/1dd\/bcc\/7c01ddbcca3964f9ca98bd0a7ee1b509.png\" alt=\"Improvements to the GitLab.com for Jira Cloud Application\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/integration\/jira_development_panel.html#gitlab-for-jira-app\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044e GitLab \u0434\u043b\u044f Jira<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/4354\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043f\u0438\u043a<\/a>.<\/p>\n<p>  <\/p>\n<h2 id=\"drugie-uluchsheniya-v-gitlab-139\">\u0414\u0440\u0443\u0433\u0438\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 GitLab 13.9<\/h2>\n<p>  <\/p>\n<h3 id=\"email-uvedomleniya-pri-prekraschenii-deystviya-klyuchey-pat--ssh\">Email-\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0435\u043d\u0438\u0438 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439 PAT \/ SSH<\/h3>\n<p>  <\/p>\n<p>(self-managed: ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/manage\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Manage<\/a><\/p>\n<p>  <\/p>\n<p>\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0430\u0448\u0438\u043c \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u043e\u043c \u0438\u043c\u0451\u043d \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0441\u0442\u0440\u043e\u0433\u043e\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0442\u043e\u0433\u043e, \u043a\u0442\u043e \u0438\u043c\u0435\u0435\u0442 \u043a\u0430\u043a\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u0438 \u043a \u0447\u0435\u043c\u0443. \u0427\u0442\u043e\u0431\u044b \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043b\u0438\u0447\u043d\u044b\u0445 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 (Personal Access Tokens), \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442\u043e\u0437\u0432\u0430\u0442\u044c \u0442\u043e\u043a\u0435\u043d \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0414\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u044d\u0442\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432 \u0441 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0442\u043e\u043a\u0435\u043d\u0430, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u043f\u0440\u0435\u043a\u0440\u0430\u0449\u0430\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0443\u0447\u0451\u0442\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043b\u0438\u0447\u043d\u044b\u043c\u0438 \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438 <a href=\"https:\/\/habr.com\/ru\/post\/527208\/#knopka-udaleniya-na-vkladke-ssh-v-hranilische-uchyotnyh-dannyh\">\u043a\u043b\u044e\u0447\u0430\u043c\u0438 SSH<\/a> \u0432\u0430\u0448\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u043e\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u2014 \u0441 \u043f\u0430\u043d\u0435\u043b\u0438 Credential Inventory.<\/p>\n<p>  <\/p>\n<p>\u0412\u0430\u0448\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c email-\u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f, \u043a\u043e\u0433\u0434\u0430 \u0438\u0445 \u043f\u0435\u0440\u0441\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0435 \u0442\u043e\u043a\u0435\u043d\u044b \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438\u043b\u0438 \u043a\u043b\u044e\u0447\u0438 SSH \u0431\u044b\u043b\u0438 \u043e\u0442\u043e\u0437\u0432\u0430\u043d\u044b \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u043c. \u042d\u0442\u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u044f\u0442 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c \u0431\u043e\u043b\u044c\u0448\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f \u043d\u0430\u0434 \u0443\u0447\u0451\u0442\u043d\u044b\u043c\u0438 \u0434\u0430\u043d\u043d\u044b\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0430\u0442 \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c, \u0442\u0430\u043a \u0447\u0442\u043e \u0442\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0432\u0440\u0435\u043c\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0441 \u043c\u0438\u043d\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u043e\u0439.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/cc2\/e2c\/108\/cc2e2c10845ac776eae133a38a6d1e37.png\" alt=\"Email notifications when PAT \/ SSH Keys are revoked\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/admin_area\/credentials_inventory.html\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e Credentials Inventory<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/214811\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"uluchshennaya-obrabotka-taymautov-saml\">\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u0430\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u043e\u0432 SAML<\/h3>\n<p>  <\/p>\n<p>(SaaS: PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/manage\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Manage<\/a><\/p>\n<p>  <\/p>\n<p>\u041a\u043e\u0433\u0434\u0430 \u0441\u0435\u0441\u0441\u0438\u044f SAML \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f\u044b \u043d\u0430 GitLab.com \u0434\u043e\u0441\u0442\u0438\u0433\u0430\u0435\u0442 \u0441\u0435\u043c\u0438\u0434\u043d\u0435\u0432\u043d\u043e\u0433\u043e \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u0430, \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043a\u043b\u0438\u043a\u0430\u0442\u044c \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0435\u0441\u0441\u0438\u044e. GitLab \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u0431\u0440\u0430\u0442\u0438\u0442\u0441\u044f \u043a \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0443 \u0443\u0447\u0451\u0442\u043d\u044b\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u044b \u0434\u043b\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0441\u0442\u0438 \u0441\u0435\u0441\u0441\u0438\u0438 \u0438, \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438, \u0435\u0451 \u043f\u0440\u043e\u0434\u043b\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f SAML \u0434\u043b\u044f \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u0433\u0440\u0443\u043f\u043f\u044b \u0438 \u0437\u0430\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0435\u0442 \u043e\u0441\u043d\u043e\u0432\u0443 \u0434\u043b\u044f \u0443\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u0438\u044f \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0442\u0430\u0439\u043c\u0430\u0443\u0442\u043e\u0432 \u0441\u0435\u0441\u0441\u0438\u0439 SAML \u0432 \u0431\u0443\u0434\u0443\u0449\u0435\u043c.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/group\/saml_sso\/#sso-enforcement\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e SAML<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/292811\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"upravlenie-tokenami-dostupa-k-proektam-cherez-api\">\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c \u0447\u0435\u0440\u0435\u0437 API<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/manage\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Manage<\/a><\/p>\n<p>  <\/p>\n<p>\u0412 GitLab 13.9 \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c API \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/settings\/project_access_tokens.html#project-access-tokens\" rel=\"nofollow noopener noreferrer\">\u0442\u043e\u043a\u0435\u043d\u0430\u043c\u0438 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043f\u0440\u043e\u0435\u043a\u0442\u0443<\/a>. \u042d\u0442\u043e\u0442 API \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0445\u043e\u0442\u044f\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0432\u043e \u0432\u043d\u0435\u0448\u043d\u0438\u0445 \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u0445 \u0438\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u0443\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/api\/resource_access_tokens.html\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e API \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/238991\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"indikator-zanyatosti-polzovatelya-v-tikete-i-na-bokovoy-paneli-merzh-rekvesta\">\u0418\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0437\u0430\u043d\u044f\u0442\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u0442\u0438\u043a\u0435\u0442\u0435 \u0438 \u043d\u0430 \u0431\u043e\u043a\u043e\u0432\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/manage\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Manage<\/a><\/p>\n<p>  <\/p>\n<p>\u0412 GitLab 13.8 \u043c\u044b <a href=\"https:\/\/habr.com\/ru\/post\/541688\/#indikator-sostoyaniya-zanyatosti\">\u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0437\u0430\u043d\u044f\u0442\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/a>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u043b\u0438 \u043a\u043e\u043b\u043b\u0435\u0433\u0438 \u0434\u043b\u044f \u0440\u0435\u0432\u044c\u044e \u043a\u043e\u0434\u0430 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0437\u0430\u0434\u0430\u0447. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u0442\u0430\u043a\u0436\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u043c \u044d\u0442\u043e\u0442 \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440 \u0432 \u0440\u0430\u0437\u0434\u0435\u043b\u0435 Assignee \u0442\u0438\u043a\u0435\u0442\u0430 \u0438 \u043d\u0430 \u0431\u043e\u043a\u043e\u0432\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/7bf\/82c\/c0d\/7bf82cc0dd2404be315539839c057e25.png\" alt=\"User Busy status in issue and MR sidebar\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/profile\/#busy-status-indicator\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0438\u043d\u0434\u0438\u043a\u0430\u0442\u043e\u0440\u0443 \u0437\u0430\u043d\u044f\u0442\u043e\u0441\u0442\u0438<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/285088\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"filtr-po-konfidencialnosti-dlya-dorozhnyh-kart\">\u0424\u0438\u043b\u044c\u0442\u0440 \u043f\u043e \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0434\u043e\u0440\u043e\u0436\u043d\u044b\u0445 \u043a\u0430\u0440\u0442<\/h3>\n<p>  <\/p>\n<p>(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/plan\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Plan<\/a><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435 \u0434\u043e\u0440\u043e\u0436\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u044b (\u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 GitLab \u00ab\u043f\u043b\u0430\u043d \u0440\u0430\u0437\u0432\u0438\u0442\u0438\u044f\u00bb) \u0440\u0430\u043d\u0435\u0435 \u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0441\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u044d\u043f\u0438\u043a\u0438 (\u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 GitLab \u00ab\u0446\u0435\u043b\u0438\u00bb) \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0433\u043e \u0432\u0438\u0434\u0430. \u042d\u0442\u043e \u043c\u043e\u0433\u043b\u043e \u0431\u044b\u0442\u044c \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u043e, \u0435\u0441\u043b\u0438 \u0432\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0435\u0439 \u0434\u043e\u0440\u043e\u0436\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u043e\u0439 \u0441 \u0448\u0438\u0440\u043e\u043a\u043e\u0439 \u0430\u0443\u0434\u0438\u0442\u043e\u0440\u0438\u0435\u0439.<\/p>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 \u0444\u0438\u043b\u044c\u0442\u0440 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438, \u0447\u0442\u043e\u0431\u044b \u0432 \u0432\u044b\u0434\u0430\u0447\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u043b\u0441\u044f \u0441\u0442\u0430\u0442\u0443\u0441 \u043a\u043e\u043d\u0444\u0438\u0434\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u0434\u043b\u044f \u043f\u0440\u0438\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0434\u043e\u0440\u043e\u0436\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u043a \u0436\u0435\u043b\u0430\u0435\u043c\u043e\u043c\u0443 \u0432\u0438\u0434\u0443!<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/1e3\/c06\/48b\/1e3c0648b0b45e91474cfc76371fd1dc.png\" alt=\"Filter roadmaps by confidentiality\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/group\/roadmap\/#sort-and-filter-the-roadmap\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0435 \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0434\u043e\u0440\u043e\u0436\u043d\u044b\u0445 \u043a\u0430\u0440\u0442<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/218624\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"otobrazhenie-kommentariev-k-epiku-v-lente-aktivnosti-polzovatelya\">\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u043a \u044d\u043f\u0438\u043a\u0443 \u0432 \u043b\u0435\u043d\u0442\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f<\/h3>\n<p>  <\/p>\n<p>(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/plan\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Plan<\/a><\/p>\n<p>  <\/p>\n<p>\u0414\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u044d\u043f\u0438\u043a\u0430\u043c\u0438 \u043d\u0438\u043a\u0430\u043a \u043d\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u043e\u0441\u044c \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0435\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f. \u0418\u0437-\u0437\u0430 \u044d\u0442\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043c\u043e\u0433\u043b\u0438 \u0434\u0443\u043c\u0430\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0438 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u044e\u0442 \u044d\u043f\u0438\u043a\u0438, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442 \u0438\u043b\u0438 \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u0435\u0442 \u0441 \u043d\u0438\u043c\u0438. \u0422\u0430\u043a\u0436\u0435 \u044d\u0442\u043e \u0443\u0441\u043b\u043e\u0436\u043d\u044f\u043b\u043e \u043f\u043e\u0438\u0441\u043a \u043d\u0435\u0434\u0430\u0432\u043d\u0435\u0439 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0432\u0441\u044e \u0432\u0430\u0448\u0443 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u043f\u043e \u044d\u043f\u0438\u043a\u0443 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0435\u0439 \u0438 \u0432 \u043f\u0440\u043e\u0444\u0438\u043b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0432\u043a\u043b\u0430\u0434\u0430 \u0432 \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430\u0434 \u044d\u043f\u0438\u043a\u0430\u043c\u0438.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/e41\/677\/649\/e416776490bcf810ad6d7d3757cc590d.png\" alt=\"Show epic comments on user activity feeds\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/#user-activity\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/196835\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"avtodopolnenie-peremennyh-gitlab-ci-v-vs-code\">\u0410\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 GitLab CI \u0432 VS Code<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/create\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Create<\/a><\/p>\n<p>  <\/p>\n<p>GitLab CI \u2014 \u044d\u0442\u043e \u0431\u044b\u0441\u0442\u0440\u044b\u0439 \u0438 \u0433\u0438\u0431\u043a\u043e \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0439 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442, \u043e\u0434\u043d\u0430\u043a\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u043e\u043c\u043d\u0438\u0442\u044c \u0432\u0441\u0435 <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/variables\/predefined_variables.html\" rel=\"nofollow noopener noreferrer\">\u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f<\/a>, \u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u043e\u043f\u0435\u0447\u0430\u0442\u043a\u0430 \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0444\u0430\u0439\u043b \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <code>.gitlab-ci.yml<\/code> \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c. \u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 GitLab CI \u0441\u0442\u0430\u043b\u0430 \u043f\u0440\u043e\u0449\u0435, \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-vscode-extension\/-\/blob\/main\/CHANGELOG.md#3110-2021-01-25\" rel=\"nofollow noopener noreferrer\">\u0432\u0435\u0440\u0441\u0438\u0438 3.11.0<\/a>, \u0432 <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=GitLab.gitlab-workflow\" rel=\"nofollow noopener noreferrer\">GitLab Workflow<\/a> \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u0438 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0444\u0430\u0439\u043b\u0430 <code>.gitlab-ci.yml<\/code>.<\/p>\n<p>  <\/p>\n<p>\u0412\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u0432 \u0434\u0438\u0430\u043b\u043e\u0433\u0435 \u0430\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0434\u0430\u044e\u0442 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043e \u0442\u043e\u043c, \u0434\u043b\u044f \u0447\u0435\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 GitLab \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u0439. \u042d\u0442\u0430 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043c\u043e\u0436\u0435\u0442 \u043e\u0447\u0435\u043d\u044c \u043f\u043e\u043c\u043e\u0447\u044c \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 CI.<\/p>\n<p>  <\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e <a href=\"https:\/\/gitlab.com\/KevSlashNull\" rel=\"nofollow noopener noreferrer\">@KevSlashNull<\/a> \u0437\u0430 \u044d\u0442\u0443 \u0444\u0438\u0447\u0443!<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/cbc\/a46\/c3e\/cbca46c3ee71bc773a442aafb83df0cf.png\" alt=\"Autocomplete GitLab CI Variables in VS Code\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-vscode-extension#ci-variable-autocompletion\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0430\u0432\u0442\u043e\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 CI<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-vscode-extension\/-\/issues\/55\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"vozmozhnost-otmechat-prosmotrennye-izmeneniya-v-merzh-rekveste\">\u0412\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u043c\u0435\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0432 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0435<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/create\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Create<\/a><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0438\u0437\u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441\u0440\u0430\u0437\u0443 \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u0444\u0430\u0439\u043b\u043e\u0432, \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u0441\u043b\u043e\u0436\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0434\u0438\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u0432\u044b \u0443\u0436\u0435 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043b\u0438. \u0420\u0435\u0432\u044c\u044e \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c, \u0435\u0441\u043b\u0438 \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0438\u043b\u0438 \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 \u043f\u043e\u0433\u0440\u0443\u0436\u0435\u043d\u0438\u0435 \u0432 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430.<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0444\u0430\u0439\u043b\u044b \u0432 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0435 \u043c\u043e\u0436\u043d\u043e \u043e\u0442\u043c\u0435\u0447\u0430\u0442\u044c \u043a\u0430\u043a \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u043d\u043d\u044b\u0435 (<strong>Viewed<\/strong>). \u0422\u0430\u043a \u0440\u0435\u0432\u044c\u044e\u0435\u0440\u0430\u043c \u043b\u0435\u0433\u043a\u043e \u0431\u0443\u0434\u0435\u0442 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u043e\u043d\u0438 \u0443\u0436\u0435 \u043e\u0442\u0440\u0435\u0432\u044c\u044e\u0438\u043b\u0438, \u0430 \u043a\u0430\u043a\u0438\u0435 \u0435\u0449\u0451 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/4d4\/f68\/d5b\/4d4f68d5bae046e679b2559fc7b46341.png\" alt=\"Mark changes as viewed in merge requests\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/merge_requests\/reviewing_and_managing_merge_requests.html#mark-files-as-viewed\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u0435\u0432\u044c\u044e \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430\u043c\u0438<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/17531\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"prosmotr-kommentariev-revyu-koda-v-vs-code\">\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0435\u0432 \u0440\u0435\u0432\u044c\u044e \u043a\u043e\u0434\u0430 \u0432 VS Code<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/create\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Create<\/a><\/p>\n<p>  <\/p>\n<p>\u0412 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435 GitLab Workflow \u0434\u043b\u044f VS Code \u0441\u0442\u0430\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u043c \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c <a href=\"https:\/\/habr.com\/ru\/post\/537006\/#prosmotr-izmeneniy-merzh-rekvesta-v-vs-code\">\u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430<\/a> \u0432 VS Code. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0445 \u0432 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u2014 \u044d\u0442\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u0447\u0430\u0441\u0442\u044c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0440\u0435\u0432\u044c\u044e \u044d\u0442\u043e\u0433\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438 \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0430 \u0444\u0438\u0434\u0431\u0435\u043a.<\/p>\n<p>  <\/p>\n<p>\u0421 \u0440\u0435\u043b\u0438\u0437\u043e\u043c \u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 <a href=\"https:\/\/marketplace.visualstudio.com\/items?itemName=GitLab.gitlab-workflow\" rel=\"nofollow noopener noreferrer\">GitLab Workflow<\/a> \u2014 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-vscode-extension\/-\/blob\/main\/CHANGELOG.md#3100-2021-01-19\" rel=\"nofollow noopener noreferrer\">3.10.0<\/a> \u2014 \u043f\u0440\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430 \u0432\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u0431\u0443\u0434\u0435\u0442\u0435 \u0432\u0438\u0434\u0435\u0442\u044c \u0438 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438 \u043a \u043d\u0438\u043c. \u042d\u0442\u043e \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043e\u0431\u043b\u0435\u0433\u0447\u0438\u0442 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u043f\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0444\u0438\u0434\u0431\u0435\u043a\u0430 \u043f\u043e \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0443 \u043f\u0440\u044f\u043c\u043e \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435, \u0431\u0435\u0437 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u043c\u0435\u0436\u0434\u0443 VS Code \u0438 GitLab.<\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/4607\" rel=\"nofollow noopener noreferrer\">\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0435\u0432\u044c\u044e \u043a\u043e\u0434\u0430 \u0432 VS Code<\/a>. \u0414\u0430\u043b\u0435\u0435 \u043c\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-vscode-extension\/-\/issues\/269\" rel=\"nofollow noopener noreferrer\">\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0432\u0435\u0447\u0430\u0442\u044c \u043d\u0430 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438<\/a>.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/cab\/bfc\/306\/cabbfc30600a2d27839d4fa7f1c87f5f.png\" alt=\"View code review comments in VS Code\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-vscode-extension#merge-request-reviews\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u0435\u0432\u044c\u044e \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-vscode-extension\/-\/issues\/266\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"podderzhka-graficheskogo-processora-i-umnogo-planirovaniya-dlya-obrabotchika-zadaniy-gitlab\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0438 \u0443\u043c\u043d\u043e\u0433\u043e \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 GitLab<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/verify\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Verify<\/a><\/p>\n<p>  <\/p>\n<p>\u041d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u0438\u0434\u044b \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0435 \u0441 \u0437\u0430\u0434\u0430\u0447\u0430\u043c\u0438 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f, \u043c\u043e\u0433\u0443\u0442 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c\u0441\u044f \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0435. \u0422\u0435\u043f\u0435\u0440\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439 GitLab, \u0447\u0442\u043e\u0431\u044b \u043e\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0435 Docker, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u043b\u0430\u0433\u0430 <code>--gpu<\/code>. \u0422\u0430\u043a\u0436\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440 \u0432 <a href=\"https:\/\/docs.gitlab.com\/runner\/executors\/docker_machine.html#using-the-forked-version-of-docker-machine\" rel=\"nofollow noopener noreferrer\">\u0444\u043e\u0440\u043a\u0435 Docker Machine \u043e\u0442 GitLab<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 <a href=\"https:\/\/cloud.google.com\/compute\/docs\/gpus\/create-vm-with-gpus\" rel=\"nofollow noopener noreferrer\">\u0443\u0441\u043a\u043e\u0440\u044f\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u044b \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430<\/a>. \u042d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u0437\u0430\u0442\u0440\u0430\u0442\u044b \u043d\u0430 \u0434\u043e\u0440\u043e\u0433\u043e\u0441\u0442\u043e\u044f\u0449\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u041f\u041a.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/runner\/executors\/docker_machine.html#using-gpus-on-google-compute-engine\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0433\u0440\u0430\u0444\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0440\u0430 \u0432 Google Compute Engine<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/issues\/4585\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"grafik-pokrytiya-koda-testami-dlya-gruppy\">\u0413\u0440\u0430\u0444\u0438\u043a \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044f \u043a\u043e\u0434\u0430 \u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f\u044b<\/h3>\n<p>  <\/p>\n<p>(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/verify\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Verify<\/a><\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u043d\u0435\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432 GitLab <a href=\"https:\/\/habr.com\/ru\/post\/531934\/#otobrazhenie-pokrytiya-koda-testami-dlya-vybrannyh-proektov\">\u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0438 \u043a\u043e\u0434\u0430 \u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f\u044b<\/a>. \u042d\u0442\u0438 \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u043b\u0435\u0433\u043a\u043e \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0442\u0435\u043a\u0443\u0449\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044f \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 \u0433\u0440\u0443\u043f\u043f\u0435 \u0438 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0434\u043b\u044f \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0432\u043d\u0435 GitLab. \u0422\u0435\u043f\u0435\u0440\u044c \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044f \u043a\u043e\u0434\u0430 \u0433\u0440\u0443\u043f\u043f\u044b \u0442\u0430\u043a\u0436\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u0442\u0440\u043e\u0438\u0442\u0441\u044f \u0433\u0440\u0430\u0444\u0438\u043a \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044f, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a \u044d\u0442\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0441 \u0442\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/d94\/25e\/474\/d9425e4749f1d0d8f12320ec46724109.png\" alt=\"Group code coverage data graph\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/group\/repositories_analytics\/index.html#current-group-code-coverage\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044e \u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u0434\u043b\u044f \u0433\u0440\u0443\u043f\u043f\u044b<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/215140\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"nastroyka-instansa-dlya-upravleniya-hraneniem-poslednih-artefaktov\">\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430 \u0434\u043b\u044f \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/verify\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Verify<\/a><\/p>\n<p>  <\/p>\n<p>\u0412 <a href=\"https:\/\/habr.com\/ru\/post\/541688\/#konfiguraciya-proekta-dlya-upravleniya-hraneniem-poslednih-artefaktov\">\u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435<\/a> \u043c\u044b \u043f\u043e\u0441\u0442\u0430\u0440\u0430\u043b\u0438\u0441\u044c \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043f\u0430\u043c\u044f\u0442\u0438, \u0434\u043e\u0431\u0430\u0432\u0438\u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u043e\u0442\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432. \u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432 \u0441 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u044b\u043c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c, \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e, \u0437\u0430\u0445\u043e\u0442\u044f\u0442 \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430, \u0442\u0430\u043a \u0447\u0442\u043e \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043e\u043f\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0441\u0440\u0430\u0437\u0443 \u043e\u0434\u043d\u0438\u043c \u043a\u043b\u0438\u043a\u043e\u043c.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/fb0\/5d2\/31c\/fb05d231c6336ec54a9d49246d5a7904.png\" alt=\"Instance configuration to control latest artifacts storage\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/admin_area\/settings\/continuous_integration.html#keep-the-latest-artifacts-for-all-jobs-in-the-latest-successful-pipelines\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044e \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/276583\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"avtomaticheskaya-autentifikaciya-pri-ispolzovanii-proksi-zavisimostey\">\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u043a\u0441\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/package\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Package<\/a><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u043e\u043a\u0441\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0432\u0430\u043c \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u043e\u0432 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0438\u0437 Docker Hub. \u0425\u043e\u0442\u044f \u043f\u0440\u043e\u043a\u0441\u0438 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u043d\u0441\u0438\u0432\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441 GitLab CI\/CD, \u0440\u0430\u043d\u0435\u0435 \u0432\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0432\u043e\u0438 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u0432 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <code>DOCKER_AUTH_CONFIG<\/code> \u043b\u0438\u0431\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c <code>docker login<\/code> \u0432 \u0432\u0430\u0448\u0435\u043c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0435. \u042d\u0442\u0438 \u0441\u043f\u043e\u0441\u043e\u0431\u044b \u0432\u043f\u043e\u043b\u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438, \u043e\u0434\u043d\u0430\u043a\u043e, \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044f, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 <code>.gitlab-ci.yml<\/code> \u0432\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c, \u0431\u044b\u043b\u043e \u0431\u044b \u043b\u0443\u0447\u0448\u0435, \u0435\u0441\u043b\u0438 \u0431\u044b \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439 GitLab \u043c\u043e\u0433 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0437\u0430 \u0432\u0430\u0441.<\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0443\u0436\u0435 \u0441\u043f\u043e\u0441\u043e\u0431\u0435\u043d \u043f\u0440\u043e\u0432\u043e\u0434\u0438\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e \u0441\u043e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u043c \u0440\u0435\u0435\u0441\u0442\u0440\u043e\u043c \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 GitLab, \u043c\u044b \u0441\u043c\u043e\u0433\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u043e\u0447\u044c \u0432\u0430\u043c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u043f\u0440\u043e\u043a\u0441\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439.<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0449\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u043a\u0441\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0434\u043b\u044f \u043f\u0440\u043e\u043a\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043a\u044d\u0448\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0440\u0430\u0437\u043e\u0432 \u043a\u043e\u043d\u0442\u0435\u0439\u043d\u0435\u0440\u043e\u0432 \u0438\u0437 Docker Hub \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0431\u044b\u0441\u0442\u0440\u044b\u0435 \u0438 \u043d\u0430\u0434\u0451\u0436\u043d\u044b\u0435 \u0441\u0431\u043e\u0440\u043a\u0438.<\/p>\n<p>  <\/p>\n<div class=\"oembed\"><iframe allowfullscreen id=\"604916e4c373282e340f4817\" src=\"https:\/\/embedd.srv.habr.com\/iframe\/604916e4c373282e340f4817\"><\/iframe><\/div>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/packages\/dependency_proxy\/#authenticate-within-cicd\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u043a\u0441\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/issues\/27302\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"podderzhka-skanirovaniya-zavisimostey-dlya-sbt-130\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0434\u043b\u044f sbt 1.3.0<\/h3>\n<p>  <\/p>\n<p>(SaaS: ULTIMATE; self-managed: ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/secure\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Secure<\/a><\/p>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438 \u043d\u0430 Scala, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 <code>sbt<\/code> 1.3 \u0438 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0437\u0434\u043d\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u0439, \u0442\u0435\u043f\u0435\u0440\u044c \u0441\u043c\u043e\u0433\u0443\u0442 \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439. \u0420\u0430\u043d\u0435\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0440\u0441\u0438\u0438 1.2 \u0438 \u043d\u0438\u0436\u0435.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/dependency_scanning\/#supported-languages-and-package-managers\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u044f\u0437\u044b\u043a\u0430\u043c\u0438 \u0438 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/271345\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"uluchshennaya-podderzhka-sast-dlya-android\">\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 SAST \u0434\u043b\u044f Android<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/secure\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Secure<\/a><\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0432\u0435\u0440\u0441\u0438\u0438 GitLab 13.5 \u043c\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c <a href=\"https:\/\/habr.com\/ru\/post\/527208\/#podderzhka-sast-dlya-mobilnyh-prilozheniy-pod-ios-i-android\">SAST \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a> \u0447\u0435\u0440\u0435\u0437 MobSF. \u041c\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 \u044d\u0442\u043e\u0442 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 2.5, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e\u0434 Android. \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442: \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u043a\u0438 \u043a OWASP MSTG \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 <a href=\"https:\/\/developer.android.com\/about\/versions\/10\/features\" rel=\"nofollow noopener noreferrer\">API 29 (Android 10)<\/a>, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 xapk \u0438 <a href=\"https:\/\/www.niap-ccevs.org\/MMO\/PP\/394.R\/pp_app_v1.2_table-reqs.htm\" rel=\"nofollow noopener noreferrer\">\u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0443 \u041d\u0430\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u0430\u0440\u0442\u043d\u0451\u0440\u0441\u0442\u0432\u0430 \u043f\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438<\/a> \u0434\u043b\u044f Android.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0448\u0435 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 SAST \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u0443\u0441\u0442\u0440\u043e\u0439\u0441\u0442\u0432 \u0432\u0441\u0435 \u0435\u0449\u0451 \u0441\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u043c \u0438 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/#experimental-features\" rel=\"nofollow noopener noreferrer\">\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0438\u0447<\/a> \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e CI <code>SAST_EXPERIMENTAL_FEATURES<\/code>. \u041c\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u044d\u0442\u043e\u0433\u043e \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435 GitLab.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/gitlab.com\/gitlab-org\/security-products\/analyzers\/mobsf\/-\/blob\/master\/CHANGELOG.md#v250\" rel=\"nofollow noopener noreferrer\">\u0421\u043f\u0438\u0441\u043e\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 MobSF<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/security-products\/analyzers\/mobsf\/-\/merge_requests\/15\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"podderzhka-neskolkih-proektov-dlya-skanirovaniya-sast-dlya-net\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f SAST \u0434\u043b\u044f .NET<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/secure\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Secure<\/a><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/#security-scanning-tools\" rel=\"nofollow noopener noreferrer\">\u0421\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0432 GitLab<\/a> \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u044e\u0442 \u044f\u0437\u044b\u043a \u043a\u043e\u0434\u0430 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0442 \u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u044b. \u0414\u043b\u044f \u043c\u043e\u043d\u043e\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432, \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u0438 \u043c\u043d\u043e\u0433\u043e\u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u0445 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432 \u043c\u043e\u0436\u0435\u0442 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f GitLab. \u0420\u0430\u043d\u0435\u0435 \u043d\u0430\u0448 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 SAST \u0434\u043b\u044f .NET \u043c\u043e\u0433 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0432 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u0445; \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043d\u0430\u0448 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 SAST \u0434\u043b\u044f .NET \u0441\u043c\u043e\u0436\u0435\u0442 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/#supported-languages-and-frameworks\" rel=\"nofollow noopener noreferrer\">\u0438\u043d\u0442\u0435\u043b\u043b\u0435\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0440\u0430\u0437\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0440\u0435\u0448\u0435\u043d\u0438\u0439 (.sln) \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 .NET<\/a> \u0438 \u0441\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043e\u0442\u0447\u0451\u0442\u044b \u043f\u043e \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u043c, \u043d\u0430\u0439\u0434\u0435\u043d\u043d\u044b\u043c \u0432 \u043d\u0438\u0445. \u042d\u0442\u043e \u0441\u0434\u0435\u043b\u0430\u0435\u0442 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 SAST \u043f\u0440\u043e\u0449\u0435 \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u0435\u0435 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0441 \u043c\u043d\u043e\u0433\u043e\u043f\u0440\u043e\u0435\u043a\u0442\u043d\u044b\u043c\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f\u043c\u0438 .NET.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/#supported-languages-and-frameworks\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u044f\u0437\u044b\u043a\u0430\u043c \u0438 \u0444\u0440\u0435\u0439\u043c\u0432\u043e\u0440\u043a\u0430\u043c SAST<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/233033\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"stranica-nastroek-bezopasnosti-dlya-vseh-polzovateley\">\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM; self-managed: FREE, PREMIUM) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/secure\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Secure<\/a><\/p>\n<p>  <\/p>\n<p>\u0422\u0430\u043a \u043a\u0430\u043a SAST \u0438 \u043f\u043e\u0438\u0441\u043a \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439 \u0441\u0442\u0430\u043b\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/518382\/#analizatory-bezopasnosti-sast-dostupny-dlya-vseh\">\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b \u0432\u0441\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c GitLab<\/a>, \u043c\u044b \u0445\u043e\u0442\u0435\u043b\u0438 \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0448\u0438\u0445 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u0423 \u043d\u0430\u0441 \u0443\u0436\u0435 \u0431\u044b\u043b \u0433\u0430\u0439\u0434-\u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 Ultimate, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0443\u043f\u0440\u043e\u0449\u0451\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0434\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\u0441\u0435\u0445 \u043f\u043b\u0430\u043d\u043e\u0432. \u0421 \u0435\u0451 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u0431\u0443\u0434\u0435\u0442 \u043f\u0440\u043e\u0449\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0443\u0436\u043d\u0443\u044e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f. \u0412 \u044d\u0442\u043e\u043c \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043a\u043d\u043e\u043f\u043a\u0443 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430 \u0434\u043b\u044f SAST; \u0432 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0440\u0435\u043b\u0438\u0437\u0430\u0445 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043a\u043d\u043e\u043f\u043a\u0438 \u0434\u043b\u044f \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u0432\u0438\u0434\u043e\u0432 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/636\/59f\/125\/63659f125a21d523c157ab36ae583a35.png\" alt=\"Security Configuration page for all users\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/configuration\/\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/4787\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043f\u0438\u043a<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"specialnyy-url-dlya-vkladok-na-paneli-analitiki-cicd\">\u0421\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0439 URL \u0434\u043b\u044f \u0432\u043a\u043b\u0430\u0434\u043e\u043a \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 CI\/CD<\/h3>\n<p>  <\/p>\n<p>(SaaS: ULTIMATE; self-managed: ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/release\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Release<\/a><\/p>\n<p>  <\/p>\n<p>\u0412 \u0440\u0435\u043b\u0438\u0437\u0435 13.8 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/analytics\/ci_cd_analytics.html#deployment-frequency-charts\" rel=\"nofollow noopener noreferrer\">\u0433\u0440\u0430\u0444\u0438\u043a\u043e\u0432 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0439<\/a> \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 CI\/CD. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 URL \u0434\u043b\u044f \u0432\u043a\u043b\u0430\u0434\u043e\u043a, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043f\u0440\u044f\u043c\u0443\u044e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u043b\u044e\u0431\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0438 \u043b\u0435\u0433\u043a\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u044d\u0442\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0432 \u0437\u0430\u043a\u043b\u0430\u0434\u043a\u0438 \u0438\u043b\u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u043a\u043e\u043b\u043b\u0435\u0433\u0430\u043c \u0434\u043b\u044f \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/analytics\/ci_cd_analytics.html#deployment-frequency-charts\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u0430\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0439<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/276000\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"podderzhka-private-token-dlya-sozdaniya-relizov-cherez-release-cli\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 PRIVATE-TOKEN \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u043b\u0438\u0437\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 Release-CLI<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/release\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Release<\/a><\/p>\n<p>  <\/p>\n<p>\u0412 13.9 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c release-cli \u0441 <code>PRIVATE-TOKEN<\/code>, \u043a\u0430\u043a \u043e\u043f\u0438\u0441\u0430\u043d\u043e \u0432 <a href=\"https:\/\/docs.gitlab.com\/ee\/api\/releases\/#create-a-release\" rel=\"nofollow noopener noreferrer\">\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0440\u0435\u043b\u0438\u0437\u0430 \u0447\u0435\u0440\u0435\u0437 API<\/a>. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0441\u043e\u0437\u0434\u0430\u044e\u0449\u0435\u0433\u043e \u0440\u0435\u043b\u0438\u0437, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u0447\u0435\u0440\u0435\u0437 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e <code>PRIVATE-TOKEN<\/code> \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0438\u043b\u0438 <code>PRIVATE-TOKEN<\/code> \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f-\u0431\u043e\u0442\u0430.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/api\/releases\/#create-a-release\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044e \u0440\u0435\u043b\u0438\u0437\u0430 \u0447\u0435\u0440\u0435\u0437 API<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/release-cli\/-\/issues\/11\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"vault-jwt-podderzhivaet-okruzheniya-gitlab\">Vault JWT \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f GitLab.<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/configure\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Configure<\/a><\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 HashiCorp Vault \u0432 GitLab \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f \u0442\u043e\u043a\u0435\u043d Vault JWT (\u0432\u0435\u0431-\u0442\u043e\u043a\u0435\u043d JSON). \u0421 \u0441\u0430\u043c\u043e\u0433\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u0432 JWT. \u042d\u0442\u043e\u0442 \u0440\u0435\u043b\u0438\u0437 \u0434\u0430\u0451\u0442 \u0432\u0430\u043c \u043d\u043e\u0432\u0443\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043b\u044f \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0443\u0447\u0451\u0442\u043d\u044b\u043c \u0434\u0430\u043d\u043d\u044b\u043c: \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0435, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0430\u0446\u0435\u043b\u0435\u043d\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u0435.<\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0442\u043e\u043a\u0435\u043d\u0430 Vault JWT \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044e. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0434\u043b\u044f <code>environment<\/code> \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u043c, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0438\u043c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440, \u043c\u044b \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0432\u0430\u043c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0441 \u0443\u0436\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f\u043c\u0438 <code>ref_type<\/code> \u0434\u043b\u044f \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/examples\/authenticating-with-hashicorp-vault\/index.html\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c HashiCorp Vault<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/294440\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"razvyortyvaniya-gitlab-na-kubernetes-teper-podderzhivayut-upravlenie-dostupom-k-gitlab-pages\">\u0420\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f GitLab \u043d\u0430 Kubernetes \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a GitLab Pages<\/h3>\n<p>  <\/p>\n<p>(self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/enablement\/\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c<\/a><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/habr.com\/ru\/post\/541688\/#gitlab-pages-v-kubernetes-razvyortyvaniyah-gitlab\">\u0412 GitLab 13.8<\/a> \u0431\u044b\u043b\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 GitLab Pages \u0434\u043b\u044f \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0439 GitLab \u043d\u0430 Kubernetes, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u043b\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u0438 \u043b\u0435\u0433\u043a\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u044b.<\/p>\n<p>  <\/p>\n<p>\u0421 \u0440\u0435\u043b\u0438\u0437\u043e\u043c GitLab 13.9 \u0434\u043b\u044f Kubernetes-\u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0439 \u0442\u0430\u043a\u0436\u0435 \u0441\u0442\u0430\u043b\u043e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/pages\/pages_access_control.html\" rel=\"nofollow noopener noreferrer\">\u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u043c \u043a Pages<\/a>, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c \u0441\u0430\u0439\u0442\u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. \u0422\u0430\u043a\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c, \u0442\u0435\u043f\u0435\u0440\u044c \u0432 <a href=\"https:\/\/docs.gitlab.com\/charts\/\" rel=\"nofollow noopener noreferrer\">GitLab Helm chart<\/a> \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u0444\u0438\u0447\u0438 GitLab Pages.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/charts\/charts\/gitlab\/gitlab-pages\/index.html\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e GitLab Pages<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/charts\/gitlab\/-\/issues\/2443\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"umensheno-potreblenie-pamyati-puma-na-nebolshih-instansah\">\u0423\u043c\u0435\u043d\u044c\u0448\u0435\u043d\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 Puma \u043d\u0430 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430\u0445<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/handbook\/engineering\/development\/enablement\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c<\/a><\/p>\n<p>  <\/p>\n<p>\u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e Puma, \u0432\u0435\u0431-\u0441\u0435\u0440\u0432\u0435\u0440, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0439 GitLab, \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0435\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u042d\u0442\u043e \u0432\u0430\u0436\u043d\u043e \u0434\u043b\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f GitLab, \u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0443\u0432\u0435\u043b\u0438\u0447\u0435\u043d\u0438\u044e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<p>  <\/p>\n<p>\u041c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u043c \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430\u043c \u0441 \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u043c\u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c\u0438 \u043c\u043e\u0433\u0443\u0442 \u043d\u0435 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432. \u0414\u043b\u044f \u0442\u0430\u043a\u0438\u0445 \u0441\u043b\u0443\u0447\u0430\u0435\u0432 GitLab \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0437\u0430\u043f\u0443\u0441\u043a Puma \u0432 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435, \u0447\u0442\u043e \u0441\u043d\u0438\u0436\u0430\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0438 \u043f\u043e\u043a\u043e\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043d\u0430 250 \u041c\u0411.<\/p>\n<p>  <\/p>\n<p>\u041e\u0437\u043d\u0430\u043a\u043e\u043c\u044c\u0442\u0435\u0441\u044c \u0441\u043e <a href=\"https:\/\/docs.gitlab.com\/omnibus\/settings\/puma.html#running-in-memory-constrained-environments\" rel=\"nofollow noopener noreferrer\">\u0441\u043f\u0438\u0441\u043a\u043e\u043c \u0442\u0435\u043a\u0443\u0449\u0438\u0445 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u0439<\/a> \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 Puma \u0432 \u043e\u0434\u0438\u043d\u043e\u0447\u043d\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/omnibus\/settings\/puma.html#running-in-memory-constrained-environments\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0443 Puma \u0432 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u0445 \u043f\u043e \u043f\u0430\u043c\u044f\u0442\u0438 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\u0445<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/5303\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043f\u0438\u043a<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"gruppovye-veb-huki-dlya-podgrupp\">\u0413\u0440\u0443\u043f\u043f\u043e\u0432\u044b\u0435 \u0432\u0435\u0431-\u0445\u0443\u043a\u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f<\/h3>\n<p>  <\/p>\n<p>(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/manage\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Manage<\/a><\/p>\n<p>  <\/p>\n<p>GitLab \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u043b \u0432\u0430\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u0430\u043c\u0438 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0435\u0431-\u0445\u0443\u043a\u0430 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b. \u042d\u0442\u043e\u0442 \u0432\u0435\u0431-\u0445\u0443\u043a \u0441\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0435\u0442 \u043f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0438\u043b\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u044b. \u0422\u0435\u043f\u0435\u0440\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044e \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0431\u0435\u0437 \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0437\u043e\u0432\u043e\u0432 API, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u043b\u043e \u043d\u0435\u043d\u0443\u0436\u043d\u0443\u044e \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043d\u0430 \u0432\u0430\u0448 \u0438\u043d\u0441\u0442\u0430\u043d\u0441 GitLab.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/integrations\/webhooks.html#subgroup-events\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0432\u0435\u0431-\u0445\u0443\u043a\u0430\u043c \u0438 \u0441\u043e\u0431\u044b\u0442\u0438\u044f\u043c \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/260419\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"uluchshennyy-polzovatelskiy-interfeys-dlya-spiska-uchastnikov-proekta\">\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/manage\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Manage<\/a><\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0448 \u0441\u043f\u0438\u0441\u043e\u043a \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0431\u044b\u043b \u043f\u0435\u0440\u0435\u0440\u0430\u0431\u043e\u0442\u0430\u043d, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043c\u043e\u0447\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0431\u044b\u0441\u0442\u0440\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0435 \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u043e\u0432 \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0433\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438. \u041d\u043e\u0432\u044b\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u0431\u043e\u043b\u0435\u0435 \u043e\u043f\u0438\u0441\u0430\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u0442\u0435\u0440\u043c\u0438\u043d\u043e\u043b\u043e\u0433\u0438\u044e, \u043d\u043e\u0432\u0443\u044e \u0440\u0430\u0437\u043c\u0435\u0442\u043a\u0443, \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u0442\u043e\u043b\u0431\u0446\u043e\u0432, \u0432\u0441\u043f\u043b\u044b\u0432\u0430\u044e\u0449\u0438\u0435 \u043f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0438 \u0434\u043b\u044f \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0434\u0430\u043d\u043d\u044b\u0445 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435!<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/806\/5f7\/333\/8065f7333be767967c18dd7b2110a1b4.png\" alt=\"Improved user experience for the projects member list\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/members\/\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/4901\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043f\u0438\u043a<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"novaya-metrika-merzh-rekvesta-srednee-vremya-merzha\">\u041d\u043e\u0432\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430: \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u0435\u0440\u0436\u0430<\/h3>\n<p>  <\/p>\n<p>(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/manage\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Manage<\/a><\/p>\n<p>  <\/p>\n<p>\u041d\u043e\u0432\u0430\u044f \u043c\u0435\u0442\u0440\u0438\u043a\u0430, \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u0435\u0440\u0436\u0430 (MTTM), \u0441\u0442\u0430\u043b\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0432 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0435 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430. MTTM \u2014 \u044d\u0442\u043e \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0441 \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430 \u0434\u043e \u043c\u043e\u043c\u0435\u043d\u0442\u0430 \u0435\u0433\u043e \u043c\u0435\u0440\u0436\u0430. \u0412\u044b\u0431\u0438\u0440\u0430\u044f \u0440\u0430\u0437\u043d\u044b\u0435 \u0434\u0430\u0442\u044b \u0432 \u0441\u0435\u043b\u0435\u043a\u0442\u043e\u0440\u0435 \u0434\u0438\u0430\u043f\u0430\u0437\u043e\u043d\u0430 \u0434\u0430\u0442, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a \u043c\u0435\u043d\u044f\u0435\u0442\u0441\u044f \u0432\u0440\u0435\u043c\u044f \u043c\u0435\u0440\u0436\u0430 \u0432\u0430\u0448\u0438\u0445 \u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432, \u0438 \u043f\u043e\u043d\u044f\u0442\u044c, \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435\u0441\u044c \u043b\u0438 \u0432\u044b \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u043f\u0440\u0438 \u0440\u0435\u0432\u044c\u044e \u0438 \u043c\u0435\u0440\u0436\u0435 \u043a\u043e\u0434\u0430.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/14f\/516\/02d\/14f51602deca65ed2629a39aff0c33ff.png\" alt=\"New merge request metric: mean time to merge\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/analytics\/merge_request_analytics.html#mean-time-to-merge\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0435 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432: \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u0435\u0440\u0436\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/229389\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"massovoe-redaktirovanie-iteraciy-tiketov-v-gruppah-i-proektah\">\u041c\u0430\u0441\u0441\u043e\u0432\u043e\u0435 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0439 \u0442\u0438\u043a\u0435\u0442\u043e\u0432 \u0432 \u0433\u0440\u0443\u043f\u043f\u0430\u0445 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445<\/h3>\n<p>  <\/p>\n<p>(SaaS: PREMIUM, ULTIMATE; FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/plan\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Plan<\/a><\/p>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0442\u0438\u043a\u0435\u0442\u043e\u0432 \u043f\u043e \u043e\u0434\u043d\u043e\u0439, \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0442\u044c \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0442\u0438\u043a\u0435\u0442\u043e\u0432 \u0433\u0440\u0443\u043f\u043f\u044b \u0438\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0432\u044b\u0431\u0440\u0430\u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0441\u0440\u0430\u0437\u0443.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/group\/bulk_editing\/index.html#bulk-edit-issues-at-the-group-level\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043c\u0430\u0441\u0441\u043e\u0432\u043e\u043c\u0443 \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0442\u0438\u043a\u0435\u0442\u043e\u0432 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0433\u0440\u0443\u043f\u043f\u044b<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/196806\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"filtruyte-dorozhnye-karty-po-maylstounam\">\u0424\u0438\u043b\u044c\u0442\u0440\u0443\u0439\u0442\u0435 \u0434\u043e\u0440\u043e\u0436\u043d\u044b\u0435 \u043a\u0430\u0440\u0442\u044b \u043f\u043e \u043c\u0430\u0439\u043b\u0441\u0442\u043e\u0443\u043d\u0430\u043c<\/h3>\n<p>  <\/p>\n<p>(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/plan\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Plan<\/a><\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0438 \u0432\u0430\u0448\u0438\u0445 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u043f\u043b\u0430\u043d\u043e\u0432 \u0438\u043b\u0438 \u043e\u0442\u0447\u0451\u0442\u043e\u0432 \u043e \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u043c\u0435\u0442\u044c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043d\u0442 \u0432\u0430\u0448\u0435\u0439 \u0434\u043e\u0440\u043e\u0436\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u044b. \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u0442\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0440\u043e\u0436\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u044b \u0435\u0449\u0451 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u0435\u0435, \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0432 \u0432\u0438\u0434\u0438\u043c\u044b\u0435 \u044d\u043f\u0438\u043a\u0438 \u043f\u043e \u043c\u0430\u0439\u043b\u0441\u0442\u043e\u0443\u043d\u0430\u043c.<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u0430 \u0444\u0438\u0447\u0430 \u0431\u044b\u043b\u0430 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0435\u043c\u043e\u0439 \u043d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 GitLab 13.7, \u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u043d\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0445.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c88\/160\/cf5\/c88160cf5fad1a98d5057ecbaaf9f5be.png\" alt=\"Filter roadmaps by milestones\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/group\/roadmap\/index.html#sort-and-filter-the-roadmap\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0435 \u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0434\u043e\u0440\u043e\u0436\u043d\u043e\u0439 \u043a\u0430\u0440\u0442\u044b<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/218621\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"prinimayte-predlozhenie-s-nastraivaemym-opisaniem-kommita\">\u041f\u0440\u0438\u043d\u0438\u043c\u0430\u0439\u0442\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0441 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u0430<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/create\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Create<\/a><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/discussions\/#suggest-changes\" rel=\"nofollow noopener noreferrer\">\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/a> \u0432 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0435 \u0443\u0441\u043a\u043e\u0440\u044f\u0435\u0442 \u0438 \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0440\u0435\u0432\u044c\u044e \u043a\u043e\u0434\u0430, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0438\u0445 \u043e\u0434\u043d\u0438\u043c \u0449\u0435\u043b\u0447\u043a\u043e\u043c \u043c\u044b\u0448\u0438. \u041e\u0434\u043d\u0430\u043a\u043e \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0434\u043b\u044f \u043f\u0440\u0438\u043d\u044f\u0442\u044b\u0445 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0443 \u043d\u0430\u0441 \u0431\u044b\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u043b\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0430\u0434\u0435\u043a\u0432\u0430\u0442\u043d\u043e \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438 \u0432 \u043a\u043e\u043d\u0435\u0447\u043d\u043e\u043c \u0438\u0442\u043e\u0433\u0435 \u043d\u0435 \u0434\u0430\u0432\u0430\u043b\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0433\u0430\u0439\u0434\u043b\u0430\u0439\u043d\u044b \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0435 \u0430\u0432\u0442\u043e\u0440\u044b \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430 \u0447\u0430\u0441\u0442\u043e \u0431\u044b\u043b\u0438 \u0432\u044b\u043d\u0443\u0436\u0434\u0435\u043d\u044b \u0441\u043a\u0432\u043e\u0448\u0438\u0442\u044c \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430, \u043b\u0438\u0431\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0438\u043b\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0442\u044c\u0441\u044f \u0438 \u043f\u0435\u0440\u0435\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043a\u043e\u043c\u043c\u0438\u0442\u044b \u0441 \u043d\u043e\u0432\u044b\u043c\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c\u0438 \u043f\u043e\u0441\u043b\u0435 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u043f\u0440\u0438 \u043f\u0440\u0438\u043d\u044f\u0442\u0438\u0438 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0430\u0432\u0442\u043e\u0440\u0430\u043c \u0438 \u0441\u043e\u0430\u0432\u0442\u043e\u0440\u0430\u043c \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438 \u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u044f\u043c \u043f\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u044f\u043c \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432 \u0434\u043b\u044f \u0441\u0432\u043e\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \u0415\u0441\u043b\u0438 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u043d\u0435 \u0431\u044b\u043b\u043e \u0437\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u043e, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u043a\u043e\u043c\u043c\u0438\u0442\u0438\u0442\u0441\u044f \u0441 \u043e\u043f\u0438\u0441\u0430\u043d\u0438\u0435\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/122\/926\/80a\/12292680afc5cab66ac5823d443e7222.png\" alt=\"Apply a suggestion with a custom commit message\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/discussions\/#suggest-changes\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/25381\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"sozdanie-spiskov-izmeneniy-s-pomoschyu-gitlab-api\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GitLab API<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/create\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Create<\/a><\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u043d\u044c\u0448\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GitLab \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u043b\u043e\u0441\u044c \u0432\u0440\u0443\u0447\u043d\u0443\u044e. \u0420\u0435\u043b\u0438\u0437-\u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u043b\u0438 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430, \u0430 \u0437\u0430\u0442\u0435\u043c \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0438\u0445 \u0432 changelog-\u0444\u0430\u0439\u043b, \u0447\u0442\u043e \u043e\u0442\u043d\u0438\u043c\u0430\u043b\u043e \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438 \u043b\u0435\u0433\u043a\u043e \u043c\u043e\u0433\u043b\u043e \u0441\u043f\u0440\u043e\u0432\u043e\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438. \u0427\u0442\u043e\u0431\u044b \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0440\u043e\u0446\u0435\u0441\u0441, \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 API, \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u0443\u044e\u0449\u0438\u0439 \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043a\u043e\u043c\u043c\u0438\u0442\u043e\u0432. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u0438\u043d\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u0431 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0438 \u043f\u043e\u043b\u043d\u044b\u0439 \u043d\u0430\u0431\u043e\u0440 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/api\/repositories.html#generate-changelog-data\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-com\/gl-infra\/-\/epics\/351\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043f\u0438\u043a<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"diff-izmeneniy-v-merzh-rekvestah-s-head-vetki-po-umolchaniyu\">\u0414\u0438\u0444\u0444 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430\u0445 \u0441 HEAD \u0432\u0435\u0442\u043a\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/create\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Create<\/a><\/p>\n<p>  <\/p>\n<p>\u0414\u0438\u0444\u0444\u044b \u0432 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430\u0445 \u0434\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u043b\u0438\u0441\u044c \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u043c\u0430\u043d\u0434\u044b <code>git diff target...source<\/code>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u0435\u0442 <code>HEAD<\/code> \u0446\u0435\u043b\u0438 \u0441 \u0431\u0430\u0437\u043e\u0439 \u043c\u0435\u0440\u0436\u0430 <code>target<\/code> \u0438 <code>source<\/code>. \u042d\u0442\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0445\u043e\u0440\u043e\u0448\u043e, \u043f\u043e\u043a\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0438\u0437 \u0446\u0435\u043b\u0435\u0432\u043e\u0439 \u0432\u0435\u0442\u043a\u0438 \u043d\u0435 \u0441\u043c\u0435\u0440\u0436\u0435\u043d\u044b \u0441 \u0438\u0441\u0445\u043e\u0434\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u043e\u0439, \u0447\u0442\u043e \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043f\u043e\u043b\u043d\u0443\u044e \u043d\u0435\u0440\u0430\u0437\u0431\u0435\u0440\u0438\u0445\u0443 \u0432 \u0434\u0438\u0444\u0444\u0430\u0445.<\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435 \u0432\u043a\u043b\u0430\u0434\u043a\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0435, \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u0440\u0430\u0432\u043d\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u0441 <code>&lt;default branch&gt; (HEAD)<\/code>. \u042d\u0442\u043e \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0447\u043d\u044b\u0439 \u0438 \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0434\u0438\u0444\u0444 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432\u043e \u0432\u0440\u0435\u043c\u044f \u0440\u0435\u0432\u044c\u044e.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/merge_requests\/versions.html#head-comparison-mode-for-merge-requests\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u0435\u0436\u0438\u043c\u0430\u043c \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044f \u0434\u043b\u044f \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/854\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u044d\u043f\u0438\u043a<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"ispolzovanie-poleznoy-nagruzki-veb-huka-pri-zapuske-konveyera-po-triggeru\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0435\u0431-\u0445\u0443\u043a\u0430 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u043f\u043e \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0443<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/verify\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Verify<\/a><\/p>\n<p>  <\/p>\n<p>\u041f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0435\u0431-\u0445\u0443\u043a\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u0432\u0435\u0431-\u0445\u0443\u043a\u0430 \u043d\u0435 \u0431\u044b\u043b\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u0430 \u043d\u0438 \u0434\u043b\u044f \u043a\u0430\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0438\u0440\u0443\u044e\u0449\u0435\u043c \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0435. \u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0430 \u043d\u0435\u0441\u0451\u0442 \u0432\u0430\u0436\u043d\u0443\u044e \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043c\u043e\u0436\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u0430\u043a \u0434\u043e\u043b\u0436\u0435\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u0443\u044e \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u0443\u044e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0434\u043b\u044f \u0437\u0430\u0445\u0432\u0430\u0442\u0430 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0435\u0431-\u0445\u0443\u043a\u0430, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0435\u0451 \u0432 \u0441\u0432\u043e\u0438 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u044b, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u044b\u0435 \u043f\u043e \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0443.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/triggers\/README.html#using-webhook-payload-in-the-triggered-pipeline\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u043d\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0432\u0435\u0431-\u0445\u0443\u043a\u0430 \u0432 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u043c\u043e\u043c \u043f\u043e \u0442\u0440\u0438\u0433\u0433\u0435\u0440\u0443 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0435<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/31197\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"obrabotchik-zadaniy-gitlab-139\">\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439 GitLab 13.9<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/verify\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Verify<\/a><\/p>\n<p>  <\/p>\n<p>\u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043c\u044b \u0442\u0430\u043a\u0436\u0435 \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0432\u0435\u0440\u0441\u0438\u044e 13.9 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 GitLab 13.9! \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439 GitLab \u2014 \u044d\u0442\u043e \u043b\u0451\u0433\u043a\u0438\u0439, \u0445\u043e\u0440\u043e\u0448\u043e \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0430\u0433\u0435\u043d\u0442, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442 \u0432\u0430\u0448\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0441\u0431\u043e\u0440\u043a\u0438 \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043e\u0431\u0440\u0430\u0442\u043d\u043e \u0432 \u0432\u0430\u0448 \u0438\u043d\u0441\u0442\u0430\u043d\u0441 GitLab. \u041e\u043d \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 GitLab CI\/CD, \u0441\u043b\u0443\u0436\u0431\u043e\u0439 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0441 \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u0438\u0441\u0445\u043e\u0434\u043d\u044b\u043c \u043a\u043e\u0434\u043e\u043c, \u0432\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0432 \u0441\u043e\u0441\u0442\u0430\u0432 GitLab.<\/p>\n<p>  <\/p>\n<p>\u0427\u0442\u043e \u043d\u043e\u0432\u043e\u0433\u043e:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/issues\/4355\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Nvidia docker runtime \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c Kubernetes<\/a><\/li>\n<li><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/issues\/4907\" rel=\"nofollow noopener noreferrer\">\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0443\u0440\u043e\u0432\u043d\u044f \u0441\u0436\u0430\u0442\u0438\u044f ZIP-\u0444\u0430\u0439\u043b\u043e\u0432 \u0432 \u043a\u044d\u0448\u0435<\/a><\/li>\n<li><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/issues\/27429\" rel=\"nofollow noopener noreferrer\">\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u0430 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0430\/\u043a\u044d\u0448\u0430<\/a><\/li>\n<li><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/merge_requests\/2696\" rel=\"nofollow noopener noreferrer\">\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 PowerShell Core \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 7.1.1 \u0432\u043e \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u043c \u043e\u0431\u0440\u0430\u0437\u0435 \u043f\u043e\u0434 Windows<\/a><\/li>\n<li><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/issues\/4021\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 PowerShell Core \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0435 Docker \u043f\u043e\u0434 Linux<\/a><\/li>\n<li><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/issues\/13145\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 PowerShell Core \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0435 Kubernetes<\/a><\/li>\n<li><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/issues\/27302\" rel=\"nofollow noopener noreferrer\">\u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u043e\u043a\u0441\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439<\/a><\/li>\n<li><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/issues\/27393\" rel=\"nofollow noopener noreferrer\">\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0433\u043e \u0432\u0441\u043f\u043e\u043c\u043e\u0433\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u043e\u0431\u0440\u0430\u0437\u0430 \u0434\u043b\u044f \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0432 \u0438\u0441\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u0435 Kubernetes<\/a><\/li>\n<li><a href=\"https:\/\/gitlab.com\/gitlab-org\/gl-openshift\/gitlab-runner-operator\/-\/issues\/12\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0443 Gitlab \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0441\u0430\u043c\u043e\u043f\u043e\u0434\u043f\u0438\u0441\u0430\u043d\u043d\u043e\u0433\u043e \u0441\u0435\u0440\u0442\u0438\u0444\u0438\u043a\u0430\u0442\u0430 \u0441 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u043c \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u043d\u0430 OpenShift<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0435 \u0431\u0430\u0433\u0438:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/issues\/25394\" rel=\"nofollow noopener noreferrer\">\u0421\u043a\u0440\u0438\u043f\u0442 Gitlab CI \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u043b \u043a\u043e\u0434 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0435\u0439 \u043a\u043e\u043c\u0430\u043d\u0434\u044b<\/a><\/li>\n<li><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/issues\/4173\" rel=\"nofollow noopener noreferrer\">\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u00ab\u0442\u0430\u0439\u043c-\u0430\u0443\u0442 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b\u00bb \u0441\u043e \u0441\u043b\u0443\u0436\u0431\u043e\u0439 Windows<\/a><\/li>\n<li><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/issues\/16705\" rel=\"nofollow noopener noreferrer\">\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430 \u043c\u0430\u0441\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0441 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u043c\u0438\u0441\u044f \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c\u0438<\/a><\/li>\n<li><a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/-\/issues\/26898\" rel=\"nofollow noopener noreferrer\"><code>\u041d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0441\u0432\u043e\u0439\u0441\u0442\u0432\u043e OpenShift Operator-concurrent<\/code> \u0438\u0437 \u0444\u0430\u0439\u043b\u0430 config.toml<\/a><\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0421\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f \u0432 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab-runner\/blob\/13-9-stable\/CHANGELOG.md\" rel=\"nofollow noopener noreferrer\">CHANGELOG<\/a> \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 GitLab.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/runner\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0443 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 GitLab<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"ustanavlivayte-obrabotchik-zadaniy-gitlab-eschyo-prosche-s-pomoschyu-vstroennoy-spravki\">\u0423\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0439\u0442\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439 GitLab \u0435\u0449\u0451 \u043f\u0440\u043e\u0449\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u0441\u043f\u0440\u0430\u0432\u043a\u0438<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/verify\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Verify<\/a><\/p>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u043e\u0431\u0449\u0438\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u043d\u0430 GitLab.com, \u0434\u043b\u044f \u043d\u0430\u0447\u0430\u043b\u0430 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 GitLab CI \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u0437\u0430\u0434\u0430\u043d\u0438\u0439 GitLab \u0438 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430. \u0425\u043e\u0442\u044f \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0445\u043e\u0440\u043e\u0448\u043e \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d, \u043e\u0434\u043d\u0430 \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u0446\u0435\u043b\u0435\u0439 \u2014 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u043d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0441 GitLab CI. \u041f\u0435\u0440\u0432\u044b\u043c \u0448\u0430\u0433\u043e\u043c \u043d\u0430 \u044d\u0442\u043e\u043c \u043f\u0443\u0442\u0438 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u0440\u0435\u043b\u0438\u0437 \u043d\u043e\u0432\u043e\u0433\u043e \u043c\u0430\u0441\u0442\u0435\u0440\u0430 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 GitLab. \u0421 \u0435\u0433\u043e \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0446\u0435\u043b\u0435\u0432\u0443\u044e \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0443, \u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u043c\u0430\u043d\u0434\u044b \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438, \u043d\u0435 \u0432\u044b\u0445\u043e\u0434\u044f \u0438\u0437 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430 GitLab.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/d72\/a73\/49a\/d72a7349a9f711f6f24e6c1806580a26.png\" alt=\"Install GitLab Runner more easily with in-product help\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/runner\/install\/\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 GitLab<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/214587\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"razreshenie-ili-zapret-povtoryayuschihsya-zagruzok-v-maven\">\u0420\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 \u0437\u0430\u043f\u0440\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u044e\u0449\u0438\u0445\u0441\u044f \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a \u0432 Maven<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/package\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Package<\/a><\/p>\n<p>  <\/p>\n<p>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0435\u0441\u0442\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 GitLab \u0434\u043b\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 Java \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Maven \u0438\u043b\u0438 Gradle. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043e\u0434\u043d\u043e \u0438 \u0442\u043e \u0436\u0435 \u0438\u043c\u044f \u0438 \u0432\u0435\u0440\u0441\u0438\u044e \u043f\u0430\u043a\u0435\u0442\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437. \u0422\u0430\u043a\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u044b\u043b\u043e \u0432\u044b\u0431\u0440\u0430\u043d\u043e \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0445 \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0440\u0435\u0435\u0441\u0442\u0440\u043e\u0432.<\/p>\n<p>  <\/p>\n<p>\u041e\u0434\u043d\u0430\u043a\u043e \u043c\u043d\u043e\u0433\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043e\u0442\u043c\u0435\u0447\u0430\u043b\u0438, \u0447\u0442\u043e \u0445\u043e\u0442\u0435\u043b\u0438 \u0431\u044b \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0434\u0443\u0431\u043b\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u043a, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043a\u043e\u0433\u0434\u0430 \u0440\u0435\u0447\u044c \u0438\u0434\u0451\u0442 \u043e \u0440\u0435\u043b\u0438\u0437\u0430\u0445. \u041c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043d\u043e\u0432\u0443\u044e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0443\u0440\u043e\u0432\u043d\u044f \u0433\u0440\u0443\u043f\u043f\u044b, \u0442\u0430\u043a \u0447\u0442\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c, \u0445\u043e\u0442\u0438\u0442\u0435 \u043b\u0438 \u0432\u044b \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0438\u043b\u0438 \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u0434\u0443\u0431\u043b\u0438\u0440\u0443\u044e\u0449\u0443\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u0432 Maven \u0438\u043b\u0438 Gradle. \u041a\u0430\u043a \u0443\u0436\u0435 \u0443\u043f\u043e\u043c\u0438\u043d\u0430\u043b\u043e\u0441\u044c, \u0434\u043b\u044f \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u044f \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u0447\u043d\u044b\u0445 \u0440\u0435\u0435\u0441\u0442\u0440\u043e\u0432 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0434\u0443\u0431\u043b\u0438\u043a\u0430\u0442\u044b \u0431\u0443\u0434\u0443\u0442 \u0440\u0430\u0437\u0440\u0435\u0448\u0435\u043d\u044b.<\/p>\n<p>  <\/p>\n<p>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e <a href=\"https:\/\/docs.gitlab.com\/ee\/api\/graphql\/reference\/index.html#packagesettings\" rel=\"nofollow noopener noreferrer\">API GitLab<\/a> \u0438\u043b\u0438 \u0438\u0437 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043f\u0435\u0440\u0435\u0439\u0434\u044f \u0432 <strong>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 &gt; \u041f\u0430\u043a\u0435\u0442\u044b \u0438 \u0420\u0435\u0435\u0441\u0442\u0440\u044b<\/strong> (<strong>Settings &gt; Packages &amp; Registries<\/strong>). \u0412 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u043c\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u044d\u0442\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 \u0434\u043e \u043a\u0430\u0436\u0434\u043e\u0433\u043e \u0444\u043e\u0440\u043c\u0430\u0442\u0430 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0435\u0433\u043e \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441. \u0421\u043b\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/5070\" rel=\"nofollow noopener noreferrer\">\u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u044d\u043f\u0438\u043a\u043e\u043c<\/a> \u0438 \u0432\u043d\u0435\u0441\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 \u0432\u043a\u043b\u0430\u0434!<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/api\/graphql\/reference\/index.html#packagesettings\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/276882\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"skanirovanie-zavisimostey-teper-podderzhivaet-vtoruyu-versiyu-faylov-blokirovki-npm\">\u0421\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u0442\u043e\u0440\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e \u0444\u0430\u0439\u043b\u043e\u0432 \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 npm<\/h3>\n<p>  <\/p>\n<p>(SaaS: ULTIMATE; self-managed: ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/secure\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Secure<\/a><\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438 \u043d\u0430 Node.js, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u043c\u0438 \u0444\u0430\u0439\u043b \u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0438 \u0432\u0435\u0440\u0441\u0438\u0438 2 \u0434\u043b\u044f npm 7. \u0420\u0430\u043d\u0435\u0435 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0432\u044b\u0434\u0430\u0432\u0430\u043b\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0443\u044e \u043e\u0448\u0438\u0431\u043a\u0443: <code>[FATA] [Gemnasium] [2020-10-29T19:02:20Z] Wrong file format version<\/code>.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/dependency_scanning\/#supported-languages-and-package-managers\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u044f\u0437\u044b\u043a\u0430\u043c \u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c \u043f\u0440\u0438 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/300481\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"rasshirennaya-podderzhka-ruby-dlya-sast-skanirovaniy\">\u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0430\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Ruby \u0434\u043b\u044f SAST-\u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/secure\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Secure<\/a><\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0445\u043e\u0442\u0438\u043c \u043f\u043e\u043c\u043e\u0447\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u043b\u0443\u0447\u0448\u0438\u0439 \u043a\u043e\u0434 \u0438 \u043c\u0435\u043d\u044c\u0448\u0435 \u0431\u0435\u0441\u043f\u043e\u043a\u043e\u0438\u0442\u044c\u0441\u044f \u043e \u0440\u0430\u0441\u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0451\u043d\u043d\u044b\u0445 \u043e\u0448\u0438\u0431\u043a\u0430\u0445 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a> (SAST) \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044f \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u043b\u0435\u0433\u043a\u043e \u0432\u044b\u044f\u0432\u043b\u044f\u0442\u044c \u0442\u0438\u043f\u0438\u0447\u043d\u044b\u0435 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043f\u043e \u043c\u0435\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u0438 \u043f\u0440\u043e\u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0445 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0430\u0442\u044c. \u041c\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 \u043d\u0430\u0448 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u043d\u044b\u0439 \u0434\u043b\u044f Ruby on Rails <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/#supported-languages-and-frameworks\" rel=\"nofollow noopener noreferrer\">\u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 SAST<\/a> (Brakeman) \u0434\u043e <a href=\"https:\/\/brakemanscanner.org\/blog\/2021\/01\/26\/brakeman-5-dot-0-dot-0-released\" rel=\"nofollow noopener noreferrer\">\u043d\u043e\u0432\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438<\/a> (v5), \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u0444\u0430\u0439\u043b\u043e\u0432 Ruby, \u0430 \u043d\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 Rails. \u042d\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 Ruby \u0438 \u0432\u0432\u043e\u0434\u0438\u0442 \u043d\u043e\u0432\u044b\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u043e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u0438\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439. \u0415\u0441\u043b\u0438 \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044c \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/blob\/master\/lib\/gitlab\/ci\/templates\/Security\/SAST.gitlab-ci.yml\" rel=\"nofollow noopener noreferrer\"><code>\u0444\u0430\u0439\u043b SAST.gitlab-ci.yml<\/code><\/a> \u0438\u043b\u0438 \u0432\u044b <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/#overriding-sast-jobs\" rel=\"nofollow noopener noreferrer\">\u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u043b\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u0435 brakeman \u0432 GitLab SAST<\/a>, \u0442\u043e \u0432\u0430\u043c \u043c\u043e\u0436\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\u0441\u044f <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/blob\/master\/lib\/gitlab\/ci\/templates\/Security\/SAST.gitlab-ci.yml#L55\" rel=\"nofollow noopener noreferrer\">\u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0444\u0430\u0439\u043b CI<\/a>, \u0447\u0442\u043e\u0431\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u043e \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/e6e\/1af\/4c0\/e6e1af4c09fb0729e7e341e26d7bacc7.png\" alt=\"Expanded support for Ruby in SAST scans\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/#supported-languages-and-frameworks\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u044f\u0437\u044b\u043a\u0430\u043c \u0438 \u043f\u0430\u043a\u0435\u0442\u0430\u043c \u043f\u0440\u0438 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 SAST<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/300678\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"skanirovanie-licenziy-teper-nachinaetsya-v-predelah-sootvetstvuyuschego-etapa\">\u0421\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439 \u0442\u0435\u043f\u0435\u0440\u044c \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0440\u0435\u0434\u0435\u043b\u0430\u0445 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0435\u0433\u043e \u044d\u0442\u0430\u043f\u0430<\/h3>\n<p>  <\/p>\n<p>(SaaS: ULTIMATE; self-managed: ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/secure\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Secure<\/a><\/p>\n<p>  <\/p>\n<p>\u0420\u0430\u043d\u0435\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430. \u0422\u0430\u043a\u043e\u0435 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u043d\u0435\u043e\u0436\u0438\u0434\u0430\u043d\u043d\u044b\u043c \u0438 \u043d\u0435\u0441\u043e\u0432\u043c\u0435\u0441\u0442\u0438\u043c\u044b\u043c \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u043c\u0438 GitLab Secure. \u0422\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0431\u044b\u043b\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u043e, \u0442\u0430\u043a \u0447\u0442\u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u044d\u0442\u0430\u043f\u0430, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u043e\u043d\u043e \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u0441\u044f, \u0430 \u043d\u0435 \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430. \u0415\u0441\u043b\u0438 \u0432\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u043b\u0438 \u0441\u0432\u043e\u0439 \u0444\u0430\u0439\u043b <code>.gitlab-ci.yml<\/code> \u0438 \u0445\u043e\u0442\u0438\u0442\u0435, \u0447\u0442\u043e\u0431\u044b \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0439 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u043b\u043e\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 \u0435\u0433\u043e \u044d\u0442\u0430\u043f\u0430, \u0443\u0434\u0430\u043b\u0438\u0442\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <code>needs: []<\/code>. \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0448\u0430\u0431\u043b\u043e\u043d \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u0438 \u0445\u043e\u0442\u0438\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u0435, \u0434\u043e\u0431\u0430\u0432\u044c\u0442\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440 <code>needs: []<\/code>.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/yaml\/#needs\" rel=\"nofollow noopener noreferrer\"><code>\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0443 needs:<\/code> \u0432 YAML<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/287697\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"podderzhka-sast-dlya-net-5\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 SAST \u0434\u043b\u044f .NET 5<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/secure\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Secure<\/a><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.microsoft.com\/en-us\/dotnet\/core\/dotnet-five\" rel=\"nofollow noopener noreferrer\">\u0420\u0435\u043b\u0438\u0437 .NET 5.0<\/a> \u043e\u0442 Microsoft \u2014 \u044d\u0442\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u043a\u0440\u0443\u043f\u043d\u044b\u0439 \u0440\u0435\u043b\u0438\u0437 .NET Core, \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0449\u0438\u0439 \u0431\u043e\u043b\u044c\u0448\u0435 \u0442\u0438\u043f\u043e\u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c, \u0447\u0435\u043c .NET Core \u0438\u043b\u0438 .NET Framework. \u041c\u044b \u043e\u0431\u043d\u043e\u0432\u0438\u043b\u0438 \u043d\u0430\u0448 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 SAST \u0434\u043b\u044f .NET, <a href=\"https:\/\/security-code-scan.github.io\/\" rel=\"nofollow noopener noreferrer\">Security Code Scan<\/a>, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u043d\u043e\u0432\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f [\u043d\u0430\u0448\u0438\u043c \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435\u043c \u044f\u0437\u044b\u043a\u0430 \u0434\u043b\u044f SAST](https: \/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/#supported-languages-and-frameworks), \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 GitLab SAST \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u043e\u043f\u043e\u0437\u043d\u0430\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442\u044b .NET 5. \u042d\u0442\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0431\u044b\u043b\u043e \u0447\u0430\u0441\u0442\u044c\u044e \u0432\u043a\u043b\u0430\u0434\u0430 \u043e\u0442 <a href=\"https:\/\/gitlab.com\/shaun.burns\" rel=\"nofollow noopener noreferrer\">@shaun.burns<\/a> \u0438\u0437 \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/analyzers.html#analyzers-data\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 SAST<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/293849\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"filtr-aktivnosti-v-otchyote-ob-uyazvimostyah\">\u0424\u0438\u043b\u044c\u0442\u0440 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438 \u0432 \u043e\u0442\u0447\u0451\u0442\u0435 \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445<\/h3>\n<p>  <\/p>\n<p>(SaaS: ULTIMATE; self-managed: ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/secure\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Secure<\/a><\/p>\n<p>  <\/p>\n<p>\u041e\u0442\u0447\u0451\u0442\u044b \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 \u0447\u0430\u0441\u0442\u043e \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u0441\u043f\u043e\u0441\u043e\u0431\u043e\u043c \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0438 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043c\u0438. \u0422\u0435\u043a\u0443\u0449\u0438\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0431\u044b\u0441\u0442\u0440\u043e \u0441\u0444\u043e\u043a\u0443\u0441\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u043d\u0430 \u043f\u043e\u0434\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0434\u043b\u044f \u0431\u043e\u043b\u0435\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0440\u0430\u0431\u043e\u0447\u0438\u0445 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432. \u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c \u043b\u044e\u0431\u044b\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u044b\u043c\u0438 \u0441\u0432\u044f\u0437\u0430\u043d\u044b \u0442\u0438\u043a\u0435\u0442\u044b \u0438\u043b\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0435, \u043a\u0430\u043a \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438, \u0443\u0436\u0435 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u044b. \u0412 \u0441\u0442\u043e\u043b\u0431\u0446\u0435 \u00ab\u0410\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c\u00bb (\u201cActivity\u201d) \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0433\u043e\u0442\u043e\u0432\u044b \u043a \u0437\u0430\u043a\u0440\u044b\u0442\u0438\u044e, \u043a\u0430\u043a\u0438\u0435 \u043d\u0430\u0445\u043e\u0434\u044f\u0442\u0441\u044f \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435, \u0430 \u043a\u0430\u043a\u0438\u0435 \u043c\u043e\u0433\u0443\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f. \u041e\u0434\u043d\u0430\u043a\u043e \u044d\u0442\u043e\u0442 \u0441\u0442\u043e\u043b\u0431\u0435\u0446 \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u043b\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c!<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u0435\u0449\u0451 \u0431\u043e\u043b\u044c\u0448\u0438\u0439 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u0434 \u043e\u0442\u0447\u0451\u0442\u043e\u043c \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438. \u042d\u0442\u043e\u0442 \u043d\u043e\u0432\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0432 \u043e\u0442\u0447\u0451\u0442\u0430\u0445 \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0433\u0440\u0443\u043f\u043f\u044b \u0438 \u0446\u0435\u043d\u0442\u0440\u0430 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0435\u0449\u0451 \u043d\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0441 \u0442\u0438\u043a\u0435\u0442\u0430\u043c\u0438, \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0435 \u0431\u0435\u0437 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0442\u0438\u043a\u0435\u0442\u043e\u0432, \u0437\u0430\u043a\u0440\u044b\u0442\u044b\u0435 \u0441 \u0442\u0438\u043a\u0435\u0442\u0430\u043c\u0438 \u0438 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0438 \u0431\u0435\u0437 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438. \u0414\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u0444\u0438\u043b\u044c\u0442\u0440\u0430 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u0441\u043e\u0431\u043e\u0439 \u0432\u0437\u0430\u0438\u043c\u043e\u0438\u0441\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0435 \u043d\u0430\u0431\u043e\u0440\u044b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0438\u0435 \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0435 \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043b\u044e\u0431\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0438.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/e18\/512\/e5d\/e18512e5da25047e9dbbe16dbd92f7b0.png\" alt=\"Vulnerability Report Activity filter\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/vulnerability_report\/\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0435 \u043e\u0442\u0447\u0451\u0442\u0430 \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/259255\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"goryachie-klavishi-dlya-pereklyucheniya-mezhdu-gitlab-i-gitlab-next\">\u0413\u043e\u0440\u044f\u0447\u0438\u0435 \u043a\u043b\u0430\u0432\u0438\u0448\u0438 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u043c\u0435\u0436\u0434\u0443 GitLab \u0438 GitLab Next<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/release\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Release<\/a><\/p>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0431\u044b\u0441\u0442\u0440\u043e\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 <a href=\"https:\/\/gitlab.com\/\" rel=\"nofollow noopener noreferrer\">GitLab<\/a> \u0438 <a href=\"https:\/\/next.gitlab.com\/\" rel=\"nofollow noopener noreferrer\">GitLab Next<\/a>. \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043a\u043b\u0430\u0432\u0438\u0448\u0438 <code>g<\/code> \u0438 <code>x<\/code>, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0435 \u0432 \u043b\u044e\u0431\u043e\u0439 \u043e\u0431\u043b\u0430\u0441\u0442\u0438 GitLab, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043b\u0435\u0433\u043a\u043e \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0436\u0434\u0443 GitLab \u0438 GitLab Next. \u041e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e <a href=\"https:\/\/gitlab.com\/yo\" rel=\"nofollow noopener noreferrer\">Yogi<\/a> \u0437\u0430 \u044d\u0442\u043e\u0442 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0432\u043a\u043b\u0430\u0434!<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/shortcuts.html\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0433\u043e\u0440\u044f\u0447\u0438\u043c \u043a\u043b\u0430\u0432\u0438\u0448\u0430\u043c<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/298922\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"podderzhka-nconfigmap-dlya-servera-agentov-kubernetes\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 nConfigMap \u0434\u043b\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 Kubernetes<\/h3>\n<p>  <\/p>\n<p>(SaaS: PREMIUM, ULTIMATE; self-managed: PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/configure\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Configure<\/a><\/p>\n<p>  <\/p>\n<p>\u0414\u043e \u0441\u0438\u0445 \u043f\u043e\u0440 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 Kubernetes (Kubernetes Agent Server, KAS) \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0432\u043e\u0438\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a. \u0422\u0430\u043a\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043d\u0435\u043f\u043e\u0434\u0445\u043e\u0434\u044f\u0449\u0435\u0439 \u0434\u043b\u044f \u043a\u0440\u0443\u043f\u043d\u043e\u043c\u0430\u0441\u0448\u0442\u0430\u0431\u043d\u044b\u0445 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u043a, \u0433\u0434\u0435 \u0434\u0435\u043a\u043b\u0430\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u0435, \u043f\u043e\u0432\u0442\u043e\u0440\u044f\u0435\u043c\u044b\u0435 \u0441\u0445\u0435\u043c\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u0447\u0430\u0441\u0442\u044c\u044e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u0430 \u043c\u043d\u043e\u0433\u0438\u0435 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u044b \u0442\u0440\u0435\u0431\u0443\u044e\u0442 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u0421 \u044d\u0442\u0438\u043c \u0440\u0435\u043b\u0438\u0437\u043e\u043c GitLab \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c <a href=\"https:\/\/docs.gitlab.com\/charts\/charts\/gitlab\/kas\/\" rel=\"nofollow noopener noreferrer\">KAS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e helm chart<\/a> \u0441 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u044f\u044e\u0442\u0441\u044f \u0441 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u0447\u0442\u043e \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0430\u0433\u0435\u043d\u0442\u043e\u0432 \u0441 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438 \u043d\u0430\u0431\u043b\u044e\u0434\u0435\u043d\u0438\u044f \u0438 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433\u0430.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/clusters\/agent\/#install-with-the-helm-chart\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e helm chart<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/charts\/gitlab\/-\/issues\/2372\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"naznachenie-incidentov-maylstounam\">\u041d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0439\u043b\u0441\u0442\u043e\u0443\u043d\u0430\u043c<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/stages-devops-lifecycle\/monitor\/\" rel=\"nofollow noopener noreferrer\">\u0421\u0442\u0430\u0434\u0438\u044f \u0446\u0438\u043a\u043b\u0430 DevOps: Monitor<\/a><\/p>\n<p>  <\/p>\n<p>\u041d\u0435 \u0432\u0441\u0435 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u044b \u0438\u043c\u0435\u044e\u0442 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u0443\u044e \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0441\u0442\u044c (severity). \u041c\u043d\u043e\u0433\u0438\u043c\u0438 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u0430\u043c\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0437\u0430\u043d\u044f\u0442\u044c\u0441\u044f \u043d\u0435\u043c\u0435\u0434\u043b\u0435\u043d\u043d\u043e, \u0447\u0442\u043e\u0431\u044b \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0435\u0440\u0432\u0438\u0441\u044b, \u043e\u0442 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u044f\u0442 \u043a\u043b\u0438\u0435\u043d\u0442\u044b, \u043d\u043e \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u044b \u043c\u0435\u043d\u0435\u0435 \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u044b, \u0438 \u0438\u043c \u043c\u043e\u0436\u043d\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0438\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043d\u0438\u0437\u043a\u0438\u0439 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u0438 \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u0442\u044c \u043a \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u043c\u0443 \u0440\u0435\u043b\u0438\u0437\u0443 \u0438\u043b\u0438 \u044d\u0442\u0430\u043f\u0443 \u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u0438\u0432\u044f\u0437\u044b\u0432\u0430\u0442\u044c \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u044b \u0441 \u043d\u0438\u0437\u043a\u043e\u0439 \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0441\u0442\u044c\u044e \u043a \u043c\u0430\u0439\u043b\u0441\u0442\u043e\u0443\u043d\u0430\u043c \u043d\u0430 \u043f\u0440\u0430\u0432\u043e\u0439 \u0431\u043e\u043a\u043e\u0432\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u043c\u0438 \u0441 \u0432\u0430\u0448\u0438\u0445 \u0434\u043e\u0441\u043e\u043a \u0437\u0430\u0434\u0430\u0447 (\u0432 \u0440\u0443\u0441\u0441\u043a\u043e\u0439 \u043b\u043e\u043a\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 GitLab \u00ab\u0434\u043e\u0441\u043a\u0438 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0439\u00bb).<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/operations\/incident_management\/incidents.html#associate-a-milestone\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044e \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043e\u0432 \u043c\u0430\u0439\u043b\u0441\u0442\u043e\u0443\u043d\u0430\u043c<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/297007\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"gitlab-exporter-ispolzuet-znachitelno-menshe-pamyati\">GitLab exporter \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043c\u0435\u043d\u044c\u0448\u0435 \u043f\u0430\u043c\u044f\u0442\u0438<\/h3>\n<p>  <\/p>\n<p>(self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/handbook\/engineering\/development\/enablement\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c<\/a><\/p>\n<p>  <\/p>\n<p>GitLab exporter \u0438\u0437\u043c\u0435\u0440\u044f\u0435\u0442 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u0438\u0437 Redis \u0438 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445. \u041c\u044b \u0441\u043e\u043a\u0440\u0430\u0442\u0438\u043b\u0438 \u0435\u0433\u043e \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u043f\u0430\u043c\u044f\u0442\u0438 \u043f\u0440\u0438\u043c\u0435\u0440\u043d\u043e \u043d\u0430 60% (~67-71 \u041c\u0411) \u0437\u0430 \u0441\u0447\u0451\u0442 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u0435\u0433\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0432\u0430\u0436\u043d\u043e \u043f\u0440\u0438 \u0437\u0430\u043f\u0443\u0441\u043a\u0435 GitLab exporter \u0432 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\u0445 \u0441 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u044b\u043c \u043e\u0431\u044a\u0451\u043c\u043e\u043c \u043f\u0430\u043c\u044f\u0442\u0438.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/monitoring\/prometheus\/gitlab_exporter.html\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e GitLab exporter<\/a>, <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/297241\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/5035\" rel=\"nofollow noopener noreferrer\">\u044d\u043f\u0438\u043a<\/a>.<\/p>\n<p>  <\/p>\n<h3 id=\"sortirovka-rezultatov-globalnogo-poiska-po-vremeni-poslednego-obnovleniya\">\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u0433\u043b\u043e\u0431\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f<\/h3>\n<p>  <\/p>\n<p>(SaaS: FREE, PREMIUM, ULTIMATE; self-managed: FREE, PREMIUM, ULTIMATE) <a href=\"https:\/\/about.gitlab.com\/handbook\/engineering\/development\/enablement\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c<\/a><\/p>\n<p>  <\/p>\n<p>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u044b\u0431\u0440\u0430\u0442\u044c \u0441\u043f\u043e\u0441\u043e\u0431 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043f\u043e\u0438\u0441\u043a\u0430 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432; \u0432 \u0440\u0435\u043b\u0438\u0437\u0435 13.9 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043f\u043e\u0438\u0441\u043a\u0430 \u043f\u043e \u0442\u0438\u043a\u0435\u0442\u0430\u043c \u0438 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430\u043c \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0438\u0445 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/search\/advanced_global_search.html\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u043c\u0443 \u043f\u043e\u0438\u0441\u043a\u0443<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/295311\" rel=\"nofollow noopener noreferrer\">\u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0442\u0438\u043a\u0435\u0442<\/a>.<\/p>\n<p>  <\/p>\n<hr>\n<p>  <\/p>\n<p>\u041f\u043e\u043b\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442 \u0440\u0435\u043b\u0438\u0437\u0430 \u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u043f\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044e\/\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0439\u0442\u0438 \u0432 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u043c \u0430\u043d\u0433\u043b\u043e\u044f\u0437\u044b\u0447\u043d\u043e\u043c \u043f\u043e\u0441\u0442\u0435: <a href=\"https:\/\/about.gitlab.com\/releases\/2021\/02\/22\/gitlab-13-9-released\/\" rel=\"nofollow noopener noreferrer\">GitLab 13.9 released with a Security Alert Dashboard and Maintenance Mode<\/a>.<\/p>\n<p>  <\/p>\n<p>\u041d\u0430\u0434 \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u043e\u043c \u0441 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 <a href=\"https:\/\/habr.com\/ru\/users\/cattidourden\/\" class=\"user_link\">cattidourden<\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/maryartkey\/\" class=\"user_link\">maryartkey<\/a>, <a href=\"https:\/\/habr.com\/ru\/users\/ainoneko\/\" class=\"user_link\">ainoneko<\/a> \u0438 <a href=\"https:\/\/habr.com\/ru\/users\/rishavant\/\" class=\"user_link\">rishavant<\/a>.<\/p>\n<\/div>\n<p> \u0441\u0441\u044b\u043b\u043a\u0430 \u043d\u0430 \u043e\u0440\u0438\u0433\u0438\u043d\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 <a href=\"https:\/\/habr.com\/ru\/post\/546818\/\"> https:\/\/habr.com\/ru\/post\/546818\/<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"\n<div class=\"post__text post__text-html post__text_v1\" id=\"post-content-body\">\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/d25\/04e\/9ff\/d2504e9ffdbdcf62b2bc0b54fe47feff.jpg\" alt=\"\u041a\u0430\u0440\u0442\u0438\u043d\u043a\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u0432\u043b\u0435\u0447\u0435\u043d\u0438\u044f \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u044f\"><\/p>\n<p>  <\/p>\n<p>GitLab 13.9 \u0443\u0436\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \u2014 \u0441 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\u043c\u0438 DevSecOps, \u043f\u0430\u043d\u0435\u043b\u044c\u044e \u043e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u0439 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u0440\u0438\u043e\u0440\u0438\u0442\u0435\u0442\u043d\u044b\u0445 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0439, \u0440\u0435\u0436\u0438\u043c\u043e\u043c \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u043a\u043e\u043c\u0430\u043d\u0434, \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u043d\u043e\u0439 \u0432\u0438\u0434\u0438\u043c\u043e\u0441\u0442\u044c\u044e, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u0443\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0435\u0442\u0440\u0438\u043a DORA, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u043e\u0434\u0432\u0438\u043d\u0443\u0442\u044b\u043c\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044f\u043c\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u0430\u043c \u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u044b \u0431\u044b\u0441\u0442\u0440\u0435\u0435. \u042d\u0442\u043e \u043b\u0438\u0448\u044c \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0438\u0437 <strong>\u0431\u043e\u043b\u0435\u0435 \u0447\u0435\u043c 60 \u043d\u043e\u0432\u044b\u0445 \u0444\u0438\u0447 \u0438 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439<\/strong> \u0432 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-319519","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/319519","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=319519"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/319519\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=319519"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=319519"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=319519"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}