{"id":324559,"date":"2021-06-08T15:00:21","date_gmt":"2021-06-08T15:00:21","guid":{"rendered":"http:\/\/savepearlharbor.com\/?p=324559"},"modified":"-0001-11-30T00:00:00","modified_gmt":"-0001-11-29T21:00:00","slug":"","status":"publish","type":"post","link":"https:\/\/savepearlharbor.com\/?p=324559","title":{"rendered":"\u0412\u044b\u0448\u0435\u043b \u0440\u0435\u043b\u0438\u0437 GitLab 13.12 \u0441 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c DAST \u043f\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044e \u0438 \u0433\u0440\u0430\u0444\u0438\u043a\u043e\u043c \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\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\/466\/011\/43d\/46601143d072479411c08477d48d36d9.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>\u0412 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u044f\u0446\u0435 \u043c\u044b \u0440\u0430\u0434\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430\u043c\u0438 \u0438 \u0432 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u0440\u0438\u0437\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u043f\u043e\u0432\u044b\u0448\u0430\u044e\u0449\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f, \u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u0430\u043c \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c DevOps \u043d\u0430 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435. \u0418 \u044d\u0442\u043e \u2014 \u043b\u0438\u0448\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0437 44 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439 \u0432 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435!<\/p>\n<p><a name=\"habracut\"><\/a>  <\/p>\n<h2 id=\"upravlyayte-bezopasnostyu-poka-ona-ne-nachala-upravlyat-vami\">\u0423\u043f\u0440\u0430\u0432\u043b\u044f\u0439\u0442\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c\u044e, \u043f\u043e\u043a\u0430 \u043e\u043d\u0430 \u043d\u0435 \u043d\u0430\u0447\u0430\u043b\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0432\u0430\u043c\u0438<\/h2>\n<p>  <\/p>\n<p>\u0427\u0442\u043e\u0431\u044b \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d-\u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0439, \u043c\u044b \u0432\u044b\u043f\u0443\u0441\u043a\u0430\u0435\u043c \u0432 \u043e\u0431\u0449\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f <a href=\"#zapusk-dast-skanirovaniy-po-trebovaniyu\">\u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439 DAST \u043f\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044e<\/a> \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u043b\u0430\u043d\u043e\u0432 Ultimate. \u0420\u0443\u0447\u043d\u043e\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0442\u044c \u0443\u0436\u0435 \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u044b\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u043b\u0438 API \u0432 \u043b\u044e\u0431\u043e\u043c \u0438\u0437 \u0432\u0430\u0448\u0438\u0445 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0445 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u0439 \u0432\u043d\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 CI\/CD (\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), \u0442\u043e \u0435\u0441\u0442\u044c \u0431\u0435\u0437 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0432 \u043a\u043e\u0434\u0435 \u0438 \u0431\u0435\u0437 \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).<\/p>\n<p>  <\/p>\n<p><a href=\"#semgrep--analizator-sast-dlya-javascript-typescript-i-python\">\u0410\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 SAST \u043e\u0442 Semgrep<\/a> \u0434\u043b\u044f JavaScript, TypeScript \u0438 Python \u0442\u0430\u043a\u0436\u0435 \u0442\u0435\u043f\u0435\u0440\u044c \u0432 \u043e\u0431\u0449\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435. \u0413\u0438\u0431\u043a\u0438\u0439 \u0441\u0438\u043d\u0442\u0430\u043a\u0441\u0438\u0441 \u043f\u0440\u0430\u0432\u0438\u043b Semgrep \u0438\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u0438 \u043d\u0430\u0448\u0435\u0439 \u0444\u0438\u0447\u0438 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/#customize-rulesets\" rel=\"nofollow noopener noreferrer\">\u041f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u043d\u0430\u0431\u043e\u0440\u044b \u043f\u0440\u0430\u0432\u0438\u043b<\/a> \u0434\u043b\u044f \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u0438\u044f \u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043f\u0440\u0430\u0432\u0438\u043b \u0432\u044b\u044f\u0432\u043b\u0435\u043d\u0438\u044f \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439, \u0447\u0442\u043e \u0431\u044b\u043b\u043e \u0447\u0430\u0441\u0442\u044b\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c \u043e\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 GitLab SAST. \u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 GitLab \u0442\u0435\u043f\u0435\u0440\u044c \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u043e\u0442\u043a\u0440\u044b\u0442\u044b\u043c \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c Semgrep. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0432\u043a\u043b\u0430\u0434\u0443 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 <a href=\"https:\/\/gitlab.com\/proletarius101\" rel=\"nofollow noopener noreferrer\">@proletarius101<\/a> \u043c\u044b \u0442\u0430\u043a\u0436\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c <a href=\"#podderzhka-skanirovaniya-binarnyh-faylov-dlya-mobilnyh-prilozheniy\">\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a> \u0434\u043b\u044f \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 <code>.ipa<\/code> (iOS) \u0438 <code>.apk<\/code> (Android), \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u0443\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u043c \u0444\u0430\u0439\u043b\u0430\u043c \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 Xcode \u0438 Android-\u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430\u043c.<\/p>\n<p>  <\/p>\n<p>\u041c\u043d\u043e\u0433\u0438\u0435 \u043d\u0430\u0448\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u0443\u044e\u0442 \u0441\u0432\u043e\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u043a\u0430\u043d\u0435\u0440\u044b \u0432 GitLab, \u0447\u0442\u043e\u0431\u044b \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0438\u0437 \u0435\u0434\u0438\u043d\u043e\u0433\u043e \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430. \u041e\u0442\u0447\u0451\u0442 \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0435 \u0434\u0430\u0451\u0442 \u0432\u0430\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/229661\" rel=\"nofollow noopener noreferrer\">\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043f\u043e \u0441\u043a\u0430\u043d\u0435\u0440\u0443 \u0438\u043b\u0438 \u0435\u0433\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044e<\/a>, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0441\u043a\u0430\u043d\u0435\u0440\u043e\u0432 \u0438\u043b\u0438 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u0441\u043a\u0430\u043d\u0435\u0440\u043e\u0432, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u044b\u0435 \u0432 GitLab.<\/p>\n<p>  <\/p>\n<p>\u0411\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u2014 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 GitLab \u0432 \u044d\u0442\u043e\u043c \u0433\u043e\u0434\u0443, \u0438 \u043d\u0430\u043c \u043e\u0447\u0435\u043d\u044c \u0432\u0430\u0436\u043d\u0430 \u0432\u0430\u0448\u0430 \u043e\u0431\u0440\u0430\u0442\u043d\u0430\u044f \u0441\u0432\u044f\u0437\u044c. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0442\u0435\u043d\u0434\u0435\u043d\u0446\u0438\u0438 \u0432 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u0441\u043c\u0435\u0449\u0430\u044e\u0442\u0441\u044f \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u0439 \u043d\u0430 JavaScript \u0438 \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u043c\u044b \u0441\u0442\u043e\u043b\u043a\u043d\u0443\u043b\u0438\u0441\u044c \u0441 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c\u044e \u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0435 \u0434\u043b\u044f DAST, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u043b \u0431\u044b \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0442\u0435\u0441\u0442\u0430\u043c\u0438, \u0447\u0435\u043c \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u0440\u043e\u0431\u043e\u0442 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u043e\u043a\u0441\u0438-\u0441\u0435\u0440\u0432\u0435\u0440\u0430. \u041c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c GitLab Ultimate \u043f\u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u0442\u044c \u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u044e <a href=\"#novyy-poiskovyy-robot-na-osnove-brauzera-dlya-dast-beta-versiya\">\u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u0440\u043e\u0431\u043e\u0442\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430<\/a>. \u0422\u0430\u043a\u043e\u0439 \u0440\u043e\u0431\u043e\u0442 \u0434\u043e\u043b\u0436\u0435\u043d \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u043c \u0440\u043e\u0431\u043e\u0442\u043e\u043c.<\/p>\n<p>  <\/p>\n<h2 id=\"bolee-prostoe-i-udobnoe-upravlenie-konveyerami\">\u0411\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0441\u0442\u043e\u0435 \u0438 \u0443\u0434\u043e\u0431\u043d\u043e\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430\u043c\u0438<\/h2>\n<p>  <\/p>\n<p>\u041a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u044b \u2014 \u043e\u0441\u043d\u043e\u0432\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0441 CI\/CD, \u0438 \u043c\u044b \u0445\u043e\u0442\u0438\u043c \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u0438\u0445 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u0430\u043a \u0434\u043b\u044f \u043d\u043e\u0432\u044b\u0445, \u0442\u0430\u043a \u0438 \u0434\u043b\u044f \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 GitLab. \u0412 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u043f\u043e\u044f\u0432\u0438\u043b\u0430\u0441\u044c \u0441\u0432\u043e\u0440\u0430\u0447\u0438\u0432\u0430\u0435\u043c\u0430\u044f <a href=\"#poleznaya-informaciya-o-gitlab-cicd-v-redaktore-konveyera\">\u043f\u0430\u043d\u0435\u043b\u044c \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438<\/a>, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043d\u043e\u0432\u044b\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c CI\/CD \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043f\u0435\u0440\u0432\u044b\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u043e.<\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 CI\/CD, \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0431\u043e\u043b\u044c\u0448\u0435 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u0432 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u043e\u0432, \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 <a href=\"#podderzhka-podstanovochnyh-simvolov-v-yaml-faylah-konfiguracii\"><code>\u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u043c \u0441\u043b\u043e\u0432\u0435 include:<\/code><\/a>, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0447\u0435\u043c\u0443 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u0444\u0430\u0439\u043b <code>.gitlab-ci.yml<\/code> \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0430\u043b\u0435\u043d\u044c\u043a\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043b\u0443\u0447\u0448\u0435\u0439 \u0447\u0438\u0442\u0430\u0435\u043c\u043e\u0441\u0442\u0438. \u041c\u044b \u0442\u0430\u043a\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c <a href=\"#podderzhka-peremennyh-workflowrules-v-konveyere-cicd\">\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u0432 \u043f\u0440\u0430\u0432\u0438\u043b\u0430\u0445<\/a>, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0430\u043c \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0432 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043e\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0445 \u0443\u0441\u043b\u043e\u0432\u0438\u0439. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043b\u043e\u0436\u043d\u044b\u0445 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u043e\u0432 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u043c\u0438 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438; \u0433\u0440\u0430\u0444 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0442\u0435\u043f\u0435\u0440\u044c <a href=\"#otobrazhenie-zavisimostey-zadaniy-v-grafe-konveyera\">\u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u043c\u0438<\/a>, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0438 \u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u043d\u0438\u043c\u0430\u0442\u044c \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0437\u0430\u0434\u0430\u043d\u0438\u0439.<\/p>\n<p>  <\/p>\n<h2 id=\"informaciya-dlya-povysheniya-stepeni-vnedreniya-devops\">\u0418\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0434\u043b\u044f \u043f\u043e\u0432\u044b\u0448\u0435\u043d\u0438\u044f \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0432\u043d\u0435\u0434\u0440\u0435\u043d\u0438\u044f DevOps<\/h2>\n<p>  <\/p>\n<p>\u0412\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c \u0442\u043e, \u0447\u0442\u043e \u0432\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0437\u043c\u0435\u0440\u0438\u0442\u044c. \u0421\u043b\u0435\u0434\u0443\u044f \u044d\u0442\u043e\u0439 \u0438\u0434\u0435\u0435, \u043c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043c\u0435\u0442\u0440\u0438\u043a DORA4. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 <a href=\"#grafik-chastoty-razvyortyvaniy-cicd-na-urovne-gruppy\">\u0433\u0440\u0430\u0444\u0438\u043a \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0439 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0433\u0440\u0443\u043f\u043f\u044b<\/a>. \u0422\u0430\u043a\u043e\u0439 \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u043f\u043e\u043d\u044f\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0438\u0445 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0439, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0443\u0437\u043a\u0438\u0435 \u043c\u0435\u0441\u0442\u0430 \u0438 \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0438 \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439, \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0432\u0441\u0435 \u0432\u0430\u0448\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b.<\/p>\n<p>  <\/p>\n<p>\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0446\u0438\u043a\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 (Value Stream Analytics) \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0433\u0434\u0435 \u0432\u0430\u0448 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u043d\u0435\u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u0435\u043d, \u0438 \u043f\u043e\u0447\u0435\u043c\u0443. \u0412 \u0440\u0435\u043b\u0438\u0437\u0435 13.12 \u043c\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c <a href=\"#prosmotr-i-sortirovka-elementov-rabochego-processa-v-analitike-cikla-razrabotki\">\u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0443 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430<\/a>, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043b\u0435\u0433\u043a\u043e \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u0441\u0442\u0430\u0434\u0438\u044f\u0445 \u0434\u043b\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0443\u0437\u043a\u0438\u0445 \u043c\u0435\u0441\u0442. <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/group\/value_stream_analytics\/#days-to-completion-chart\" rel=\"nofollow noopener noreferrer\">\u041d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u00ab\u0434\u043d\u0435\u0439 \u0434\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f\u00bb<\/a> (Days to Completion) \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f <a href=\"#prosmotr-srednego-vremeni-vypolneniya-elementov-rabochego-processa\">\u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430<\/a>, \u0447\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0435 \u0442\u0435\u043d\u0434\u0435\u043d\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u0438\u043c \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430 \u043d\u0430\u0448\u0435\u0433\u043e \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 <a href=\"https:\/\/gitlab.com\/leetickett\" rel=\"nofollow noopener noreferrer\">@leetickett<\/a> \u0437\u0430 \u0432\u043a\u043b\u0430\u0434, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \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\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c <a href=\"#otchyoty-ob-otslezhivanii-vremeni-dlya-tiketov-i-merzh-rekvestov\">\u043e\u0442\u0447\u0451\u0442\u044b \u043f\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044e \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/a> \u043f\u043e \u0442\u0438\u043a\u0435\u0442\u0430\u043c \u0438 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430\u043c. \u042d\u0442\u0438 \u043e\u0442\u0447\u0451\u0442\u044b \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0442 \u043e\u0446\u0435\u043d\u0438\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u043a\u0430\u0436\u0434\u044b\u0439 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a.<\/p>\n<p>  <\/p>\n<p>\u0414\u043b\u044f \u043c\u043d\u043e\u0433\u0438\u0445 \u043d\u0430\u0448\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u044b \u044f\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u043c \u043c\u0435\u0441\u0442\u043e\u043c \u0434\u043b\u044f \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043a \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c <a href=\"#opovescheniya-o-narusheniyah-kachestva-koda-v-diffah-merzh-rekvestov\">\u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0438\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u0434\u0430<\/a> \u0438 <a href=\"#skrinshoty-neuspeshnyh-testov-v-otchyote\">\u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432<\/a>, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u044f \u0432\u0430\u043c \u0432\u0435\u0441\u044c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0432\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0432 GitLab.<\/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>\u041c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u0435\u043c \u0441 \u043a\u0430\u0436\u0434\u044b\u043c \u0440\u0435\u043b\u0438\u0437\u043e\u043c \u0432\u043a\u043b\u0430\u0434\u044b\u0432\u0430\u0442\u044c\u0441\u044f \u0432 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f GitLab. \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.12:<\/p>\n<p>  <\/p>\n<ul>\n<li><a href=\"#schyotchiki-grupp-i-proektov-v-tablice-polzovateley-administratora\">\u0412 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0434\u043b\u044f \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u0432 \u043f\u043e\u044f\u0432\u0438\u043b\u0441\u044f \u0441\u0447\u0451\u0442\u0447\u0438\u043a \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0433\u0440\u0443\u043f\u043f \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432<\/a> <\/li>\n<li><a href=\"#integraciya-klastera-elastic-stack\">\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u0441 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u043c \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u043e\u043c Elastic Stack<\/a><\/li>\n<li><a href=\"#sozdanie-incidentov-cherez-api\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 API<\/a><\/li>\n<li><a href=\"#preduprezhdenie-administratora-pri-udalenii-dezhurnogo-polzovatelya\">\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0434\u0435\u0436\u0443\u0440\u043d\u043e\u0433\u043e \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u0430<\/a><\/li>\n<li><a href=\"#preduprezhdenie-polzovatelya-pri-udalenii-ispolzuemyh-klyuchey-razvyortyvaniya\">\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f<\/a>.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0414\u0430\u043b\u0435\u0435 \u0432\u044b \u0443\u0437\u043d\u0430\u0435\u0442\u0435 \u0432\u0441\u0451 \u043e \u043d\u043e\u0432\u044b\u0445 \u0444\u0438\u0447\u0430\u0445, \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f\u0445 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0438 \u0434\u0440\u0443\u0433\u0438\u0445 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f\u0445 \u044d\u0442\u043e\u0433\u043e \u0440\u0435\u043b\u0438\u0437\u0430! \u0427\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, \u0437\u0430\u0439\u0434\u0438\u0442\u0435 \u043d\u0430 \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:\/\/youtube.com\/playlist?list=PL05JrBw4t0Krdajp3voZbcFVXk3O8JpPO\" rel=\"nofollow noopener noreferrer\">\u0432\u0438\u0434\u0435\u043e \u043f\u043e \u0440\u0435\u043b\u0438\u0437\u0443 14.0<\/a>.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/hopin.com\/events\/remote-by-gitlab\" rel=\"nofollow noopener noreferrer\">\u041f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0439\u0442\u0435\u0441\u044c \u0432 \u043a\u043e\u043d\u0446\u0435 \u0438\u044e\u043d\u044f \u043a REMOTE \u043e\u0442 GitLab<\/a>, \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u043e \u0431\u0443\u0434\u0443\u0449\u0435\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0438 \u043a\u0443\u043b\u044c\u0442\u0443\u0440\u044b.<\/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--lee-ticketthttpsgitlabcomleetickett\"><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\/leetickett\" rel=\"nofollow noopener noreferrer\">Lee Tickett<\/a><\/h2>\n<p>  <\/p>\n<p>Lee \u043f\u0440\u043e\u0434\u0435\u043b\u0430\u043b \u0432\u0435\u043b\u0438\u043a\u043e\u043b\u0435\u043f\u043d\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443 \u043d\u0430\u0434 \u043d\u0430\u0448\u0435\u0439 \u0444\u0438\u0447\u0435\u0439 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/time_tracking.html\" rel=\"nofollow noopener noreferrer\">\u041e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/a>: \u043e\u043d \u0434\u043e\u0431\u0430\u0432\u0438\u043b <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/merge_requests\/60161\" rel=\"nofollow noopener noreferrer\">\u043e\u0442\u0447\u0451\u0442 \u043f\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044e \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/a>. \u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0435\u0433\u043e \u0432\u043a\u043b\u0430\u0434\u0443 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0437\u043d\u0430\u0442\u044c, \u043a\u0442\u043e \u0438 \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u043d\u0430 \u0437\u0430\u0434\u0430\u0447\u0443, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u0449\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u043e\u0435 \u0432\u0441\u0435\u043c\u0438 \u0443\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0430\u043c\u0438. \u041f\u0440\u0438 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u0437\u0430\u043c\u0435\u0442\u043a\u0438 \u0438 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u0432 \u043e\u0442\u0447\u0451\u0442\u0435.<\/p>\n<p>  <\/p>\n<p>Lee \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b \u0434\u0432\u0430 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430 \u0434\u043b\u044f \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f GraphQL API: \u043e\u0434\u0438\u043d \u0434\u043b\u044f <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/merge_requests\/57322\" rel=\"nofollow noopener noreferrer\">\u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f \u0442\u0430\u0439\u043c\u043b\u043e\u0433\u043e\u0432 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430<\/a> \u0438 \u0432\u0442\u043e\u0440\u043e\u0439 \u0434\u043b\u044f <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/merge_requests\/60190\" rel=\"nofollow noopener noreferrer\">\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 \u0437\u0430\u043f\u0440\u043e\u0441 GraphQL<\/a>.<\/p>\n<p>  <\/p>\n<p>\u0421\u043f\u0430\u0441\u0438\u0431\u043e \u0437\u0430 \u044d\u0442\u0443 \u043f\u043e\u0442\u0440\u044f\u0441\u0430\u044e\u0449\u0443\u044e \u0440\u0430\u0431\u043e\u0442\u0443, Lee! <\/p>\n<p>  <\/p>\n<h2 id=\"osnovnye-fichi-reliza-gitlab-1312\">\u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0444\u0438\u0447\u0438 \u0440\u0435\u043b\u0438\u0437\u0430 GitLab 13.12<\/h2>\n<p>  <\/p>\n<h3 id=\"zapusk-dast-skanirovaniy-po-trebovaniyu\">\u0417\u0430\u043f\u0443\u0441\u043a DAST-\u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\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>\u041f\u043e\u0441\u043b\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0440\u0430\u0431\u043e\u0442\u044b \u043c\u044b \u0441\u0447\u0430\u0441\u0442\u043b\u0438\u0432\u044b \u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439 DAST (Dynamic Application Security Testing, \u0434\u0438\u043d\u0430\u043c\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) \u043f\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044e \u0432\u044b\u0448\u0435\u043b \u0432 \u043e\u0431\u0449\u0438\u0439 \u0434\u043e\u0441\u0442\u0443\u043f! \u041e\u043d \u0433\u043e\u0442\u043e\u0432 \u043a \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044e \u0432\u0441\u0435\u043c\u0438, \u043a\u043e\u043c\u0443 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0443\u0436\u0435 \u0440\u0430\u0437\u0432\u0451\u0440\u043d\u0443\u0442\u043e\u0435 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0438\u043b\u0438 API \u0432\u043d\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043d\u0430 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0435. \u0421 \u0440\u0435\u043b\u0438\u0437\u043e\u043c 13.11 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432 \u043f\u0440\u043e\u0444\u0438\u043b\u0438 DAST-\u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0441\u0430\u0439\u0442\u043e\u0432 \u043f\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u043e\u043d\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u0438\u0441\u043a\u043b\u044e\u0447\u0430\u0442\u044c URL-\u0430\u0434\u0440\u0435\u0441\u0430, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0437\u0430\u0433\u043e\u043b\u043e\u0432\u043a\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c\u0441\u044f \u043c\u0435\u0436\u0434\u0443 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u0432\u0435\u0431-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 API. \u0418 \u044d\u0442\u043e \u0432 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043a \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0434\u043b\u044f \u0443\u0434\u043e\u0431\u043d\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0432 \u0440\u0435\u043b\u0438\u0437\u0435 13.9, \u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0432\u044b\u0431\u043e\u0440\u0430 \u0432\u0435\u0442\u043a\u0438, \u0441 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0441\u0432\u044f\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u0439 \u0432 \u0440\u0435\u043b\u0438\u0437\u0435 13.10! \u041c\u044b \u0432\u0435\u0440\u0438\u043c, \u0447\u0442\u043e \u0442\u0430\u043a\u043e\u0439 \u043d\u0430\u0431\u043e\u0440 \u0444\u0438\u0447 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u0435\u0442 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u0438 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 GitLab.<\/p>\n<p>  <\/p>\n<p>\u041f\u043e \u043c\u0435\u0440\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0432\u044b\u0445 \u0444\u0438\u0447, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439, \u043c\u044b \u0440\u0430\u0441\u0441\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u043c, \u0447\u0442\u043e \u0440\u0443\u0447\u043d\u043e\u0439 \u0437\u0430\u043f\u0443\u0441\u043a DAST-\u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u0431\u0443\u0434\u0435\u0442 \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0432\u0441\u0451 \u0431\u043e\u043b\u044c\u0448\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f. \u041a\u0430\u043a \u0438 \u0432\u0441\u0435\u0433\u0434\u0430, \u043c\u044b \u0431\u0443\u0434\u0435\u043c \u0440\u0430\u0434\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0442\u0437\u044b\u0432\u043e\u0432 \u043e\u0431 \u044d\u0442\u0438\u0445 \u0444\u0438\u0447\u0430\u0445. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0434\u0430\u0439\u0442\u0435 \u043d\u0430\u043c \u0437\u043d\u0430\u0442\u044c, \u0432\u0441\u0451 \u043b\u0438 \u0432\u0430\u0441 \u0443\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0435\u0442, \u2014 \u043e\u0441\u0442\u0430\u0432\u044c\u0442\u0435 \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/327396\" rel=\"nofollow noopener noreferrer\">\u0432 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u043c \u0442\u0438\u043a\u0435\u0442\u0435<\/a>.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/682\/8dc\/125\/6828dc1254256d5e003d4053014538be.png\" alt=\"On-demand DAST GA launch\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/dast\/#on-demand-scans\" 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 DAST-\u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0439 \u043f\u043e \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044e<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/3771\" 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=\"poleznaya-informaciya-o-gitlab-cicd-v-redaktore-konveyera\">\u041f\u043e\u043b\u0435\u0437\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u043e GitLab CI\/CD \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\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>\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u043f\u0435\u0440\u0432\u043e\u0433\u043e CI\/CD-\u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0432 GitLab \u043c\u043e\u0436\u0435\u0442 \u043e\u043a\u0430\u0437\u0430\u0442\u044c\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u043e\u0439 \u0437\u0430\u0434\u0430\u0447\u0435\u0439, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u0432 CI\/CD. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u044f\u0441\u044c \u043c\u0435\u0436\u0434\u0443 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439 \u0438 GitLab, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u043f\u0435\u0440\u0432\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 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u043f\u0430\u043d\u0435\u043b\u044c \u0441 \u043f\u043e\u043b\u0435\u0437\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0434\u0451\u0442 \u0432\u0430\u0441 \u043f\u043e \u0432\u0441\u0435\u043c \u0448\u0430\u0433\u0430\u043c \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0435\u0440\u0432\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/76d\/cd6\/f76\/76dcd6f76faf5672cff1cea2c8514ef3.png\" alt=\"Useful GitLab CI\/CD information in the pipeline editor\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/pipeline_editor\/\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0443 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/296547\" 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-podstanovochnyh-simvolov-v-yaml-faylah-konfiguracii\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u0445 \u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0432 YAML \u0444\u0430\u0439\u043b\u0430\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\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>\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>includes:<\/code> \u0432 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430\u0445 CI\/CD \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0431\u0438\u0442\u044c \u043e\u0434\u0438\u043d \u0434\u043b\u0438\u043d\u043d\u044b\u0439 \u0444\u0430\u0439\u043b <code>.gitlab-ci.yml<\/code> \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u043e\u0432 \u043c\u0435\u043d\u044c\u0448\u0435\u0433\u043e \u0440\u0430\u0437\u043c\u0435\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u0438\u0445 \u0431\u044b\u043b\u043e \u0443\u0434\u043e\u0431\u043d\u0435\u0435 \u0447\u0438\u0442\u0430\u0442\u044c. \u041e\u043d\u043e \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0432 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0435\u0441\u0442\u0430\u0445. \u0427\u0430\u0441\u0442\u043e \u0432 \u043e\u0434\u0438\u043d \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440 \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u043e\u0432, \u0438 \u0432\u0441\u0435 \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0445\u0440\u0430\u043d\u0438\u0442\u044c\u0441\u044f \u0432 \u043e\u0434\u043d\u043e\u043c \u043c\u0435\u0441\u0442\u0435. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u043e\u0433\u043e \u0437\u043d\u0430\u043a\u0430 <code>*<\/code> \u0441 \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u044b\u043c \u043a\u043b\u044e\u0447\u0435\u0432\u044b\u043c \u0441\u043b\u043e\u0432\u043e\u043c <code>includes:<\/code>. \u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0441\u0435\u043a\u0446\u0438\u0438 <code>includes:<\/code> \u0431\u043e\u043b\u0435\u0435 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u043d\u044b\u043c\u0438, \u043c\u0435\u043d\u0435\u0435 \u043f\u0435\u0440\u0435\u0433\u0440\u0443\u0436\u0435\u043d\u043d\u044b\u043c\u0438 \u0438 \u0431\u043e\u043b\u0435\u0435 \u0443\u0434\u043e\u0431\u043d\u044b\u043c\u0438 \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f. \u041f\u043e\u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435, \u043a\u0430\u043a \u043c\u044b <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/commit\/f0629cc5eaa70a29cb2d98e5e1e0915d4968840e\" rel=\"nofollow noopener noreferrer\">\u0441\u0430\u043c\u0438 \u0438\u0441\u043e\u043b\u044c\u0437\u0443\u0435\u043c \u044d\u0442\u043e \u0432 GitLab<\/a>.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/33c\/c3b\/2b6\/33cc3b2b6df97ff49008c9d9348094c0.png\" alt=\"Support wildcards when including YAML CI\/CD configuration files\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/yaml\/README.html#includelocal-with-wildcard-file-paths\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043f\u043e\u0434\u0441\u0442\u0430\u043d\u043e\u0432\u043e\u0447\u043d\u044b\u043c \u0441\u0438\u043c\u0432\u043e\u043b\u0430\u043c \u0432 includes<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/25921\" 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-zavisimostey-zadaniy-v-grafe-konveyera\">\u041e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0432 \u0433\u0440\u0430\u0444\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\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>\u041d\u0430 \u043f\u043e\u043b\u043d\u043e\u043c \u0433\u0440\u0430\u0444\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u044e\u0442\u0441\u044f \u0432\u0441\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0432\u0430\u0448\u0435\u0433\u043e CI\/CD-\u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430, \u0441\u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u044d\u0442\u0430\u043f\u0430\u043c. \u042d\u0442\u043e\u0442 \u0433\u0440\u0430\u0444 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0445\u043e\u0434 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u043e\u043d\u044f\u0442\u044c \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0438\u0445 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p>\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/yaml\/README.html#needs\" rel=\"nofollow noopener noreferrer\"><code>needs<\/code><\/a> \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0430\u0446\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0433\u0440\u0430\u0444, \u0431\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u043c\u043e\u0433\u0443\u0442 \u043d\u0430\u0447\u0430\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c\u0441\u044f \u0440\u0430\u043d\u044c\u0448\u0435, \u0447\u0435\u043c \u0435\u0441\u043b\u0438 \u0431\u044b \u043e\u043d\u0438 \u0431\u044b\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d\u044b \u0438\u0441\u043a\u043b\u044e\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u043e \u044d\u0442\u0430\u043f\u0430\u043c. \u041e\u0434\u043d\u0430\u043a\u043e \u043e\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u0433\u0440\u0430\u0444 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430, \u0442\u0430\u043a \u043a\u0430\u043a \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u0441\u043b\u043e\u0436\u043d\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0432 \u043a\u0430\u043a\u043e\u043c \u043f\u043e\u0440\u044f\u0434\u043a\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0436\u0438\u0434\u0430\u0442\u044c \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u0439.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0440\u0435\u043b\u0438\u0437\u0435 13.12 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u043c\u0438 \u0432 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430\u0445 \u0441 \u0443\u0447\u0451\u0442\u043e\u043c \u043e\u0442\u043d\u043e\u0448\u0435\u043d\u0438\u0439, \u043f\u043e\u044f\u0432\u0438\u0432\u0448\u0438\u0445\u0441\u044f \u0438\u0437-\u0437\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <code>needs:<\/code>. \u041c\u044b \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0441\u0432\u044f\u0437\u0438 \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u043c\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0442\u043e\u0447\u043d\u043e \u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a\u0438\u0435 \u0437\u0430\u0434\u0430\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b \u0434\u043e \u043d\u0430\u0447\u0430\u043b\u0430 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u044f. \u0412\u0430\u043c \u0441\u0442\u0430\u043d\u0435\u0442 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u043f\u0440\u043e\u0449\u0435 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0438 \u0430\u043d\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438 \u043c\u0435\u0436\u0434\u0443 \u0437\u0430\u0434\u0430\u043d\u0438\u044f\u043c\u0438 \u0438 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u044b\u0439 \u043f\u043e\u0440\u044f\u0434\u043e\u043a \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <code>needs:<\/code>.<\/p>\n<p>  <\/p>\n<div class=\"oembed\"><iframe allowfullscreen id=\"60be0616cb03d9ab5ce5bd3e\" src=\"https:\/\/embedd.srv.habr.com\/iframe\/60be0616cb03d9ab5ce5bd3e\"><\/iframe><\/div>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/pipelines\/#view-job-dependencies-in-the-pipeline-graph\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0433\u0440\u0430\u0444\u0443 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0437\u0430\u0434\u0430\u043d\u0438\u0439 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/4509\" 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=\"skrinshoty-neuspeshnyh-testov-v-otchyote\">\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u0432 \u043e\u0442\u0447\u0451\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\/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>GitLab \u043e\u0431\u043b\u0435\u0433\u0447\u0430\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 end-to-end \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u0438, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Selenium, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u044e\u0442 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u044b \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0445 \u0442\u0435\u0441\u0442\u043e\u0432 \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432. \u042d\u0442\u043e \u0434\u043e\u0432\u043e\u043b\u044c\u043d\u043e \u0443\u0434\u043e\u0431\u043d\u043e, \u0434\u043e \u0442\u0435\u0445 \u043f\u043e\u0440, \u043f\u043e\u043a\u0430 \u0432\u0430\u043c \u043d\u0435 \u043f\u0440\u0438\u0434\u0451\u0442\u0441\u044f \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u043e\u0433\u0440\u043e\u043c\u043d\u044b\u0439 \u0430\u0440\u0445\u0438\u0432 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u043e\u0432 \u0432 \u043f\u043e\u0438\u0441\u043a\u0430\u0445 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0433\u043e \u0434\u043b\u044f \u043e\u0442\u043b\u0430\u0434\u043a\u0438 \u043d\u0435\u043f\u0440\u043e\u0448\u0435\u0434\u0448\u0435\u0433\u043e \u0442\u0435\u0441\u0442\u0430. \u0412 \u043a\u043e\u043d\u0446\u0435 \u043a\u043e\u043d\u0446\u043e\u0432, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u0434\u0430\u0442\u044c\u0441\u044f \u0438\u0437-\u0437\u0430 \u0440\u0430\u0437\u043e\u0447\u0430\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0441\u0442\u043e \u043b\u043e\u043a\u0430\u043b\u044c\u043d\u043e \u0437\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u044c \u0442\u0435\u0441\u0442, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u0442\u044c\u0441\u044f \u0432\u044b\u044f\u0441\u043d\u0438\u0442\u044c \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b, \u0432\u043c\u0435\u0441\u0442\u043e \u0442\u043e\u0433\u043e \u0447\u0442\u043e\u0431\u044b \u0442\u0440\u0430\u0442\u0438\u0442\u044c \u0432\u0440\u0435\u043c\u044f \u043d\u0430 \u043f\u043e\u0438\u0441\u043a.<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043a \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u043e\u043c\u0443 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0443 \u0441 \u044d\u043a\u0440\u0430\u043d\u0430 \u043f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0435\u0439 \u0432 \u043e\u0442\u0447\u0451\u0442\u0435 \u043f\u043e \u044e\u043d\u0438\u0442-\u0442\u0435\u0441\u0442\u0443 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0430\u043c \u0431\u044b\u0441\u0442\u0440\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0440\u044f\u0434\u043e\u043c \u0441 \u043b\u043e\u0433\u043e\u043c \u043f\u0430\u0434\u0435\u043d\u0438\u044f, \u0438 \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0441\u043a\u043e\u0440\u0435\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u0447\u0442\u043e \u043f\u043e\u0448\u043b\u043e \u043d\u0435 \u0442\u0430\u043a.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/af7\/c8d\/7cb\/af7c8d7cb88cb35eb29ebaa45cd539f9.png\" alt=\"Failed test screenshots in test report\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/unit_test_reports.html#viewing-junit-screenshots-on-gitlab\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\u043c \u0442\u0435\u0441\u0442\u043e\u0432 \u0432 \u043e\u0442\u0447\u0451\u0442\u0435<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/216979\" 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=\"opovescheniya-o-narusheniyah-kachestva-koda-v-diffah-merzh-rekvestov\">\u041e\u043f\u043e\u0432\u0435\u0449\u0435\u043d\u0438\u044f \u043e \u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0438\u044f\u0445 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u0434\u0430 \u0432 \u0434\u0438\u0444\u0444\u0430\u0445 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u043e\u0432<\/h3>\n<p>  <\/p>\n<p>(SaaS: ULTIMATE; self-managed: 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\u043e \u0432\u0440\u0435\u043c\u044f \u043a\u043e\u0434 \u0440\u0435\u0432\u044c\u044e \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0437\u0430\u0445\u043e\u0442\u0435\u0442\u044c \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u043d\u0430 \u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0438\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u0434\u0430 \u0438 \u043d\u0430 \u0442\u043e, \u043a\u0430\u043a \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c. \u0414\u043e \u044d\u0442\u043e\u0433\u043e \u0432\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0438\u0445 \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u043e\u0442\u0447\u0451\u0442\u0430 \u043f\u043e \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0443, \u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430 \u0432 \u0434\u0440\u0443\u0433\u043e\u043c \u043e\u043a\u043d\u0435 \u0438\u043b\u0438 \u0432 \u0432\u0430\u0448\u0435\u0439 IDE. \u041f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043c\u0435\u0436\u0434\u0443 \u044d\u0442\u0438\u043c\u0438 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 \u043c\u043e\u0433\u043b\u043e \u0431\u044b\u0442\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043d\u0435\u0443\u0434\u043e\u0431\u043d\u044b\u043c \u0438 \u0438\u043d\u043e\u0433\u0434\u0430 \u0437\u0430\u0441\u0442\u0430\u0432\u043b\u044f\u043b\u043e \u0441\u0434\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u043f\u0440\u0438 \u0440\u0435\u0432\u044c\u044e \u0434\u0438\u0444\u0444\u0430 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430 \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043f\u043e\u044f\u0432\u0438\u043b\u0438\u0441\u044c \u043b\u0438 \u0432 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0435\u043c\u043e\u043c \u0444\u0430\u0439\u043b\u0435 \u043d\u043e\u0432\u044b\u0435 \u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0438\u044f \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u0434\u0430. \u0422\u0430\u043a \u0443 \u0432\u0430\u0441 \u0431\u0443\u0434\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0439 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0439 \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0432\u0430\u0448\u0435\u0433\u043e \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0432 GitLab, \u2014 \u0438 \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043e\u0442\u043a\u0440\u044b\u0432\u0430\u0442\u044c \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043e\u043a\u043d\u0430 \u0438 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/27a\/051\/617\/27a05161779cee594fbabf0dd6a880b9.png\" alt=\"Code quality violation notices in MR diffs\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/merge_requests\/code_quality.html#code-quality-in-diff-view\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044e \u043d\u0430\u0440\u0443\u0448\u0435\u043d\u0438\u0439 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0430 \u043a\u043e\u0434\u0430 \u0432 \u0434\u0438\u0444\u0444\u0435<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/267612\" 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-chastoty-razvyortyvaniy-cicd-na-urovne-gruppy\">\u0413\u0440\u0430\u0444\u0438\u043a \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0439 CI\/CD \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>\u0412 \u0440\u0430\u043c\u043a\u0430\u0445 \u043d\u0430\u0448\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0432\u0441\u0442\u0440\u043e\u0435\u043d\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/analytics\/ci_cd_analytics.html#devops-research-and-assessment-dora-key-metrics\" rel=\"nofollow noopener noreferrer\">\u043c\u0435\u0442\u0440\u0438\u043a DORA4<\/a> \u0432 GitLab \u043c\u044b \u0441\u0434\u0435\u043b\u0430\u043b\u0438 \u0433\u0440\u0430\u0444\u0438\u043a \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0433\u0440\u0443\u043f\u043f\u044b. \u041d\u0430 \u044d\u0442\u043e\u043c \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0431\u0443\u0434\u0443\u0442 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0442\u044c\u0441\u044f \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u0435\u043b\u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0439 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u0432 \u0433\u0440\u0443\u043f\u043f\u0443, \u0442\u0430\u043a \u0447\u0442\u043e \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043f\u043e\u043b\u043d\u0443\u044e \u043a\u0430\u0440\u0442\u0438\u043d\u0443 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0439 \u0434\u043b\u044f \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0438 \u043a\u043e\u043c\u0430\u043d\u0434, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043b\u0443\u0447\u0448\u0435 \u043e\u0446\u0435\u043d\u0438\u0432\u0430\u0442\u044c \u0438\u0445 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c. \u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0439 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0439 \u0441 \u0442\u0435\u0447\u0435\u043d\u0438\u0435\u043c \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043d\u0430\u0445\u043e\u0434\u0438\u0442\u044c \u0443\u0437\u043a\u0438\u0435 \u043c\u0435\u0441\u0442\u0430 \u0438 \u0441\u043e\u0441\u0440\u0435\u0434\u043e\u0442\u043e\u0447\u0438\u0442\u044c\u0441\u044f \u043d\u0430 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0438 \u043e\u0431\u043b\u0430\u0441\u0442\u0435\u0439, \u043e\u0445\u0432\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0438\u0445 \u0432\u0441\u0435 \u0432\u0430\u0448\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0438 \u043a\u043e\u043c\u0430\u043d\u0434\u044b.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/c95\/d6b\/d61\/c95d6bd61e94564289eb87118d306cd9.png\" alt=\"Group-level deployment frequency CI\/CD chart\"><\/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\u0443 \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\/291748\" 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<h2 id=\"drugie-uluchsheniya-v-gitlab-1312\">\u0414\u0440\u0443\u0433\u0438\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 GitLab 13.12<\/h2>\n<p>  <\/p>\n<h3 id=\"schyotchiki-grupp-i-proektov-v-tablice-polzovateley-administratora\">\u0421\u0447\u0451\u0442\u0447\u0438\u043a\u0438 \u0433\u0440\u0443\u043f\u043f \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 \u0442\u0430\u0431\u043b\u0438\u0446\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\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>\u0420\u0430\u043d\u044c\u0448\u0435 \u0431\u044b\u043b\u043e \u043d\u0435\u043f\u0440\u043e\u0441\u0442\u043e \u0443\u0437\u043d\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0433\u0440\u0443\u043f\u043f \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u044b\u0439 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c. \u041e\u0434\u043d\u0430\u043a\u043e \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u044f\u043c, \u0441\u043b\u0435\u0434\u044f\u0449\u0438\u043c \u0437\u0430 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435\u043c \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c, \u0432\u0430\u0436\u043d\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c, \u043a \u043a\u0430\u043a\u0438\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0430\u043c \u0438 \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c \u0438\u043c\u0435\u044e\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438. \u042d\u0442\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f \u0434\u0430\u0451\u0442 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0447\u043b\u0435\u043d\u0441\u0442\u0432\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043d\u0435 \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u0432\u044b\u0441\u043e\u043a\u0438\u0439 \u0443\u0440\u043e\u0432\u0435\u043d\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0438 \u043d\u0435 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c \u043b\u0438\u0448\u043d\u0438\u0445 \u0434\u043e\u0441\u0442\u0443\u043f\u043e\u0432 \u043f\u043e\u0441\u043b\u0435 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u044b \u0443\u0447\u0430\u0441\u0442\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438.<\/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 \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u0449\u0435\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043e \u0447\u043b\u0435\u043d\u0441\u0442\u0432\u0435 \u0432\u0430\u0448\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0434\u043b\u044f \u0430\u0443\u0434\u0438\u0442\u0430. \u0412 \u044d\u0442\u043e\u0439 \u0438\u0442\u0435\u0440\u0430\u0446\u0438\u0438 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u0438 \u043e\u0431\u0449\u0435\u0433\u043e \u0447\u0438\u0441\u043b\u0430 \u0433\u0440\u0443\u043f\u043f \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u043f\u0440\u0438\u043d\u0430\u0434\u043b\u0435\u0436\u0438\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c. \u042d\u0442\u043e \u2014 \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0448\u0430\u0433 \u0432 \u0441\u0442\u043e\u0440\u043e\u043d\u0443 \u044d\u043a\u0441\u043f\u043e\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u043e\u0433\u043e <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/3155\" rel=\"nofollow noopener noreferrer\">\u043e\u0442\u0447\u0451\u0442\u0430 \u043e \u0434\u043e\u0441\u0442\u0443\u043f\u0430\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439<\/a>.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/6cb\/5c6\/c91\/6cb5c6c9118008e2cc0a8aa1f86b5598.png\" alt=\"Added total group and project count to admin users table\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/admin_area\/index.html#administering-users\" 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 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\u043c\u0438 \u0441 \u043f\u0430\u043d\u0435\u043b\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/4432\" 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=\"uluchsheniya-metrik-razvyortyvaniya-v-analitike-cikla-razrabotki\">\u0423\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u043c\u0435\u0442\u0440\u0438\u043a \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0435 \u0446\u0438\u043a\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/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>\u041c\u044b \u0443\u043b\u0443\u0447\u0448\u0438\u043b\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0438 \u0447\u0430\u0441\u0442\u043e\u0442\u044b \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0439 \u0432 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0435 \u0446\u0438\u043a\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 (Value Stream Analytics) \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0433\u0440\u0443\u043f\u043f\u044b. \u042d\u0442\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442 \u043d\u0435 \u0432\u0441\u0435 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f, \u0430 \u0442\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432 \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\u0445 <a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/environments\/#deployment-tier-of-environments\" rel=\"nofollow noopener noreferrer\">\u0441 \u0442\u0438\u043f\u043e\u043c production<\/a>. \u0422\u0435\u043f\u0435\u0440\u044c \u044d\u0442\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0441\u0442\u0430\u043d\u0443\u0442 \u0431\u043e\u043b\u0435\u0435 \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u043c\u0438, \u0442\u0430\u043a \u043a\u0430\u043a \u0437\u0430\u0447\u0430\u0441\u0442\u0443\u044e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u0432 \u043d\u0435-\u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d \u043e\u043a\u0440\u0443\u0436\u0435\u043d\u0438\u044f\u0445 \u043d\u0435 \u0434\u0430\u044e\u0442 \u0446\u0435\u043d\u043d\u043e\u0439 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<p>\u041a\u0440\u043e\u043c\u0435 \u0442\u043e\u0433\u043e, \u044d\u0442\u0438 \u043c\u0435\u0442\u0440\u0438\u043a\u0438 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b\u0447\u0438\u0441\u043b\u044f\u044e\u0442\u0441\u044f \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f, \u0430 \u043d\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f. \u042d\u0442\u043e \u043f\u043e\u0432\u044b\u0448\u0430\u0435\u0442 \u0442\u043e\u0447\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0437\u0430 \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u0439 \u043f\u0435\u0440\u0438\u043e\u0434 \u0432\u0440\u0435\u043c\u0435\u043d\u0438.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/23b\/5e2\/4ef\/23b5e24ef727c1b400390bf04e47856b.png\" alt=\"Improvements to the deployment metrics in Value Stream Analytics\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/group\/value_stream_analytics\/index.html#how-metrics-are-measured\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0438\u0437\u043c\u0435\u0440\u0435\u043d\u0438\u044e \u043c\u0435\u0442\u0440\u0438\u043a<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/321005\" 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-i-sortirovka-elementov-rabochego-processa-v-analitike-cikla-razrabotki\">\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0432 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0435 \u0446\u0438\u043a\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/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>\u0420\u0430\u043d\u0435\u0435 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438 \u0446\u0438\u043a\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0438\u0441\u044c \u0442\u043e\u043b\u044c\u043a\u043e 20 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0430\u0434\u0438\u0438. \u042d\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0440\u0430\u0437\u0431\u0438\u0432\u043a\u0443 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430.<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0441\u043c\u0430\u0442\u0440\u0438\u0432\u0430\u0442\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0430\u0434\u0438\u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u0446\u0438\u043a\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u043f\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438, \u043f\u0440\u043e\u0432\u0435\u0434\u0451\u043d\u043d\u043e\u043c\u0443 \u043d\u0430 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0439 \u0441\u0442\u0430\u0434\u0438\u0438, \u0447\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u0443\u0437\u043a\u0438\u0435 \u043c\u0435\u0441\u0442\u0430. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u0435\u0441\u043b\u0438 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u044f \u043c\u0435\u0440\u0436\u0438\u043b\u0438\u0441\u044c \u0434\u043e\u043b\u044c\u0448\u0435 \u0447\u0435\u043c \u043e\u0431\u044b\u0447\u043d\u043e, \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u0443\u0439\u0442\u0435 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u044b \u0441\u0442\u0430\u0434\u0438\u0438 Code, \u0447\u0442\u043e\u0431\u044b \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0441\u0430\u043c\u044b\u0439 \u043c\u0435\u0434\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 \u0438 \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c\u0441\u044f \u0432 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0445 \u043f\u0440\u0438\u0447\u0438\u043d\u0430\u0445 \u0437\u0430\u0434\u0435\u0440\u0436\u043a\u0438.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/ee8\/e35\/df5\/ee8e35df56a42f38dd9dda72a0019965.png\" alt=\"View and sort stage items in a value stream\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/group\/value_stream_analytics\/index.html#stage-table\" 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 \u0446\u0438\u043a\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/12524\" 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-kolichestva-elementov-rabochego-processa-na-kazhdoy-stadii-cikla-razrabotki\">\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u043d\u0430 \u043a\u0430\u0436\u0434\u043e\u0439 \u0441\u0442\u0430\u0434\u0438\u0438 \u0446\u0438\u043a\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/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>\u0410\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430 \u0446\u0438\u043a\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u0430\u043c \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0434\u043b\u044f \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u0434\u0438\u0438 \u0446\u0438\u043a\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u043f\u0438\u0441\u043e\u043a \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u0440\u043e\u0448\u043b\u0438 \u044d\u0442\u0443 \u0441\u0442\u0430\u0434\u0438\u044e. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0441\u0447\u0451\u0442\u0447\u0438\u043a, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043a\u043e\u0442\u043e\u0440\u043e\u0433\u043e \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u043b\u0435\u0433\u043a\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c \u0447\u0438\u0441\u043b\u043e \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0437\u0430\u0432\u0435\u0440\u0448\u0438\u043b\u0438 \u0441\u0442\u0430\u0434\u0438\u044e \u0438 \u0431\u044b\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u044b \u0434\u043b\u044f \u0440\u0430\u0441\u0447\u0451\u0442\u0430 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/2fa\/a91\/938\/2faa919389d21f177de914b2aca60832.png\" alt=\"View the number of workflow items in a value stream stage\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/group\/value_stream_analytics\" 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 \u0446\u0438\u043a\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/321448\" 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=\"vidzhet-statusa-konveyera-v-redaktore-konveyera\">\u0412\u0438\u0434\u0436\u0435\u0442 \u0441\u0442\u0430\u0442\u0443\u0441\u0430 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\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>\u0420\u0430\u043d\u044c\u0448\u0435 \u043f\u043e\u0441\u043b\u0435 \u043a\u043e\u043c\u043c\u0438\u0442\u0430 \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439 \u0447\u0435\u0440\u0435\u0437 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0432\u0430\u043c \u043f\u0440\u0438\u0445\u043e\u0434\u0438\u043b\u043e\u0441\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0438\u0442\u044c \u043d\u0430 \u0434\u0440\u0443\u0433\u0443\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443, \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u0430\u043a\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0430\u0442\u0443\u0441 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u0438\u0434\u0436\u0435\u0442 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0432 \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u0442\u044c \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430, \u043d\u0435 \u043f\u043e\u043a\u0438\u0434\u0430\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0430.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/9fb\/488\/9ac\/9fb4889ac5417ed796bf98ea953599cc.png\" alt=\"Pipeline status widget in the pipeline editor\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/pipeline_editor\/index.html\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u0435\u0434\u0430\u043a\u0442\u043e\u0440\u0443 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/280829\" 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=\"zapret-na-povtornuyu-zagruzku-paketov\">\u0417\u0430\u043f\u0440\u0435\u0442 \u043d\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0443\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043f\u0430\u043a\u0435\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\/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 \u0438 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432\u0430\u0448\u0438\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432. \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 \u043f\u0430\u043a\u0435\u0442\u044b \u0441 \u043e\u0434\u043d\u0438\u043c \u0438 \u0442\u0435\u043c \u0436\u0435 \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0435\u043c \u0438 \u043d\u043e\u043c\u0435\u0440\u043e\u043c \u0432\u0435\u0440\u0441\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0440\u0430\u0437.<\/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\u044f\u0442 \u0437\u0430\u043f\u0440\u0435\u0442\u0438\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u0443\u044e \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0443 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u0434\u043b\u044f \u0440\u0435\u043b\u0438\u0437\u043e\u0432. GitLab 13.12 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0433\u0440\u0443\u043f\u043f\u044b \u0434\u043b\u044f \u0440\u0435\u0435\u0441\u0442\u0440\u0430 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0440\u0435\u0448\u0430\u0442\u044c \u0438\u043b\u0438 \u0437\u0430\u043f\u0440\u0435\u0449\u0430\u0442\u044c \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0435 \u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0438.<\/p>\n<p>  <\/p>\n<p>\u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0437\u043c\u0435\u043d\u0438\u0442\u044c \u044d\u0442\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0447\u0435\u0440\u0435\u0437 <a href=\"https:\/\/docs.gitlab.com\/ee\/api\/graphql\/reference\/index.html#packagesettings\" rel=\"nofollow noopener noreferrer\">GitLab API<\/a> \u0438\u043b\u0438 \u0447\u0435\u0440\u0435\u0437 <strong>\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 &gt; \u041f\u0430\u043a\u0435\u0442\u044b \u0438 \u0440\u0435\u0435\u0441\u0442\u0440\u044b<\/strong> (<strong>Settings &gt; Packages &amp; Registries<\/strong>) \u0432 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 GitLab. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0445 \u0440\u0435\u043b\u0438\u0437\u0430\u0445 \u043c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0443\u043b\u0443\u0447\u0448\u0430\u0442\u044c \u044d\u0442\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 \u0434\u043b\u044f \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. \u0421\u043b\u0435\u0434\u0438\u0442\u0435 \u0437\u0430 \u043f\u0440\u043e\u0433\u0440\u0435\u0441\u0441\u043e\u043c \u0432 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/5070\" rel=\"nofollow noopener noreferrer\">\u044d\u043f\u0438\u043a\u0435<\/a> \u0438 \u043f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0439\u0442\u0435\u0441\u044c \u043a \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435!<\/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\u0430\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u0432<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/293755\" 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=\"instrument-nastroyki-dlya-poiska-sekretnyh-klyuchey\">\u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\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\/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>\u0412\u0441\u043b\u0435\u0434 \u0437\u0430 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/index.html#configure-sast-in-the-ui\" rel=\"nofollow noopener noreferrer\">\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 GitLab<\/a> \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u041c\u044b \u0443\u0432\u0435\u0440\u0435\u043d\u044b, \u0447\u0442\u043e <a href=\"https:\/\/about.gitlab.com\/direction\/secure\/#security-is-a-team-effort\" rel=\"nofollow noopener noreferrer\">\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b<\/a>, \u0438 \u044d\u0442\u043e \u043d\u043e\u0432\u043e\u0432\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u043d\u0430\u0447\u0430\u043b\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u0441 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/secret_detection\/\" rel=\"nofollow noopener noreferrer\">\u043f\u043e\u0438\u0441\u043a\u043e\u043c \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439 GitLab<\/a> \u0434\u043b\u044f \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 \u044d\u043a\u0441\u043f\u0435\u0440\u0442\u0430\u043c\u0438 \u0432 CI. \u042d\u0442\u043e\u0442 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044e \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442 \u0434\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u043f\u043e\u0438\u0441\u043a\u0430 \u0441\u0435\u043a\u0440\u0435\u0442\u043d\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043f\u0440\u0438 \u044d\u0442\u043e\u043c \u043b\u0443\u0447\u0448\u0438\u0435 \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0438 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0439, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/blob\/master\/lib\/gitlab\/ci\/templates\/Security\/SAST.gitlab-ci.yml\" rel=\"nofollow noopener noreferrer\"><code>\u0448\u0430\u0431\u043b\u043e\u043d SAST.gitlab-ci.yml<\/code> template<\/a> \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c GitLab. \u0418\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442 \u043c\u043e\u0436\u0435\u0442 \u0441\u043e\u0437\u0434\u0430\u0442\u044c \u043d\u043e\u0432\u044b\u0439 \u0444\u0430\u0439\u043b <code>.gitlab-ci.yml<\/code>, \u0435\u0441\u043b\u0438 \u043e\u043d \u043d\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442, \u0438\u043b\u0438 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u043f\u0440\u043e\u0441\u0442\u044b\u0435 \u0444\u0430\u0439\u043b\u044b GitLab CI, \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0435\u0433\u043e \u0441 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c\u0438, \u0432 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0443\u0436\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043d GitLab CI.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/e1e\/3f4\/11c\/e1e3f411cac7292624d38b6496b8f828.png\" alt=\"Configuration tool for Secret Detection\"><\/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 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/4496\" 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=\"podderzhka-skanirovaniya-binarnyh-faylov-dlya-mobilnyh-prilozheniy\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\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>\u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 \u0440\u0435\u043b\u0438\u0437\u0430 GitLab 13.5 \u043c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 <a href=\"https:\/\/habr.com\/ru\/post\/527208\/#podderzhka-sast-dlya-mobilnyh-prilozheniy-pod-ios-i-android\">\u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \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 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u043f\u043e\u0434 Android \u0438 iOS<\/a>. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e \u043d\u0430\u0448\u0435 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 SAST \u0434\u043b\u044f \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u043b\u043e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 Xcode \u0438 \u0444\u0430\u0439\u043b\u043e\u0432 \u043c\u0430\u043d\u0438\u0444\u0435\u0441\u0442\u0430 Android. \u0421 \u044d\u0442\u0438\u043c \u0440\u0435\u043b\u0438\u0437\u043e\u043c \u0438 \u043e\u0442\u043b\u0438\u0447\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u043e\u0439 \u0447\u043b\u0435\u043d\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 <a href=\"https:\/\/gitlab.com\/proletarius101\" rel=\"nofollow noopener noreferrer\">@proletarius101<\/a> GitLab SAST \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 .ipa (iOS) \u0438 .apk (Android), \u0447\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u0442\u044c \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u0441\u043e\u0431\u0440\u0430\u043d\u043d\u044b\u0445 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u042d\u0442\u043e \u0434\u0430\u0451\u0442 \u043a\u043e\u043c\u0430\u043d\u0434\u0430\u043c \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u043e\u0439 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u0433\u0438\u0431\u043a\u043e\u0441\u0442\u0438 \u0432 \u0441\u0431\u043e\u0440\u043a\u0435 \u0438 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0434\u043b\u044f \u043f\u043e\u0438\u0441\u043a\u0430 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GitLab SAST. \u0418\u043c\u0435\u0439\u0442\u0435 \u0432 \u0432\u0438\u0434\u0443, \u0447\u0442\u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0432\u0441\u0435 \u0435\u0449\u0451 \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u0444\u0438\u0447\u0435\u0439, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0434\u043b\u044f \u0435\u0433\u043e \u0440\u0430\u0431\u043e\u0442\u044b \u043d\u0443\u0436\u043d\u043e \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0435 CI \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/#experimental-features\" rel=\"nofollow noopener noreferrer\">\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0444\u0438\u0447<\/a>. \u041c\u044b \u0441\u0434\u0435\u043b\u0430\u0435\u043c \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u043e\u0431\u0449\u0435\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u043c, \u0430 \u043d\u0435 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u043c, <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/5977\" rel=\"nofollow noopener noreferrer\">\u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0435\u043c \u0431\u0443\u0434\u0443\u0449\u0435\u043c<\/a>.<\/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\/269915\" 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=\"semgrep--analizator-sast-dlya-javascript-typescript-i-python\">Semgrep \u2014 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 SAST \u0434\u043b\u044f JavaScript, TypeScript \u0438 Python<\/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>\u0412 GitLab 13.11 \u043c\u044b <a href=\"https:\/\/habr.com\/ru\/post\/557168\/#eksperimentalnye-analizatory-semgrep-dlya-python-javascript-i-typescript\">\u043e\u0431\u044a\u044f\u0432\u0438\u043b\u0438 \u043e\u0431 \u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435<\/a> <a href=\"https:\/\/semgrep.dev\/\" rel=\"nofollow noopener noreferrer\">Semgrep<\/a> \u2014 \u043d\u043e\u0432\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 SAST \u0434\u043b\u044f JavaScript, TypeScript \u0438 Python. \u041c\u044b \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043d\u0430\u0434 \u044d\u0442\u0438\u043c \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u043e\u043c [\u0432 \u0441\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u0447\u0435\u0441\u0442\u0432\u0435]<a href=\"https:\/\/habr.com\/ru\/post\/557168\/#gitlab--semgrep-obnovlyaem-sast-i-zakladyvaem-osnovu-na-buduschee\">https:\/\/habr.com\/ru\/post\/557168\/#gitlab&#8212;semgrep-obnovlyaem-sast-i-zakladyvaem-osnovu-na-buduschee<\/a>) \u0441 <a href=\"https:\/\/r2c.dev\/\" rel=\"nofollow noopener noreferrer\">r2c<\/a>, \u043a\u043e\u043c\u0430\u043d\u0434\u043e\u0439, \u0440\u0430\u0437\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u044e\u0449\u0435\u0439 Semgrep \u0438 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u044e\u0449\u0435\u0439 \u043d\u0430\u0448\u0443 \u043c\u0438\u0441\u0441\u0438\u044e \u2014 \u043f\u043e\u043c\u043e\u0433\u0430\u0442\u044c \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c \u043f\u0438\u0441\u0430\u0442\u044c \u0431\u043e\u043b\u0435\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u044b\u0439 \u043a\u043e\u0434. \u041f\u043e\u0441\u043b\u0435 \u043e\u0431\u0448\u0438\u0440\u043d\u043e\u0433\u043e \u0431\u0435\u0442\u0430-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f, \u0432 \u043a\u043e\u0442\u043e\u0440\u043e\u043c \u0441\u043e\u0442\u043d\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043e\u043f\u0440\u043e\u0431\u043e\u0432\u0430\u043b\u0438 \u043d\u0430\u0448 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/#experimental-features\" rel=\"nofollow noopener noreferrer\">\u044d\u043a\u0441\u043f\u0435\u0440\u0438\u043c\u0435\u043d\u0442\u0430\u043b\u044c\u043d\u044b\u0439 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440<\/a>, \u043c\u044b \u0433\u043e\u0442\u043e\u0432\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u0435\u0440\u0435\u0445\u043e\u0434 \u043d\u0430 Semgrep.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0432\u0435\u0440\u0441\u0438\u0438 13.12 \u043c\u044b \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u043c \u043d\u0430\u0448 \u0448\u0430\u0431\u043b\u043e\u043d CI <code>SAST.gitlab-ci.yml<\/code> \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u044d\u0442\u043e\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430 \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u043d\u0430\u0448\u0438\u043c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u043c \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c JavaScript \u0438 TypeScript \u2014 ESlint. \u0412 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u043f\u043e\u043b\u043d\u043e\u0441\u0442\u044c\u044e \u043e\u0442\u043a\u043b\u044e\u0447\u0438\u043c ESLint, \u043d\u043e \u043f\u043e\u043a\u0430 \u043e\u043d \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u0441 Semgrep. \u041c\u044b \u0434\u0435\u0434\u0443\u043f\u043b\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043b\u0438 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u0432\u044b \u043d\u0435 \u0437\u0430\u043c\u0435\u0442\u0438\u0442\u0435 \u043d\u0438\u043a\u0430\u043a\u043e\u0439 \u0440\u0430\u0437\u043d\u0438\u0446\u044b \u0432 \u0440\u0430\u0431\u043e\u0442\u0435 \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430. \u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u043d\u0430\u0448 <code>SAST.gitlab-ci.yml<\/code>, \u0432\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u043d\u0438\u0447\u0435\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u043c Semgrep, \u043e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 \u0441\u0430\u043c\u043e\u0441\u0442\u043e\u044f\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0441\u0432\u043e\u0435\u0439 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0435\u0439 CI SAST, <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/blob\/master\/lib\/gitlab\/ci\/templates\/Security\/SAST.gitlab-ci.yml#L275\" rel=\"nofollow noopener noreferrer\">\u0432\u0430\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044e CI<\/a>.<\/p>\n<p>  <\/p>\n<p>\u0418 GitLab, \u0438 r2c \u0441 \u044d\u043d\u0442\u0443\u0437\u0438\u0430\u0437\u043c\u043e\u043c \u0441\u043c\u043e\u0442\u0440\u044f\u0442 \u043d\u0430 \u0431\u0443\u0434\u0443\u0449\u0435\u0435 \u044d\u0442\u043e\u0433\u043e \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442 \u0431\u044b\u0441\u0442\u0440\u043e\u0435 \u0438 \u043e\u0431\u0448\u0438\u0440\u043d\u043e\u0435 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041c\u044b \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0442\u044c \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440 Semgrep \u0437\u0430 \u0441\u0447\u0451\u0442 \u043d\u043e\u0432\u044b\u0445 \u043f\u0440\u0430\u0432\u0438\u043b \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 \u0434\u043b\u044f \u0434\u0440\u0443\u0433\u0438\u0445 \u044f\u0437\u044b\u043a\u043e\u0432. \u041c\u044b \u0441\u043e\u0437\u0434\u0430\u043b\u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/330578\" rel=\"nofollow noopener noreferrer\">\u0442\u0438\u043a\u0435\u0442 \u0434\u043b\u044f \u043e\u0431\u0440\u0430\u0442\u043d\u043e\u0439 \u0441\u0432\u044f\u0437\u0438<\/a>, \u0433\u0434\u0435 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u0434\u0435\u043b\u0438\u0442\u044c\u0441\u044f \u0441\u0432\u043e\u0438\u043c \u043e\u043f\u044b\u0442\u043e\u043c \u0438\u043b\u0438 \u0437\u0430\u0434\u0430\u0442\u044c \u0432\u043e\u043f\u0440\u043e\u0441\u044b. <\/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\/groups\/gitlab-org\/-\/epics\/5245\" 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=\"preduprezhdenie-polzovatelya-pri-udalenii-ispolzuemyh-klyuchey-razvyortyvaniya\">\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0445 \u043a\u043b\u044e\u0447\u0435\u0439 \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>\u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0443\u044e \u043c\u0435\u0440\u0443 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u2014 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043f\u0440\u0438 \u043f\u043e\u043f\u044b\u0442\u043a\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043a\u043b\u044e\u0447\u0435\u0439 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u0435\u0439\u0447\u0430\u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442\u0441\u044f. \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u0441\u043b\u0443\u0447\u0430\u0439\u043d\u044b\u0435 \u0441\u0431\u043e\u0438 \u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u043c \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/056\/c62\/70a\/056c6270a013a297f2f91f2390c10995.png\" alt=\"Deleting deploy keys will inform the user if in use\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/deploy_keys\/#project-deploy-keys\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043a\u043b\u044e\u0447\u0430\u043c \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/231474\" 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=\"fonovaya-migraciya-gitlab-pages\">\u0424\u043e\u043d\u043e\u0432\u0430\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f GitLab Pages<\/h3>\n<p>  <\/p>\n<p>(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\u043b\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0438 \u043a \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u044e GitLab Pages \u043d\u0430 \u043d\u043e\u0432\u0443\u044e <a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/pages\/#zip-storage\" rel=\"nofollow noopener noreferrer\">\u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0443 ZIP-\u0430\u0440\u0445\u0438\u0432\u043e\u0432<\/a> \u0432 14.0, \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0444\u043e\u043d\u043e\u0432\u0443\u044e \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044e \u0432 13.11. \u042d\u0442\u0430 \u0444\u043e\u043d\u043e\u0432\u0430\u044f \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0430 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0441\u0430\u0439\u0442\u044b \u0432 \u0444\u043e\u0440\u043c\u0430\u0442 \u043d\u043e\u0432\u043e\u0433\u043e \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430. \u041e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u043d\u0430 \u043e\u0447\u0435\u043d\u044c \u043d\u0438\u0437\u043a\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u0438, \u0447\u0442\u043e\u0431\u044b \u0438\u0437\u0431\u0435\u0436\u0430\u0442\u044c \u0441\u0435\u0440\u044c\u0451\u0437\u043d\u043e\u0433\u043e \u0441\u043d\u0438\u0436\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430. \u0412 GitLab 13.12 \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u044d\u0442\u0443 \u0436\u0435 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044e \u0441 \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0441\u043a\u043e\u0440\u043e\u0441\u0442\u044c\u044e. \u0412\u044b \u0442\u0430\u043a\u0436\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 <a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/pages\/#migrate-legacy-storage-to-zip-storage\" rel=\"nofollow noopener noreferrer\">\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044e \u0432\u0440\u0443\u0447\u043d\u0443\u044e<\/a>. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u0432\u0430\u043c \u0432\u0435\u0440\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438, \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0442\u044c \u043e\u0448\u0438\u0431\u043a\u0438 \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0438\u0445.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/pages\/#zip-storage\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0435 ZIP-\u0430\u0440\u0445\u0438\u0432\u043e\u0432<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/3910\" 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=\"klyuchevoe-slovo-release-podderzhivaet-ssylki-na-materialy-reliza\">\u041a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>release:<\/code> \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0441\u0441\u044b\u043b\u043a\u0438 \u043d\u0430 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0440\u0435\u043b\u0438\u0437\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\/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>\u041d\u0430\u0447\u0438\u043d\u0430\u044f \u0441 GitLab 13.2 \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0440\u0435\u043b\u0438\u0437\u0430 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>release:<\/code> \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 <a href=\"https:\/\/gitlab.com\/gitlab-org\/release-cli\/-\/tree\/master\/docs\" rel=\"nofollow noopener noreferrer\">release-cli<\/a>. \u0422\u0435\u043f\u0435\u0440\u044c \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>release:<\/code> \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0440\u0435\u043b\u0438\u0437\u0430, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0435\u043b\u0438\u0437\u044b \u0438 \u043f\u0440\u0438\u043a\u0440\u0435\u043f\u043b\u044f\u0442\u044c \u043a \u043d\u0438\u043c \u0444\u0430\u0439\u043b\u044b \u0432 \u043e\u0434\u043d\u043e\u043c \u0437\u0430\u0434\u0430\u043d\u0438\u0438 <code>.gitlab-ci.yml<\/code>.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/f1c\/d3a\/6fb\/f1cd3a6fb8ece11b38187875a2f58616.png\" alt=\"release: keyword supports asset links\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/yaml\/README.html#releaseassetslinks\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u044e \u0441\u0441\u044b\u043b\u043e\u043a \u043d\u0430 \u043c\u0430\u0442\u0435\u0440\u0438\u0430\u043b\u044b \u0440\u0435\u043b\u0438\u0437\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/271454\" 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=\"sohranite-kontrol-nad-upravlyaemymi-gitlab-prilozheniyami\">\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u043c\u0438 GitLab \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\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\/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>\u041a\u0430\u043a \u043c\u044b \u0441\u043e\u043e\u0431\u0449\u0430\u043b\u0438 \u0440\u0430\u043d\u0435\u0435, \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u043f\u043e\u0434 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c GitLab \u0441 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u043e\u0439 \u0432 \u043e\u0434\u0438\u043d \u043a\u043b\u0438\u043a \u043f\u0435\u0440\u0435\u0441\u0442\u0430\u043b\u0438 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044c\u0441\u044f \u0432 GitLab 13.9 \u0438 \u0431\u0443\u0434\u0443\u0442 \u043e\u043a\u043e\u043d\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u044b \u0438\u0437 GitLab \u0432 \u0432\u0435\u0440\u0441\u0438\u0438 14.0, \u0440\u0435\u043b\u0438\u0437 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d \u043d\u0430 22 \u0438\u044e\u043d\u044f. \u0417\u0430\u0433\u043b\u044f\u043d\u0438\u0442\u0435 \u0432 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044e, \u0447\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c, \u043a\u0430\u043a \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u043d\u0430\u0434 \u0432\u0430\u0448\u0438\u043c\u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u043c\u0438 \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0445 \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u043e.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/clusters\/applications.html#take-ownership-of-your-gitlab-managed-apps\" 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 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 GitLab \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/327803\" 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=\"preduprezhdenie-administratora-pri-udalenii-dezhurnogo-polzovatelya\">\u041f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u043f\u0440\u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0438 \u0434\u0435\u0436\u0443\u0440\u043d\u043e\u0433\u043e \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\/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>\u0420\u0430\u0431\u043e\u0442\u0430 \u0434\u0435\u0436\u0443\u0440\u043d\u043e\u0433\u043e \u043a\u0440\u0438\u0442\u0438\u0447\u043d\u043e \u0432\u0430\u0436\u043d\u0430 \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043e\u0432. \u041a\u043e\u0433\u0434\u0430 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440 \u0443\u0434\u0430\u043b\u044f\u0435\u0442 \u0434\u0435\u0436\u0443\u0440\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438\u0437 \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0433\u0440\u0443\u043f\u043f\u044b \u0438\u043b\u0438 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430 GitLab, \u044d\u0442\u043e \u0432\u043b\u0438\u044f\u0435\u0442 \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a \u0434\u0435\u0436\u0443\u0440\u0441\u0442\u0432. \u0422\u0435\u043f\u0435\u0440\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u0431\u0443\u0434\u0443\u0442 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0435\u0440\u0435\u0434 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0435\u0441\u0442\u044c \u0432 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u0434\u0435\u0436\u0443\u0440\u0441\u0442\u0432.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/ed6\/c44\/ebb\/ed6c44ebb97446a4e4427ea1169842f7.png\" alt=\"Warn administrator when removing an on-call user\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/operations\/incident_management\/oncall_schedules.html#removal-or-deletion-of-on-call-user\" 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 \u0434\u0435\u0436\u0443\u0440\u0441\u0442\u0432<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/323629\" 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=\"geo-podderzhivaet-vysokuyu-dostupnost-postgresql-beta-versiya\">Geo \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0432\u044b\u0441\u043e\u043a\u0443\u044e \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c PostgreSQL (\u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\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><a href=\"https:\/\/github.com\/zalando\/patroni\" rel=\"nofollow noopener noreferrer\">Patroni<\/a> \u2014 \u044d\u0442\u043e \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 PostgreSQL, \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u0442\u0430\u043a\u0436\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0432\u044b\u0441\u043e\u043a\u043e\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0439 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u044b\u0439 \u043a\u043b\u0430\u0441\u0442\u0435\u0440 PostgreSQL \u043d\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u0439 \u043d\u043e\u0434\u0435 Geo. \u042d\u0442\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u0430\u044f \u043d\u043e\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430\u043c \u0437\u0435\u0440\u043a\u0430\u043b\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u043e\u0434 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0430 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0439 \u0438 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u043e\u0439 \u043d\u043e\u0434\u0430\u0445. \u042d\u0442\u043e \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043f\u043e\u0441\u043b\u0435 \u0441\u0431\u043e\u044f \u043d\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043d\u043e\u0434 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438.<\/p>\n<p>  <\/p>\n<p>Geo \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0432\u0430\u0435\u0442 <a href=\"https:\/\/about.gitlab.com\/handbook\/product\/gitlab-the-product\/#beta\" rel=\"nofollow noopener noreferrer\">\u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u044e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438<\/a> \u0432\u044b\u0441\u043e\u043a\u043e\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u044b\u0445 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0439 PostgreSQL \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c <a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/postgresql\/replication_and_failover.html#patroni\" rel=\"nofollow noopener noreferrer\">Patroni<\/a>. \u041c\u044b \u0443\u043b\u0443\u0447\u0448\u0438\u043b\u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/omnibus-gitlab\/-\/issues\/5790\" rel=\"nofollow noopener noreferrer\">\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u043e\u0434 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Patroni<\/a>, \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/omnibus-gitlab\/-\/issues\/5788\" rel=\"nofollow noopener noreferrer\">\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0441\u043b\u0435 \u0441\u043c\u0435\u043d\u044b \u043b\u0438\u0434\u0435\u0440\u0430 \u043d\u0430 \u043f\u0435\u0440\u0432\u0438\u0447\u043d\u043e\u0439 \u043d\u043e\u0434\u0435<\/a>, \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u043b\u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/omnibus-gitlab\/-\/issues\/5959\" rel=\"nofollow noopener noreferrer\">\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0441 \u043d\u0430\u0447\u0430\u043b\u044c\u043d\u043e\u0439 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u043e\u0439<\/a> \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u043b\u0438 \u0440\u044f\u0434 \u043e\u0448\u0438\u0431\u043e\u043a.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/geo\/setup\/database.html#patroni-support\" 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\u043a\u0435 Patroni<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/4799\" 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=\"geo-verificiruet-replicirovannye-fayly-sostoyaniya-terraform\">Geo \u0432\u0435\u0440\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u0440\u0435\u043f\u043b\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f Terraform<\/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>Geo \u0442\u0435\u043f\u0435\u0440\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0435\u0440\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0445 \u0440\u0435\u043f\u043b\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 <a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/terraform_state.html\" rel=\"nofollow noopener noreferrer\">\u0444\u0430\u0439\u043b\u043e\u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f Terraform<\/a>. \u042d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043f\u0430\u043a\u0435\u0442\u044b \u043d\u0435 \u0431\u044b\u043b\u0438 \u043f\u043e\u0432\u0440\u0435\u0436\u0434\u0435\u043d\u044b \u043f\u0440\u0438 \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u0438\u043b\u0438 \u043f\u0435\u0440\u0435\u0434\u0430\u0447\u0435. \u0415\u0441\u043b\u0438 Geo \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043a\u0430\u043a \u0447\u0430\u0441\u0442\u044c \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u044d\u0442\u043e \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442\u044c \u043f\u043e\u0442\u0435\u0440\u044e \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/geo\/replication\/datatypes.html#data-types\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 Geo<\/a>, <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/322886\" 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\/5285\" 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=\"soglasie-na-federativnoe-obuchenie-kogort-floc-na-urovne-instansa\">\u0421\u043e\u0433\u043b\u0430\u0441\u0438\u0435 \u043d\u0430 \u0444\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0433\u043e\u0440\u0442 (FLoC) \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430<\/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><a href=\"https:\/\/en.wikipedia.org\/wiki\/Federated_Learning_of_Cohorts\" rel=\"nofollow noopener noreferrer\">\u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u0433\u043e\u0440\u0442 (FLoC)<\/a> \u2014 \u044d\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0432\u0435\u0431-\u0442\u0440\u0435\u043a\u0438\u043d\u0433\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0434\u043e\u043b\u0436\u0435\u043d \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 cookie \u043e\u0442 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432. \u041e\u043d \u0437\u0430\u043a\u043b\u044e\u0447\u0430\u0435\u0442\u0441\u044f \u0432 \u0433\u0440\u0443\u043f\u043f\u0438\u0440\u043e\u0432\u043a\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432 \u043a\u043e\u0433\u043e\u0440\u0442\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0445 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043f\u043e\u0438\u0441\u043a\u0430 \u0441 \u0446\u0435\u043b\u044c\u044e \u0440\u0435\u043a\u043b\u0430\u043c\u044b \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0438\u0445 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043e\u0432. FLoC \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0432 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0435 Chrome \u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0440\u0435\u0433\u0438\u043e\u043d\u0430\u0445.<\/p>\n<p>  <\/p>\n<p>\u0412 GitLab 13.12 FLoC \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0430 GitLab. \u0415\u0441\u043b\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430 \u0437\u0430\u0445\u043e\u0442\u044f\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0434\u043b\u044f \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f FLoC, \u043e\u043d\u0438 \u043c\u043e\u0433\u0443\u0442 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u044d\u0442\u0443 \u0444\u0438\u0447\u0443 \u0432 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u0445 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/admin_area\/settings\/floc.html\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e FLoC<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/327904\" 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=\"prinuditelnoe-otlozhennoe-udalenie-proekta-dlya-vseh-podgrupp\">\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \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>\u0422\u0435\u043f\u0435\u0440\u044c \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u044b \u0433\u0440\u0443\u043f\u043f \u043c\u043e\u0433\u0443\u0442 \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c \u0438 \u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u0438\u0442\u044c <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/group\/#enable-delayed-project-removal\" rel=\"nofollow noopener noreferrer\">\u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a> \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0432 \u0441\u0432\u043e\u0435\u0439 \u0433\u0440\u0443\u043f\u043f\u0435. \u041e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u0437\u0430\u0449\u0438\u0449\u0430\u0435\u0442 \u0432\u0430\u0448\u0438 \u0434\u0430\u043d\u043d\u044b\u0435, \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u044f \u0443\u0434\u0430\u043b\u0451\u043d\u043d\u044b\u0435 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u0432 \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u0435 \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0447\u0442\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f, \u0442\u0430\u043a \u0447\u0442\u043e \u043f\u0440\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u0438 \u0438\u0445 \u043c\u043e\u0436\u043d\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c. \u0412 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0440\u0435\u043b\u0438\u0437\u0430\u0445 \u043c\u044b \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u043c \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044c \u043d\u0430\u0448\u0443 \u043c\u043e\u0434\u0435\u043b\u044c \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0438 \u0440\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u043d\u0430\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043d\u0430\u0441\u0442\u0440\u043e\u0435\u043a \u0432 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u0430\u0445 \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445. \u041d\u0430\u0448\u0430 \u043d\u043e\u0432\u0430\u044f \u043c\u043e\u0434\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u0434\u0430\u0451\u0442 \u0432\u043b\u0430\u0434\u0435\u043b\u044c\u0446\u0430\u043c \u0433\u0440\u0443\u043f\u043f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0438\u0445 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f \u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u0438 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0442 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u044f\u043c \u0438\u0445 \u043e\u0440\u0433\u0430\u043d\u0438\u0437\u0430\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/087\/67f\/099\/08767f099f14e8a15353e7f9b07616cd.png\" alt=\"Enforce delayed project removal for all subgroups\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/group\/#enable-delayed-project-removal\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043e\u0442\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u043c\u0443 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044e \u043f\u0440\u043e\u0435\u043a\u0442\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/324097\" 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=\"kolichestvo-grupp-polzovateley-teper-otobrazhaetsya-v-paneli-administratora\">\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0433\u0440\u0443\u043f\u043f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430<\/h3>\n<p>  <\/p>\n<p>(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 \u0441\u043f\u0438\u0441\u043a\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u043d\u0430 \u043f\u0430\u043d\u0435\u043b\u0438 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 \u0442\u0435\u043f\u0435\u0440\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u0435\u0442\u0441\u044f \u043e\u0431\u0449\u0435\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0433\u0440\u0443\u043f\u043f, \u043a \u043a\u043e\u0442\u043e\u0440\u044b\u043c \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0435\u0441\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f. \u041f\u0440\u0438 \u043f\u043e\u0434\u0441\u0447\u0451\u0442\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u044e\u0442\u0441\u044f \u0447\u043b\u0435\u043d\u0441\u0442\u0432\u0430 \u043a\u0430\u043a \u0432 \u0433\u0440\u0443\u043f\u043f\u0430\u0445, \u0442\u0430\u043a \u0438 \u0432 \u043f\u043e\u0434\u0433\u0440\u0443\u043f\u043f\u0430\u0445.<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0432\u0430\u0436\u043d\u043e\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0441\u043f\u0438\u0441\u043a\u0430 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u0442\u0430\u043a \u043a\u0430\u043a \u0442\u0435\u043f\u0435\u0440\u044c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u0441\u043c\u043e\u0433\u0443\u0442 \u043b\u0435\u0433\u043a\u043e \u0443\u0432\u0438\u0434\u0435\u0442\u044c, \u043a\u0430\u043a\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u0435\u0441\u0442\u044c \u0443 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u0430, \u0438 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0438\u0442\u044c, \u043a\u043e\u0433\u0434\u0430 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0434\u043f\u0440\u0438\u043d\u044f\u0442\u044c \u043a\u0430\u043a\u0438\u0435-\u0442\u043e \u043c\u0435\u0440\u044b. \u041d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \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, \u0447\u0442\u043e\u0431\u044b \u0443\u0431\u0435\u0434\u0438\u0442\u044c\u0441\u044f, \u0447\u0442\u043e \u0434\u0435\u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0443\u0447\u0451\u0442\u043d\u044b\u0435 \u0437\u0430\u043f\u0438\u0441\u0438 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u0438\u043c\u0435\u044e\u0442 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u043a\u0430\u043a\u0438\u043c-\u043b\u0438\u0431\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u043c \u0438\u043b\u0438 \u0433\u0440\u0443\u043f\u043f\u0430\u043c \u0432 GitLab.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/3c9\/128\/b73\/3c9128b7322917aba745c5cde62c3686.png\" alt=\"Users&#039; group counts now displayed in Admin Area\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/admin_area\/#administering-users\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/groups\/gitlab-org\/-\/epics\/4432\" 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=\"prosmotr-srednego-vremeni-vypolneniya-elementov-rabochego-processa\">\u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0441\u0440\u0435\u0434\u043d\u0435\u0433\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\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>\u0413\u0440\u0430\u0444\u0438\u043a \u00ab\u0434\u043d\u0435\u0439 \u0434\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f\u00bb \u0432 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0435 \u0446\u0438\u043a\u043b\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0440\u0430\u043d\u0435\u0435 \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u043b \u0441\u0443\u043c\u043c\u0443 \u0434\u043d\u0435\u0439, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0434\u043b\u044f \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u044d\u043b\u0435\u043c\u0435\u043d\u0442\u043e\u0432 \u0440\u0430\u0431\u043e\u0447\u0435\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u044b\u043b\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u044b \u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0439 \u0434\u0435\u043d\u044c. \u0415\u0441\u043b\u0438 \u0432 \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u0434\u0435\u043d\u044c \u0431\u044b\u043b\u043e \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u043e \u043d\u0435\u043e\u0431\u044b\u0447\u043d\u043e \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0437\u0430\u0434\u0430\u043d\u0438\u0439, \u043d\u0430 \u0433\u0440\u0430\u0444\u0438\u043a\u0435 \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u043e\u0441\u044c \u0431\u043e\u043b\u044c\u0448\u043e\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435 \u0437\u0430 \u044d\u0442\u043e\u0442 \u0434\u0435\u043d\u044c, \u0447\u0442\u043e \u043d\u0435 \u0438\u043c\u0435\u043b\u043e \u043e\u0441\u043e\u0431\u043e\u0433\u043e \u0441\u043c\u044b\u0441\u043b\u0430.<\/p>\n<p>  <\/p>\n<p>\u0412\u043c\u0435\u0441\u0442\u043e \u044d\u0442\u043e\u0433\u043e \u0442\u0435\u043f\u0435\u0440\u044c \u0433\u0440\u0430\u0444\u0438\u043a \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442 \u0441\u0440\u0435\u0434\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f \u0434\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f, \u0447\u0442\u043e \u043f\u043e\u0434\u0447\u0451\u0440\u043a\u0438\u0432\u0430\u0435\u0442 \u0437\u043d\u0430\u0447\u0438\u043c\u044b\u0435 \u0442\u0435\u043d\u0434\u0435\u043d\u0446\u0438\u0438.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/1a7\/f08\/a0f\/1a7f08a0f993a942d501fe92610a650f.png\" alt=\"View average time to complete workflow items\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/group\/value_stream_analytics\/#days-to-completion-chart\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0433\u0440\u0430\u0444\u0438\u043a\u0443 \u00ab\u0434\u043d\u0435\u0439 \u0434\u043e \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u044f\u00bb<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/262070\" 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=\"otchyoty-ob-otslezhivanii-vremeni-dlya-tiketov-i-merzh-rekvestov\">\u041e\u0442\u0447\u0451\u0442\u044b \u043e\u0431 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u0442\u0438\u043a\u0435\u0442\u043e\u0432 \u0438 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\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\/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>\u0423\u0447\u0430\u0441\u0442\u043d\u0438\u043a\u0438 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u0432\u0440\u0435\u043c\u044f, \u043f\u043e\u0442\u0440\u0430\u0447\u0435\u043d\u043d\u043e\u0435 \u043d\u0430 \u0442\u0438\u043a\u0435\u0442 \u0438\u043b\u0438 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442, \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f &quot;\/spend&quot;, \u043d\u043e \u0440\u0430\u043d\u0435\u0435 \u0431\u044b\u043b\u043e \u043d\u0435\u043b\u0435\u0433\u043a\u043e \u043f\u043e\u043d\u044f\u0442\u044c, \u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043f\u043e\u0442\u0440\u0430\u0442\u0438\u043b \u043a\u0430\u0436\u0434\u044b\u0439 \u0447\u0435\u043b\u043e\u0432\u0435\u043a. \u0427\u0442\u043e\u0431\u044b \u0443\u043b\u0443\u0447\u0448\u0438\u0442\u044c \u043f\u0440\u043e\u0437\u0440\u0430\u0447\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0447\u0451\u0442\u043e\u0432 \u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u0430\u0445 \u0438 \u0433\u0440\u0443\u043f\u043f\u0430\u0445 \u0442\u0435\u043f\u0435\u0440\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u043e\u0442\u0447\u0451\u0442 \u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0434\u043b\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0442\u0438\u043a\u0435\u0442\u0430 \u0438\u043b\u0438 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0430. \u041f\u043e\u0441\u043b\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a \u0432\u044b \u043f\u043e\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0438 \u043d\u0430\u0434 \u0442\u0438\u043a\u0435\u0442\u043e\u043c, \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u043e\u0442\u0447\u0451\u0442 <strong>\u041e\u0431 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u0438 \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/strong> (<strong>Time tracking report<\/strong>) \u043d\u0430 \u0431\u043e\u043a\u043e\u0432\u043e\u0439 \u043f\u0430\u043d\u0435\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u0437\u0430\u043f\u0438\u0441\u0435\u0439, \u043e\u0442\u043d\u043e\u0441\u044f\u0449\u0438\u0445\u0441\u044f \u043a \u044d\u0442\u043e\u043c\u0443 \u0442\u0438\u043a\u0435\u0442\u0443 \u0438\u043b\u0438 \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0443. \u0421\u043f\u0430\u0441\u0438\u0431\u043e <a href=\"https:\/\/gitlab.com\/leetickett\" rel=\"nofollow noopener noreferrer\">@leetickett<\/a> \u0437\u0430 \u0432\u043a\u043b\u0430\u0434!<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/e6f\/114\/1f0\/e6f1141f08244c8336239dbbc3aa2b4b.gif\" alt=\"Time tracking reports for issues and merge requests\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/time_tracking.html#view-a-time-tracking-report\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044e \u0432\u0440\u0435\u043c\u0435\u043d\u0438<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/271409\" 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=\"blokirovka-poslednego-artefakta-konveyera-dlya-predotvrascheniya-ego-udaleniya\">\u0411\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043a\u0430 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0430 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0434\u043b\u044f \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0449\u0435\u043d\u0438\u044f \u0435\u0433\u043e \u0443\u0434\u0430\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\/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>\u0422\u0435\u043f\u0435\u0440\u044c GitLab \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0431\u043b\u043e\u043a\u0438\u0440\u0443\u0435\u0442 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0432 \u043b\u044e\u0431\u043e\u0439 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0439 \u0432\u0435\u0442\u043a\u0435, \u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442\u0435 \u0438\u043b\u0438 \u0442\u0435\u0433\u0435. \u042d\u0442\u043e \u043f\u0440\u0435\u0434\u043e\u0442\u0432\u0440\u0430\u0442\u0438\u0442 \u0435\u0433\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u043e \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u0435\u0441\u043b\u0438 \u043e\u043d \u0432\u0441\u0435 \u0435\u0449\u0451 \u043e\u0441\u0442\u0430\u0451\u0442\u0441\u044f \u0441\u0430\u043c\u044b\u043c \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u043c \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u043c.<\/p>\n<p>  <\/p>\n<p>\u042d\u0442\u043e \u0443\u043f\u0440\u043e\u0449\u0430\u0435\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0431\u043e\u043b\u0435\u0435 \u0436\u0451\u0441\u0442\u043a\u0438\u0445 \u043f\u0440\u0430\u0432\u0438\u043b \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044f \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0434\u043b\u044f \u043e\u0447\u0438\u0441\u0442\u043a\u0438 \u0441\u0442\u0430\u0440\u044b\u0445 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432, \u043f\u043e\u043c\u043e\u0433\u0430\u0435\u0442 \u0441\u043d\u0438\u0437\u0438\u0442\u044c \u043f\u043e\u0442\u0440\u0435\u0431\u043b\u0435\u043d\u0438\u0435 \u0434\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u043f\u0440\u043e\u0441\u0442\u0440\u0430\u043d\u0441\u0442\u0432\u0430 \u0438 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u0443 \u0432\u0430\u0441 \u0432\u0441\u0435\u0433\u0434\u0430 \u0431\u0443\u0434\u0435\u0442 \u043a\u043e\u043f\u0438\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u0430 \u0438\u0437 \u0432\u0430\u0448\u0435\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430.<\/p>\n<p>  <\/p>\n<p>\u0410\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u044b, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/merge_requests\/test_coverage_visualization.html\" rel=\"nofollow noopener noreferrer\">\u0444\u0443\u043d\u043a\u0446\u0438\u0435\u0439 \u0432\u0438\u0437\u0443\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044f<\/a>, \u043d\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0442\u0441\u044f \u044f\u0432\u043d\u043e \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\u043c\u0438 \u0432 <code>.gitlab-ci.yml<\/code>.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/yaml\/README.html#artifactsexpire_in\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0438\u0441\u0442\u0435\u0447\u0435\u043d\u0438\u044e \u0441\u0440\u043e\u043a\u0430 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0430\u0440\u0442\u0435\u0444\u0430\u043a\u0442\u043e\u0432<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/321323\" 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-peremennyh-workflowrules-v-konveyere-cicd\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 &#8216;workflow:rules&#8217; \u0432 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0435 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>\u0420\u0430\u043d\u0435\u0435 \u0443 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0433\u043e \u0441\u043b\u043e\u0432\u0430 <code>rules<\/code> \u0431\u044b\u043b\u0430 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u0430\u044f \u043e\u0431\u043b\u0430\u0441\u0442\u044c \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u0438 \u043e\u043d\u043e \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u043b\u043e \u0442\u043e\u043b\u044c\u043a\u043e, \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043b\u0438 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0432 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440. <a href=\"https:\/\/habr.com\/ru\/post\/541688\/#podderzhka-peremennyh-dlya-pravil-konveyera\">\u0412 13.8<\/a>, \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 \u043a\u043b\u044e\u0447\u0435\u0432\u043e\u0435 \u0441\u043b\u043e\u0432\u043e <code>variables<\/code> \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 <code>rules<\/code> \u0434\u043b\u044f \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0438 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0432 \u0437\u0430\u0434\u0430\u043d\u0438\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0442\u043e\u0433\u043e, \u043a\u0430\u043a\u043e\u043c\u0443 \u043f\u0440\u0430\u0432\u0438\u043b\u0443 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u043b\u0438 \u044d\u0442\u0443 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u0434\u043e <code>workflow: rules<\/code>, \u0447\u0442\u043e\u0431\u044b \u0432\u044b \u043c\u043e\u0433\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u0442\u044c \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u0432\u0441\u0435\u0433\u043e \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430, \u0435\u0441\u043b\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u044f\u044e\u0442\u0441\u044f \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u044b\u0435 \u0443\u0441\u043b\u043e\u0432\u0438\u044f. \u042d\u0442\u043e \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0432\u0430\u043c \u0441\u0434\u0435\u043b\u0430\u0442\u044c \u0432\u0430\u0448\u0438 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u044b \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u0433\u0438\u0431\u043a\u0438\u043c\u0438.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/314\/65a\/63c\/31465a63cfcff60abfd9c5f090d47187.png\" alt=\"Support variables in CI\/CD pipeline &#039;workflow:rules&#039;\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/ci\/yaml\/#workflowrulesvariables\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u043c \u0432 CI\/CD<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/294232\" 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=\"udalenie-svyazannyh-faylov-paketa-cherez-api\">\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0430\u043a\u0435\u0442\u0430 \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\/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>\u0420\u0435\u0435\u0441\u0442\u0440 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 GitLab \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0441\u043e\u0432\u043c\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u0431\u0449\u0438\u0445 \u0444\u0430\u0439\u043b\u043e\u0432 \u043f\u0430\u043a\u0435\u0442\u043e\u0432. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0435\u043b\u0430\u0442\u044c \u044d\u0442\u043e \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u043c\u0435\u043d\u0435\u0434\u0436\u0435\u0440\u043e\u0432 \u043f\u0430\u043a\u0435\u0442\u043e\u0432, \u0442\u0430\u043a\u0438\u0445 \u043a\u0430\u043a Maven \u0438\u043b\u0438 npm. \u0415\u0441\u043b\u0438 \u044d\u0442\u043e \u0432\u0445\u043e\u0434\u0438\u0442 \u0432 \u0432\u0430\u0448 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 CI, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043e\u043f\u0443\u0431\u043b\u0438\u043a\u043e\u0432\u0430\u0442\u044c \u043c\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0432 \u0441\u0432\u043e\u0451\u043c \u0440\u0435\u0435\u0441\u0442\u0440\u0435. \u041a\u043e\u0433\u0434\u0430 \u0432\u044b \u043f\u0443\u0431\u043b\u0438\u043a\u0443\u0435\u0442\u0435 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u044c, \u043e\u043d\u0430 \u0441\u043e\u0437\u0434\u0430\u0451\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0444\u0430\u0439\u043b\u043e\u0432, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u0430\u0440\u0445\u0438\u0432 \u043f\u0430\u043a\u0435\u0442\u043e\u0432.<\/p>\n<p>  <\/p>\n<p>\u0414\u043e GitLab 13.12 \u0432 GitLab \u043d\u0435 \u0431\u044b\u043b\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0444\u0430\u0439\u043b\u044b \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430. \u0412\u044b \u043c\u043e\u0433\u043b\u0438 \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0432\u0435\u0441\u044c \u043f\u0430\u043a\u0435\u0442. \u042d\u0442\u0438 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b \u043c\u043e\u0433\u0443\u0442 \u0437\u0430\u0433\u0440\u043e\u043c\u043e\u0436\u0434\u0430\u0442\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\u043b\u0438 \u043f\u0440\u0438\u0432\u0435\u0441\u0442\u0438 \u043a \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0435 \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u043e\u0439 \u0438\u043b\u0438 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0435\u0439 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0438.<\/p>\n<p>  <\/p>\n<p>\u0412 GitLab 13.12 \u0442\u0435\u043f\u0435\u0440\u044c \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c API \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0445 \u0441 \u0434\u0430\u043d\u043d\u044b\u043c \u043f\u0430\u043a\u0435\u0442\u043e\u043c, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0441\u0430\u043c\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043b\u0435\u0433\u043a\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u043d\u043e\u0432\u0443\u044e \u043a\u043e\u043d\u0435\u0447\u043d\u0443\u044e \u0442\u043e\u0447\u043a\u0443 \u0432 \u0440\u0430\u0431\u043e\u0447\u0438\u0439 \u043f\u0440\u043e\u0446\u0435\u0441\u0441 CI \u0438 \u043d\u0430\u0447\u0430\u0442\u044c \u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0441\u0442\u0430\u0440\u044b\u0435 \u043d\u0435\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u043c\u044b\u0435 \u0444\u0430\u0439\u043b\u044b. \u0427\u0442\u043e\u0431\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u043c \u0435\u0449\u0451 \u043e\u0434\u0438\u043d \u0432\u0430\u0440\u0438\u0430\u043d\u0442 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0435\u0441\u0442\u0440\u043e\u043c, \u0432 \u0431\u0443\u0434\u0443\u0449\u0438\u0445 \u0440\u0435\u043b\u0438\u0437\u0430\u0445 \u043f\u043e\u044f\u0432\u0438\u0442\u0441\u044f \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/13537\" rel=\"nofollow noopener noreferrer\">\u0443\u0434\u0430\u043b\u044f\u0442\u044c \u0442\u0430\u043a\u0438\u0435 \u0444\u0430\u0439\u043b\u044b \u0438 \u0447\u0435\u0440\u0435\u0437 \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<\/a>.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/api\/packages.html#delete-a-package-file\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044e \u0444\u0430\u0439\u043b\u0430 \u0438\u0437 \u043f\u0430\u043a\u0435\u0442\u0430<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/32107\" 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=\"filtraciya-otchyota-ob-uyazvimostyah-proekta-po-imeni-postavschika\">\u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u043e\u0442\u0447\u0451\u0442\u0430 \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445 \u043f\u0440\u043e\u0435\u043a\u0442\u0430 \u043f\u043e \u0438\u043c\u0435\u043d\u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\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>GitLab \u0441\u0442\u0440\u0435\u043c\u0438\u0442\u0441\u044f \u0445\u043e\u0440\u043e\u0448\u043e \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0441 \u0434\u0440\u0443\u0433\u0438\u043c\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u043c\u0438, \u0438 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0442\u0443\u0442 \u043d\u0435 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435. \u041c\u044b \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c \u0446\u0435\u043b\u044b\u0439 \u0431\u043b\u043e\u043a Secure, \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0449\u0438\u0439 \u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0441\u043a\u0430\u043d\u0435\u0440\u043e\u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438. \u041c\u044b \u0442\u0430\u043a\u0436\u0435 \u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0443\u0435\u043c \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043c \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430\u043c <a href=\"https:\/\/docs.gitlab.com\/ee\/development\/integrations\/secure.html\" rel=\"nofollow noopener noreferrer\">\u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f<\/a> \u0441 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\u043c \u043d\u0430\u0448\u0435\u0433\u043e \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0433\u043e API \u0438 \u0444\u043e\u0440\u043c\u0430\u0442\u043e\u0432 \u043e\u0431\u043c\u0435\u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u043c\u0438. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e GitLab \u0432\u044b \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 \u043e\u0442 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0441\u043a\u0430\u043d\u0435\u0440\u043e\u0432 \u0432 \u0435\u0434\u0438\u043d\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435. \u0420\u0430\u043d\u044c\u0448\u0435 \u0432\u044b \u0443\u0436\u0435 \u043c\u043e\u0433\u043b\u0438 \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u0435\u0439 \u043f\u043e \u0442\u0438\u043f\u0443 \u0441\u043a\u0430\u043d\u0435\u0440\u0430 (SAST, DAST), \u043d\u043e \u043d\u0435\u043b\u044c\u0437\u044f \u0431\u044b\u043b\u043e \u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0443.<\/p>\n<p>  <\/p>\n<p>\u0422\u0435\u043f\u0435\u0440\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u043c\u0438 \u0441\u0442\u0430\u043d\u0435\u0442 \u0435\u0449\u0451 \u0431\u043e\u043b\u0435\u0435 \u0434\u0435\u0442\u0430\u043b\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u043c \u0441 \u043d\u043e\u0432\u043e\u0439 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c\u044e \u0444\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u0438 \u043f\u043e \u0441\u043a\u0430\u043d\u0435\u0440\u0443 \u0438 \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0443. \u0412\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u0440\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432\u0441\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b \u043d\u0430 \u0441\u043a\u0430\u043d\u0435\u0440\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u043f\u043e\u0441\u0442\u0430\u0432\u0449\u0438\u043a\u0430 \u0438\u043b\u0438 \u0431\u044b\u0442\u044c \u0443\u0432\u0435\u0440\u0435\u043d\u043d\u044b\u043c\u0438 \u0432 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430\u0445 \u043e\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, SAST), \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u044b \u043a\u0430\u043a GitLab, \u0442\u0430\u043a \u0438 \u0441\u0442\u043e\u0440\u043e\u043d\u043d\u0438\u043c \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u043c. \u041d\u043e\u0432\u044b\u0439 \u0444\u0438\u043b\u044c\u0442\u0440 \u0442\u0435\u043f\u0435\u0440\u044c \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d \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.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/f62\/3d4\/309\/f623d4309304bd8954bac8da79876a45.png\" alt=\"Filter Project Vulnerability Report by vendor name\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/security_dashboard\/#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\u043e\u0432 \u043e\u0431 \u0443\u044f\u0437\u0432\u0438\u043c\u043e\u0441\u0442\u044f\u0445<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/229661\" 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=\"novyy-poiskovyy-robot-na-osnove-brauzera-dlya-dast-beta-versiya\">\u041d\u043e\u0432\u044b\u0439 \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u0439 \u0440\u043e\u0431\u043e\u0442 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0434\u043b\u044f DAST (\u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u044f)<\/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\u044b \u0440\u0430\u0434\u044b \u043e\u0431\u044a\u044f\u0432\u0438\u0442\u044c, \u0447\u0442\u043e \u0441 13.12 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0435\u0442\u0441\u044f \u0431\u0435\u0442\u0430-\u0432\u0435\u0440\u0441\u0438\u044f \u043d\u0430\u0448\u0435\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u0440\u043e\u0431\u043e\u0442\u0430 \u043d\u0430 \u0431\u0430\u0437\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0441\u0435\u0439\u0447\u0430\u0441 \u0438\u0434\u0451\u0442 \u0431\u0435\u0442\u0430-\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435, \u043c\u044b \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u0438\u0449\u0435\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 DAST, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0430\u043d\u0435\u0440 \u0438 \u0434\u0430\u0434\u0443\u0442 \u043d\u0430\u043c \u043e\u0431\u0440\u0430\u0442\u043d\u0443\u044e \u0441\u0432\u044f\u0437\u044c. \u042d\u0442\u043e\u0442 \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0430\u043d\u0435\u0440 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u043d \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0434\u043b\u044f \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0435\u043d\u0438\u044f \u043b\u0443\u0447\u0448\u0435\u0433\u043e \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0442\u0435\u0441\u0442\u0430\u043c\u0438 \u0437\u0430 \u0441\u0447\u0451\u0442 \u043f\u043e\u0438\u0441\u043a\u0430 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c JavaScript \u0431\u043e\u043b\u044c\u0448\u0435\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0433\u0443\u0442 \u0431\u044b\u0442\u044c \u0441\u043a\u0440\u044b\u0442\u044b \u043e\u0442 \u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u0440\u043e\u0431\u043e\u0442\u0430 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u043e\u043a\u0441\u0438. \u041f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0432\u0435\u0431-\u0441\u0430\u0439\u0442\u044b \u0438 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442 \u0432\u0441\u0451 \u0431\u043e\u043b\u044c\u0448\u0435 \u0438 \u0431\u043e\u043b\u044c\u0448\u0435 JavaScript, \u043c\u044b \u0443\u0432\u0438\u0434\u0435\u043b\u0438 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u043e\u0441\u0442\u044c \u0432 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430\u0445 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u043a\u043e\u043b\u0435\u043d\u0438\u044f, \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0434\u043d\u043e\u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0441 \u0431\u043e\u043b\u044c\u0448\u0438\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c JavaScript. \u042d\u0442\u043e \u043d\u0430\u0448 \u043f\u0435\u0440\u0432\u044b\u0439 \u0448\u0430\u0433 \u043d\u0430 \u043f\u0443\u0442\u0438 \u043a \u043b\u0443\u0447\u0448\u0435\u043c\u0443 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0438 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u044d\u0442\u0438\u0445 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>  <\/p>\n<p>\u0412 \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u043d\u0430\u0448 \u0441\u043a\u0430\u043d\u0435\u0440 \u043d\u0430 \u0431\u0430\u0437\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u043f\u043e\u043a\u0430\u0437\u0430\u043b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0435 \u043e\u0445\u0432\u0430\u0442\u0430 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e \u0441\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u044e \u0441 \u0442\u0435\u043a\u0443\u0449\u0438\u043c \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u044b\u043c \u0440\u043e\u0431\u043e\u0442\u043e\u043c \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u043f\u0440\u043e\u043a\u0441\u0438. \u041d\u0430\u043c \u043d\u0443\u0436\u043d\u044b \u043e\u0442\u0437\u044b\u0432\u044b \u043e\u0431 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u0432 \u0440\u0435\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f\u0445, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c, \u0447\u0442\u043e \u043d\u043e\u0432\u044b\u0439 \u0441\u043a\u0430\u043d\u0435\u0440 \u043c\u043e\u0436\u0435\u0442 \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0434\u043b\u044f \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0430 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439. \u041f\u0440\u043e\u0446\u0435\u0441\u0441 \u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f \u044d\u0442\u043e\u0433\u043e \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u0440\u043e\u0431\u043e\u0442\u0430 \u043e\u043f\u0438\u0441\u0430\u043d \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/dast\/browser_based.html#enable-browser-based-crawling\" rel=\"nofollow noopener noreferrer\">\u043f\u043e\u0438\u0441\u043a\u043e\u0432\u043e\u0433\u043e \u0440\u043e\u0431\u043e\u0442\u0430 DAST \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430<\/a>.<\/p>\n<p>  <\/p>\n<p>\u041c\u044b \u0440\u0430\u0434\u044b \u043b\u044e\u0431\u044b\u043c \u043e\u0442\u0437\u044b\u0432\u0430\u043c \u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f\u043c \u043e\u0431 \u043e\u0448\u0438\u0431\u043a\u0430\u0445. \u041d\u0435 \u0441\u0442\u0435\u0441\u043d\u044f\u0439\u0442\u0435\u0441\u044c \u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/327394\" rel=\"nofollow noopener noreferrer\">\u0432 \u0442\u0438\u043a\u0435\u0442\u0435 327394<\/a> \u0438\u043b\u0438 \u0441\u043e\u0437\u0434\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u044b\u0439 \u0442\u0438\u043a\u0435\u0442 \u0438 \u043d\u0430\u0437\u043d\u0430\u0447\u044c\u0442\u0435 \u0435\u0433\u043e <code>@derekferguson<\/code>. \u041c\u044b \u0441 \u043d\u0435\u0442\u0435\u0440\u043f\u0435\u043d\u0438\u0435\u043c \u0436\u0434\u0451\u043c \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u044d\u0442\u0443 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0432 \u043e\u0431\u0449\u0435\u043c \u0434\u043e\u0441\u0442\u0443\u043f\u0435 \u0432 \u0431\u043b\u0438\u0436\u0430\u0439\u0448\u0438\u0435 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0441\u044f\u0446\u0435\u0432 \u0438 \u043e\u0431\u0435\u0441\u043f\u0435\u0447\u0438\u0442\u044c \u043b\u0443\u0447\u0448\u0435\u0435 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435 DAST \u0434\u043b\u044f \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/dast\/browser_based.html\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0441\u043a\u0430\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044e \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043d\u0430 \u043e\u0441\u043d\u043e\u0432\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u0430 \u0434\u043b\u044f DAST<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/325012\" 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=\"obnovleniya-analizatorov-sast\">\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 SAST<\/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>SAST (\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) \u0432 GitLab \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/#supported-languages-and-frameworks\" rel=\"nofollow noopener noreferrer\">\u043c\u043d\u043e\u0436\u0435\u0441\u0442\u0432\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438<\/a>, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0430 \u0441\u0442\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430 GitLab \u0430\u043a\u0442\u0438\u0432\u043d\u043e \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u044f\u0435\u0442. \u041d\u0438\u0436\u0435 \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u044b \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u043e\u0432, \u0432\u044b\u043f\u0443\u0449\u0435\u043d\u043d\u044b\u0435 \u0432 \u0440\u0435\u043b\u0438\u0437\u0435 13.12. \u042d\u0442\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0432\u043a\u043b\u044e\u0447\u0430\u044e\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0435 \u043f\u043e\u043a\u0440\u044b\u0442\u0438\u0435, \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u043e\u0448\u0438\u0431\u043e\u043a \u0438 \u0434\u0440\u0443\u0433\u0438\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<ul>\n<li>MobSF \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 3.4.3: <a href=\"https:\/\/gitlab.com\/gitlab-org\/security-products\/analyzers\/mobsf\/-\/merge_requests\/24\/diffs\" rel=\"nofollow noopener noreferrer\">\u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442<\/a>, <a href=\"https:\/\/gitlab.com\/gitlab-org\/security-products\/analyzers\/mobsf\/-\/blob\/master\/CHANGELOG.md#v2100\" rel=\"nofollow noopener noreferrer\">\u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/a>.<\/li>\n<li>nodejs-scan \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 0.2.6: <a href=\"https:\/\/gitlab.com\/gitlab-org\/security-products\/analyzers\/mobsf\/-\/merge_requests\/24\/diffs\" rel=\"nofollow noopener noreferrer\">\u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442<\/a>, <a href=\"https:\/\/gitlab.com\/gitlab-org\/security-products\/analyzers\/mobsf\/-\/blob\/master\/CHANGELOG.md#v2100\" rel=\"nofollow noopener noreferrer\">\u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/a>.<\/li>\n<li>GitLeaks \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 7.5.0: <a href=\"https:\/\/gitlab.com\/gitlab-org\/security-products\/analyzers\/secrets\/-\/merge_requests\/112\" rel=\"nofollow noopener noreferrer\">\u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442<\/a>, <a href=\"https:\/\/gitlab.com\/gitlab-org\/security-products\/analyzers\/secrets\/-\/blob\/master\/CHANGELOG.md#v3200\" rel=\"nofollow noopener noreferrer\">\u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/a>.<\/li>\n<li>pmd-apex \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 6.34.0: <a href=\"https:\/\/gitlab.com\/gitlab-org\/security-products\/analyzers\/pmd-apex\/-\/blob\/master\/CHANGELOG.md\" rel=\"nofollow noopener noreferrer\">\u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442<\/a>, <a href=\"https:\/\/gitlab.com\/gitlab-org\/security-products\/analyzers\/pmd-apex\/-\/blob\/master\/CHANGELOG.md#v2122\" rel=\"nofollow noopener noreferrer\">\u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/a>.<\/li>\n<li>Spotbugs \u043e\u0431\u043d\u043e\u0432\u043b\u0451\u043d \u0434\u043e \u0432\u0435\u0440\u0441\u0438\u0438 4.2.3: <a href=\"https:\/\/gitlab.com\/gitlab-org\/security-products\/analyzers\/spotbugs\/-\/merge_requests\/97\" rel=\"nofollow noopener noreferrer\">\u043c\u0435\u0440\u0436-\u0440\u0435\u043a\u0432\u0435\u0441\u0442<\/a>, <a href=\"https:\/\/gitlab.com\/gitlab-org\/security-products\/analyzers\/spotbugs\/-\/blob\/master\/CHANGELOG.md#v2282\" rel=\"nofollow noopener noreferrer\">\u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439<\/a>.<\/li>\n<\/ul>\n<p>  <\/p>\n<p>\u0415\u0441\u043b\u0438 \u0432\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/#configure-sast-manually\" rel=\"nofollow noopener noreferrer\">\u043f\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0439 GitLab \u0448\u0430\u0431\u043b\u043e\u043d SAST<\/a> (<a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/blob\/master\/lib\/gitlab\/ci\/templates\/Security\/SAST.gitlab-ci.yml\" rel=\"nofollow noopener noreferrer\">SAST.gitlab-ci.yml<\/a>), \u0432\u0430\u043c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0434\u0435\u043b\u0430\u0442\u044c, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u044d\u0442\u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f. \u041e\u0434\u043d\u0430\u043a\u043e, \u0435\u0441\u043b\u0438 \u0432\u044b \u043f\u0435\u0440\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u044f\u0435\u0442\u0435 \u0435\u0433\u043e \u0438\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0435 \u0441\u0432\u043e\u0439 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d CI, \u0432\u0430\u043c \u043f\u043e\u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 CI.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/application_security\/sast\/analyzers\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0430\u043d\u0430\u043b\u0438\u0437\u0430\u0442\u043e\u0440\u0430\u043c SAST<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/331556\" 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=\"filtraciya-aktivnyh-tokenov-razvyortyvaniya\">\u0424\u0438\u043b\u044c\u0442\u0440\u0430\u0446\u0438\u044f \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0445 \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \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 \u0440\u0435\u043b\u0438\u0437\u0430 13.12 \u043a\u043e\u043d\u0435\u0447\u043d\u044b\u0435 \u0442\u043e\u0447\u043a\u0438 <a href=\"https:\/\/docs.gitlab.com\/ee\/api\/deploy_tokens.html\" rel=\"nofollow noopener noreferrer\">API \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f<\/a> \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u043b\u0438 \u0432\u0441\u0435 \u0437\u0430\u043f\u0438\u0441\u0438, \u0445\u0440\u0430\u043d\u044f\u0449\u0438\u0435\u0441\u044f \u0432 \u0431\u0430\u0437\u0435 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432\u043a\u043b\u044e\u0447\u0430\u044f \u043e\u0442\u043e\u0437\u0432\u0430\u043d\u043d\u044b\u0435 \u0438 \u043f\u0440\u043e\u0441\u0440\u043e\u0447\u0435\u043d\u043d\u044b\u0435 \u0442\u043e\u043a\u0435\u043d\u044b, \u2014 \u0431\u0435\u0437 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a. \u0422\u0435\u043f\u0435\u0440\u044c \u043c\u044b \u0434\u043e\u0431\u0430\u0432\u0438\u043b\u0438 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u044c \u043e\u0442\u0444\u0438\u043b\u044c\u0442\u0440\u043e\u0432\u0430\u0442\u044c \u0430\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0442\u043e\u043a\u0435\u043d\u044b \u0438\u0437 REST API. \u041e\u0433\u0440\u043e\u043c\u043d\u043e\u0435 \u0441\u043f\u0430\u0441\u0438\u0431\u043e <a href=\"https:\/\/gitlab.com\/quixoten\" rel=\"nofollow noopener noreferrer\">Devin Christensen<\/a> \u0437\u0430 \u044d\u0442\u043e\u0442 \u043d\u0435\u0432\u0435\u0440\u043e\u044f\u0442\u043d\u044b\u0439 \u0432\u043a\u043b\u0430\u0434!<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/api\/deploy_tokens.html\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e API \u0442\u043e\u043a\u0435\u043d\u043e\u0432 \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/292433\" 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=\"novyy-shablon-ci-stranic-dlya-pages-gatsby\">\u041d\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d CI-\u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0434\u043b\u044f Pages: Gatsby<\/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>\u041f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0439 \u0448\u0430\u0431\u043b\u043e\u043d \u0441\u0442\u0440\u0430\u043d\u0438\u0446 \u0434\u043b\u044f Gatsby \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u043b \u00ab\u0438\u0437 \u043a\u043e\u0440\u043e\u0431\u043a\u0438\u00bb. \u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0431\u044b\u043b\u043e \u0432\u0440\u0443\u0447\u043d\u0443\u044e \u0438\u0441\u043f\u0440\u0430\u0432\u0438\u0442\u044c \u0432\u0430\u0448\u0438 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u044b \u043f\u043e\u0441\u043b\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0440\u0435\u0434\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0451\u043d\u043d\u043e\u0433\u043e \u0448\u0430\u0431\u043b\u043e\u043d\u0430. \u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b\u0438 \u0432\u0430\u043c \u043d\u043e\u0432\u044b\u0439 \u0448\u0430\u0431\u043b\u043e\u043d, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u0432\u043e\u0434\u0438\u0442 \u043a \u0437\u0435\u043b\u0451\u043d\u043e\u043c\u0443 \u0441\u0442\u0430\u0442\u0443\u0441\u0443 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430 \u0443\u0436\u0435 \u043f\u0440\u0438 \u043f\u0435\u0440\u0432\u043e\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u0435. \u0421\u043f\u0430\u0441\u0438\u0431\u043e <a href=\"https:\/\/gitlab.com\/tnir\" rel=\"nofollow noopener noreferrer\">Takuya Noguchi<\/a> \u0437\u0430 \u044d\u0442\u043e\u0442 \u0431\u043e\u043b\u044c\u0448\u043e\u0439 \u0432\u043a\u043b\u0430\u0434, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u043c\u043e\u0436\u0435\u0442 \u0442\u0435\u043c \u0447\u043b\u0435\u043d\u0430\u043c \u0441\u043e\u043e\u0431\u0449\u0435\u0441\u0442\u0432\u0430 GitLab, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0440\u0430\u043d\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u0438\u0441\u044c \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430\u043c\u0438 Gatsby, \u043d\u0430\u0447\u0430\u0442\u044c \u0438\u043c\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/pages\/getting_started\/pages_ci_cd_template.html\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e CI-\u0448\u0430\u0431\u043b\u043e\u043d\u0430\u043c \u0434\u043b\u044f Pages<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/220679\" 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=\"integraciya-klastera-elastic-stack\">\u0418\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u044f \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 Elastic Stack<\/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>\u0420\u0430\u043d\u0435\u0435, \u0447\u0442\u043e\u0431\u044b \u0432\u043e\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u0441\u0435\u043c\u0438 \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0430\u043c\u0438 <a href=\"https:\/\/docs.gitlab.com\/ee\/user\/project\/clusters\/kubernetes_pod_logs.html\" rel=\"nofollow noopener noreferrer\">\u043e\u0431\u043e\u0437\u0440\u0435\u0432\u0430\u0442\u0435\u043b\u044f \u043b\u043e\u0433\u043e\u0432<\/a> Gitlab, \u0432\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c Elastic Stack \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439, \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u044b\u0445 GitLab. \u042d\u0442\u043e \u0431\u044b\u043b\u043e \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430\u0442\u0438\u0447\u043d\u043e, \u043f\u043e\u0442\u043e\u043c\u0443 \u0447\u0442\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u0435 Elastic Stack \u0432\u0430\u0436\u043d\u044b, \u0442\u0430\u043a \u0447\u0442\u043e \u0438\u0445 \u043d\u0435 \u0445\u043e\u0442\u0435\u043b\u043e\u0441\u044c \u0431\u044b \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u044d\u0442\u0443 \u0440\u0430\u0431\u043e\u0442\u0443 GitLab.<\/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 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 Elastic Stack \u0441 GitLab. \u0412\u044b \u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c, \u0438 \u0441\u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0444\u0438\u0447\u0438, \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u0435\u043c\u044b\u0435 \u043e\u0431\u043e\u0437\u0440\u0435\u0432\u0430\u0442\u0435\u043b\u0435\u043c \u043b\u043e\u0433\u043e\u0432 GitLab.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/user\/clusters\/integrations.html#elastic-stack-cluster-integration\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 Elastic Stack<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/326560\" 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-incidentov-cherez-api\">\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043e\u0432 \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\/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>\u0421\u0430\u043c\u044b\u0435 \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u0430\u043c\u0438 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0442 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u044b \u0438\u0437 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432. \u0414\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u043e\u0432 \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0438 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0441 GitLab \u0447\u0435\u0440\u0435\u0437 API. GitLab 13.12 \u0432\u0432\u043e\u0434\u0438\u0442 \u0430\u0442\u0440\u0438\u0431\u0443\u0442 <code>issue_type<\/code> \u0432 <a href=\"https:\/\/docs.gitlab.com\/ee\/api\/issues.html#new-issue\" rel=\"nofollow noopener noreferrer\">REST API<\/a> GitLab \u0438 \u043f\u043e\u043b\u0435 <code>type<\/code> \u0432 <a href=\"https:\/\/docs.gitlab.com\/ee\/api\/graphql\/reference\/index.html#mutationcreateissue\" rel=\"nofollow noopener noreferrer\">GraphQL API<\/a> GitLab. \u041f\u0440\u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0438 \u0442\u0438\u043a\u0435\u0442\u043e\u0432 \u0441 \u044d\u0442\u0438\u043c\u0438 API \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u044b, \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432 <code>issue_type<\/code> \u0432 <code>incident<\/code> (REST API) \u0438\u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0432 <code>type<\/code> \u0432 <code>INCIDENT<\/code> (GraphQL API).<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/api\/issues.html#new-issue\" 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\u043e\u0432<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/260375\" 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=\"geo-repliciruet-fayly-lfs-s-pomoschyu-avtomatizirovannoy-platformy\">Geo \u0440\u0435\u043f\u043b\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u0444\u0430\u0439\u043b\u044b LFS \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b<\/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>\u0425\u043e\u0442\u044f Geo \u0443\u0436\u0435 \u0440\u0435\u043f\u043b\u0438\u0446\u0438\u0440\u0443\u0435\u0442 \u0444\u0430\u0439\u043b\u044b LFS, \u043f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0439 \u0444\u0438\u0447\u0438 \u0434\u043b\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f <a href=\"https:\/\/docs.gitlab.com\/ee\/development\/geo\/framework.html\" rel=\"nofollow noopener noreferrer\">\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b Geo<\/a> \u0443\u043b\u0443\u0447\u0448\u0430\u0435\u0442 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u043e \u043e\u0431\u0441\u043b\u0443\u0436\u0438\u0432\u0430\u043d\u0438\u044f \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432 LFS. \u042d\u0442\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u0438\u0442 \u043d\u0430\u043c \u0443\u0434\u0430\u043b\u0438\u0442\u044c \u043e\u043a\u043e\u043b\u043e 200 \u0441\u0442\u0440\u043e\u043a \u043a\u043e\u0434\u0430 \u0438 \u043b\u0435\u0433\u0447\u0435 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/323286\" rel=\"nofollow noopener noreferrer\">\u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0443 \u0432\u0435\u0440\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438<\/a> \u0432 \u043f\u0440\u0435\u0434\u0441\u0442\u043e\u044f\u0449\u0435\u043c \u0440\u0435\u043b\u0438\u0437\u0435. \u0421\u043e\u0431\u044b\u0442\u0438\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432 LFS \u0442\u0430\u043a\u0436\u0435 \u0431\u0443\u0434\u0443\u0442 \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u0442\u044c\u0441\u044f \u0440\u0430\u043d\u044c\u0448\u0435 (\u0432 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u0434\u043e \u043c\u0438\u043d\u0443\u0442\u044b). \u0427\u0442\u043e\u0431\u044b \u0443\u0437\u043d\u0430\u0442\u044c \u0431\u043e\u043b\u044c\u0448\u0435 \u043e\u0431 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u0435 Geo, \u043f\u0440\u043e\u0447\u0438\u0442\u0430\u0439\u0442\u0435 <a href=\"https:\/\/about.gitlab.com\/blog\/2021\/04\/29\/how-we-are-closing-the-gap-on-replicating-everything-in-gitlab-geo\/\" rel=\"nofollow noopener noreferrer\">\u043f\u043e\u0441\u0442 \u0432 \u0431\u043b\u043e\u0433\u0435 \u043e \u0442\u043e\u043c, \u043a\u0430\u043a \u043c\u044b \u0441\u0442\u0440\u0435\u043c\u0438\u043c\u0441\u044f \u043a \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432\u0441\u0435\u0433\u043e \u0432 Geo<\/a>.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/geo\/replication\/datatypes.html#data-types\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 Geo<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/276696\" 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\/3113\" 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=\"podderzhka-geo-dlya-vysokoy-dostupnosti-otslezhivayuschey-bazy-dannyh\">\u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 Geo \u0434\u043b\u044f \u0432\u044b\u0441\u043e\u043a\u043e\u0439 \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u0438 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u0439 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445<\/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>\u0412\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0435 \u0441\u0430\u0439\u0442\u044b Geo \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0442 \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u0443\u044e \u0431\u0430\u0437\u0443 \u0434\u0430\u043d\u043d\u044b\u0445 PostgreSQL \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 <a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/geo\/#geo-tracking-database\" rel=\"nofollow noopener noreferrer\">\u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f<\/a> \u0441\u043e\u0441\u0442\u043e\u044f\u043d\u0438\u044f \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438 \u0438 \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u043b\u0435 \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0441 \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0435\u0439. \u0411\u0435\u0437 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f Geo \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u0440\u0435\u043f\u043b\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0434\u0440\u0443\u0433\u043e\u0439 \u0441\u0430\u0439\u0442. Geo \u0442\u0435\u043f\u0435\u0440\u044c \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0443 <a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/geo\/setup\/database.html#configuring-patroni-cluster-for-the-tracking-postgresql-database\" rel=\"nofollow noopener noreferrer\">\u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0432\u044b\u0441\u043e\u043a\u043e\u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u043a\u043b\u0430\u0441\u0442\u0435\u0440\u0430 PostgreSQL<\/a> \u0434\u043b\u044f \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 Geo. \u042d\u0442\u0430 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u0441\u044f, \u043a\u043e\u0433\u0434\u0430 \u0432\u0442\u043e\u0440\u0438\u0447\u043d\u044b\u0439 \u0441\u0430\u0439\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u043c\u043a\u0430\u0445 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u0438 \u0430\u0432\u0430\u0440\u0438\u0439\u043d\u043e\u0433\u043e \u0432\u043e\u0441\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442, \u0447\u0442\u043e \u0440\u0435\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u043d\u0435 \u0431\u0443\u0434\u0435\u0442 \u0437\u0430\u0442\u0440\u043e\u043d\u0443\u0442\u0430 \u0434\u0430\u0436\u0435 \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0441\u0431\u043e\u044f \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u043d\u043e\u0434\u044b PostgreSQL, \u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430 \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u0434\u043b\u044f \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u043d\u0438\u044f.<\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/administration\/geo\/setup\/database.html#configuring-patroni-cluster-for-the-tracking-postgresql-database\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043e\u0442\u0441\u043b\u0435\u0436\u0438\u0432\u0430\u044e\u0449\u0435\u0439 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 PostgreSQL<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/229061\" 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=\"skrytie-parolya-elasticsearch-v-polzovatelskom-interfeyse-administratora\">\u0421\u043a\u0440\u044b\u0442\u0438\u0435 \u043f\u0430\u0440\u043e\u043b\u044f Elasticsearch \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430<\/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>\u0411\u043b\u0430\u0433\u043e\u0434\u0430\u0440\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 Elasticsearch \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b GitLab \u043c\u043e\u0433\u043b\u0438 \u043d\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0437\u0430\u0449\u0438\u0449\u0451\u043d\u043d\u044b\u0439 \u043f\u0430\u0440\u043e\u043b\u0435\u043c \u0441\u0435\u0440\u0432\u0435\u0440 Elasticsearch, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f URL-\u0430\u0434\u0440\u0435\u0441 \u0432 \u0444\u043e\u0440\u043c\u0430\u0442\u0435 <code>http(s):\/\/&lt;username&gt;:&lt;password&gt;@&lt;elastic_host&gt;:&lt;elastic_port&gt;\/<\/code>. \u041e\u0434\u043d\u0430\u043a\u043e \u043f\u0430\u0440\u043e\u043b\u044c \u043e\u0442\u043e\u0431\u0440\u0430\u0436\u0430\u043b\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u043e\u0431\u044b\u0447\u043d\u043e\u0433\u043e \u0442\u0435\u043a\u0441\u0442\u0430 \u0432 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u043e\u043c \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u0430 GitLab. \u041e\u0442\u0437\u044b\u0432\u044b, \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u043d\u044b\u0435 \u043e\u0442 \u043d\u0430\u0448\u0438\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439, \u043f\u043e\u043a\u0430\u0437\u0430\u043b\u0438 \u043d\u0430\u043c, \u0447\u0442\u043e \u043f\u043e\u0442\u0435\u043d\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u044d\u0442\u043e \u043c\u043e\u0436\u0435\u0442 \u0431\u044b\u0442\u044c \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u043e\u0439, \u043f\u043e\u0441\u043a\u043e\u043b\u044c\u043a\u0443 \u043d\u0435 \u0432\u0441\u0435 \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u044b \u0438\u043d\u0441\u0442\u0430\u043d\u0441\u043e\u0432 GitLab \u0434\u043e\u043b\u0436\u043d\u044b \u0432\u0438\u0434\u0435\u0442\u044c \u044d\u0442\u043e\u0442 \u043f\u0430\u0440\u043e\u043b\u044c.<\/p>\n<p>  <\/p>\n<p>\u0412 \u044d\u0442\u043e\u043c \u0440\u0435\u043b\u0438\u0437\u0435 \u043c\u044b \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u043c \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u043e\u043b\u044f \u0432\u0432\u043e\u0434\u0430 \u0434\u043b\u044f \u0438\u043c\u0435\u043d\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043f\u0430\u0440\u043e\u043b\u044f Elasticsearch, \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u0441\u043a\u0440\u044b\u0442, \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0438 \u043d\u0435 \u043c\u043e\u0433\u043b\u0438 \u0432\u0438\u0434\u0435\u0442\u044c \u0435\u0433\u043e \u0441\u0438\u043c\u0432\u043e\u043b\u044b \u043a\u0430\u043a \u043e\u0431\u044b\u0447\u043d\u044b\u0439 \u0442\u0435\u043a\u0441\u0442.<\/p>\n<p>  <\/p>\n<p><img decoding=\"async\" src=\"https:\/\/habrastorage.org\/getpro\/habr\/post_images\/28d\/493\/823\/28d493823388d1c10fccb8ae9de72c48.png\" alt=\"Obfuscate Elasticsearch password in Admin UI\"><\/p>\n<p>  <\/p>\n<p><a href=\"https:\/\/docs.gitlab.com\/ee\/integration\/elasticsearch.html#advanced-search-configuration\" rel=\"nofollow noopener noreferrer\">\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f \u043f\u043e \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 Elasticsearch<\/a> \u0438 <a href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\/-\/issues\/328466\" 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\/05\/22\/gitlab-13-12-released\/\" rel=\"nofollow noopener noreferrer\">GitLab 13.12 released with On-Demand DAST and Deployment Frequency Chart<br \/>  <\/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\/561736\/\"> https:\/\/habr.com\/ru\/post\/561736\/<\/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\/466\/011\/43d\/46601143d072479411c08477d48d36d9.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>\u0412 \u044d\u0442\u043e\u043c \u043c\u0435\u0441\u044f\u0446\u0435 \u043c\u044b \u0440\u0430\u0434\u044b \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0438 \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430\u043c\u0438 \u0438 \u0432 \u0443\u0434\u043e\u0431\u0441\u0442\u0432\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f, \u043f\u0440\u0438\u0437\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u043e\u0432\u044b\u0441\u0438\u0442\u044c \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u044c \u0432\u0430\u0448\u0435\u0439 \u0440\u0430\u0431\u043e\u0442\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f, \u043f\u043e\u0432\u044b\u0448\u0430\u044e\u0449\u0438\u0435 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u044c \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f, \u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043f\u043e\u043c\u043e\u0433\u0443\u0442 \u0432\u0430\u043c \u0432\u043d\u0435\u0434\u0440\u044f\u0442\u044c DevOps \u043d\u0430 \u0433\u043e\u0440\u0430\u0437\u0434\u043e \u0431\u043e\u043b\u0435\u0435 \u0432\u044b\u0441\u043e\u043a\u043e\u043c \u0443\u0440\u043e\u0432\u043d\u0435. \u0418 \u044d\u0442\u043e \u2014 \u043b\u0438\u0448\u044c \u043e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0438\u0437 44 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u0439 \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-324559","post","type-post","status-publish","format-standard","hentry"],"_links":{"self":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/324559","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=324559"}],"version-history":[{"count":0,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=\/wp\/v2\/posts\/324559\/revisions"}],"wp:attachment":[{"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=324559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=324559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/savepearlharbor.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=324559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}