{"id":10298,"date":"2024-04-01T09:43:04","date_gmt":"2024-04-01T06:43:04","guid":{"rendered":"https:\/\/www.almtoolbox.com\/blog_he\/?p=10298"},"modified":"2025-11-18T04:54:46","modified_gmt":"2025-11-18T02:54:46","slug":"gitlab-ci-case-study-pecan","status":"publish","type":"post","link":"https:\/\/www.almtoolbox.com\/blog_he\/gitlab-ci-case-study-pecan\/","title":{"rendered":"\u05e1\u05d9\u05e4\u05d5\u05e8 \u05dc\u05e7\u05d5\u05d7: \u05e8\u05d5\u05dd \u05d2\u05d9\u05d9\u05d2\u05d9 \u05de- Pecan AI \u05de\u05e1\u05e4\u05e8 \u05e2\u05dc \u05d4\u05e9\u05d9\u05de\u05d5\u05e9 \u05d1- GitLab \u05d5- GitLab CI"},"content":{"rendered":"\n<p>\u05d9\u05e6\u05d0 \u05dc\u05d9 \u05dc\u05d0\u05e8\u05d7 \u05d0\u05ea \u05e8\u05d5\u05dd \u05d2\u05d9\u05d9\u05d2\u05d9, \u05e8\u05d0\u05e9 \u05e6\u05d5\u05d5\u05ea DevOps \u05de\u05d7\u05d1\u05e8\u05ea Pecan (\u05d5\u05d0\u05d7\u05d3 \u05de\u05dc\u05e7\u05d5\u05d7\u05d5\u05ea\u05d9\u05e0\u05d5) <br>\u05dc\u05e9\u05d9\u05d7\u05d4 \u05e7\u05e6\u05e8\u05d4 \u05e2\u05dc GitLab , \u05d5\u05de\u05d3\u05d5\u05e2 \u05d1\u05d7\u05e8\u05d5 \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05d5 \u05d5\u05d1- GitLab CI\/CD .<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u05d4\u05e9\u05d9\u05d7\u05d4 \u05d4\u05d5\u05e7\u05dc\u05d8\u05d4 \u05d5\u05d4\u05d9\u05d0 \u05d6\u05de\u05d9\u05e0\u05d4 \u05dc\u05e6\u05e4\u05d9\u05d4 \u05d5\u05d4\u05d0\u05d6\u05e0\u05d4 \u05db\u05d0\u05df:<\/h2>\n\n\n\n<iframe loading=\"lazy\" src=\"https:\/\/player.vimeo.com\/video\/929302600?h=d5d5ca0ded&amp;badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479\" width=\"700\" height=\"394\" frameborder=\"0\" allow=\"autoplay; fullscreen; picture-in-picture; clipboard-write\" title=\"Case Study : Rom Gaigi from Pecan AI talks about GitLab and GitLab CI\"><\/iframe>\n\n\n\n<div style=\"height:49px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\u05d4\u05d8\u05e7\u05e1\u05d8 \u05d4\u05de\u05dc\u05d0:<\/h3>\n\n\n\n<p><strong>\u05ea\u05de\u05d9\u05e8:<\/strong> \u05d0\u05e0\u05d9 \u05de\u05d0\u05e8\u05d7 \u05db\u05d0\u05df \u05d0\u05ea \u05e8\u05d5\u05dd \u05d2\u05d9\u05d9\u05d2\u05d9, \u05e8\u05e9&quot;\u05e6 DevOps \u05de\u05d7\u05d1\u05e8\u05ea Pecan AI, \u05e9\u05de\u05e9\u05ea\u05de\u05e9 \u05d1 GitLab\u00a0<\/p>\n\n\n\n<p>\u05db\u05d1\u05e8 \u05de\u05e1\u05e4\u05e8 \u05e9\u05e0\u05d9\u05dd. \u05e8\u05d5\u05dd, \u05d0\u05e0\u05d9 \u05d0\u05e9\u05de\u05d7 \u05dc\u05e9\u05de\u05d5\u05e2 \u05e4\u05d9\u05d3\u05d1\u05e7 \u05e2\u05dc GitLab \u05d5 GitLab&nbsp; CI .<\/p>\n\n\n\n<p><strong>\u05e8\u05d5\u05dd:<\/strong> \u05ea\u05d5\u05d3\u05d4 \u05e8\u05d1\u05d4. \u05e7\u05d5\u05d3\u05dd \u05db\u05dc, GitLab \u05de\u05d1\u05d7\u05d9\u05e0\u05ea\u05d9 \u05d6\u05d4 \u05de\u05d5\u05e6\u05e8 \u05de\u05d3\u05d4\u05d9\u05dd. \u05d4\u05d9\u05ea\u05e8\u05d5\u05df \u05d4\u05de\u05e9\u05de\u05e2\u05d5\u05ea\u05d9 \u05e9\u05dc\u05d5 \u05de\u05d5\u05dc \u05d4\u05de\u05ea\u05d7\u05e8\u05d4 GitHub \u05d4\u05d5\u05d0 \u05d1\u05e2\u05d9\u05e7\u05e8\u00a0 &#8211; hosted self \u05e2\u05dc Kubernetes.<br>\u05d1\u05e0\u05d5\u05e1\u05e3 \u05db\u05dc \u05d4\u05e2\u05d3\u05db\u05d5\u05e0\u05d9\u05dd \u05e9\u05dc \u05d2\u05d9\u05d8\u05dc\u05d0\u05d1 \u05e9\u05d9\u05d5\u05e6\u05d0\u05d9\u05dd \u05de\u05d2\u05d9\u05e2\u05d9\u05dd \u05d1\u05e1\u05d5\u05e4\u05d5 \u05e9\u05dc \u05d3\u05d1\u05e8 \u05dc-Self-managed, <br>\u05de\u05d4 \u05e9\u05de\u05d9\u05d9\u05e6\u05e8 \u05d9\u05d5\u05ea\u05e8 \u05ea\u05d7\u05d5\u05e9\u05ea \u05d0\u05d1\u05d8\u05d7\u05d4 \u05d5\u05d1\u05d9\u05d8\u05d7\u05d5\u05df,<br>\u05d5\u05e0\u05d5\u05ea\u05df \u05dc\u05d0\u05d3\u05dd \u05e9\u05e7\u05d8 \u05d5\u05d9\u05d3\u05d9\u05e2\u05d4 \u05e9\u05d4\u05d5\u05d0 \u05de\u05e0\u05d4\u05dc \u05d0\u05ea \u05d4\u05e4\u05e8\u05d5\u05d9\u05e7\u05d8\u05d9\u05dd \u05e9\u05dc \u05e2\u05e6\u05de\u05d5, \u05de\u05d0\u05d7\u05d5\u05e8\u05d9 VPN. \u05db\u05da \u05d0\u05e3 \u05d0\u05d7\u05d3 \u05dc\u05d0 \u05d9\u05db\u05d5\u05dc \u05dc\u05d2\u05e9\u05ea \u05d0\u05dc\u05d9\u05d4\u05dd \u05dc\u05dc\u05d0 \u05d4\u05e8\u05e9\u05d0\u05d4.<\/p>\n\n\n\n<p><strong>\u05ea\u05de\u05d9\u05e8: <\/strong>\u05d6\u05d4 \u05d1\u05e2\u05e6\u05dd \u05e0\u05d5\u05ea\u05df \u05dc\u05da \u05e9\u05dc\u05d9\u05d8\u05d4 \u05de\u05dc\u05d0\u05d4?<\/p>\n\n\n\n<p><strong>\u05e8\u05d5\u05dd:<\/strong> \u05db\u05df. \u05d0\u05e0\u05d9 \u05d2\u05dd \u05d1\u05d5\u05d7\u05e8 \u05de\u05ea\u05d9 \u05dc\u05e2\u05e9\u05d5\u05ea \u05d0\u05ea \u05d4\u05e2\u05d3\u05db\u05d5\u05e0\u05d9\u05dd.<br>\u05d1\u05d4\u05ea\u05d7\u05dc\u05d4 \u05d4\u05d9\u05d4 \u05de\u05d0\u05ea\u05d2\u05e8 \u05dc\u05e2\u05e9\u05d5\u05ea \u05d0\u05d5\u05ea\u05dd, \u05e2\u05d3 \u05e9\u05d9\u05e6\u05e8\u05e0\u05d5 \u05dc\u05e2\u05d3\u05db\u05d5\u05e0\u05d9\u05dd \u05d0\u05d5\u05d8\u05d5\u05de\u05e6\u05d9\u05d4 \u05e9\u05e4\u05d5\u05e2\u05dc\u05ea \u05db\u05dc \u05e9\u05d1\u05d5\u05e2<br>\u05db\u05d3\u05d9 \u05dc\u05d1\u05d3\u05d5\u05e7 \u05d0\u05dd \u05d9\u05e6\u05d0 \u05e2\u05d3\u05db\u05d5\u05df \u05d7\u05d3\u05e9, \u05dc\u05d4\u05e8\u05d9\u05e5 tests \u05d5\u05dc\u05d4\u05e2\u05d1\u05d9\u05e8 \u05dcproduction \u2013 \u05de\u05d4 \u05e9\u05e4\u05ea\u05e8 \u05d0\u05ea \u05db\u05dc \u05d4\u05d1\u05e2\u05d9\u05d5\u05ea.<br>\u05d4\u05d9\u05d5\u05dd \u05d0\u05e0\u05d9 \u05d0\u05e4\u05d9\u05dc\u05d5 \u05e0\u05d4\u05e0\u05d4 \u05dc\u05e2\u05d3\u05db\u05df, \u05db\u05d9 \u05d0\u05e0\u05d9 \u05de\u05e7\u05d1\u05dc \u05e4\u05d9\u05e6'\u05e8\u05d9\u05dd \u05db\u05de\u05e2\u05d8 \u05d1\u05d7\u05d9\u05e0\u05dd.<\/p>\n\n\n\n<p><strong>\u05ea\u05de\u05d9\u05e8:<\/strong> \u05d7\u05de\u05d9\u05dd \u05de\u05d4\u05ea\u05e0\u05d5\u05e8.<br>\u05d1\u05d6\u05db\u05d5\u05ea \u05d4\u05d0\u05d5\u05d8\u05d5\u05de\u05e6\u05d9\u05d4, \u05d2\u05dd \u05d4 Security \u05de\u05ea\u05e2\u05d3\u05db\u05df?<\/p>\n\n\n\n<p><strong>\u05e8\u05d5\u05dd:<\/strong> \u05db\u05df. \u05d6\u05d5 \u05d4\u05e1\u05d9\u05d1\u05d4 \u05e9\u05d4\u05e2\u05d3\u05db\u05d5\u05df \u05e7\u05d5\u05e8\u05d4 \u05e4\u05e2\u05dd \u05d1\u05e9\u05d1\u05d5\u05e2 \u05d5\u05dc\u05d0 \u05e4\u05e2\u05dd \u05d1\u05d7\u05d5\u05d3\u05e9, <br>\u05db\u05d9 \u05d4- major releases \u05e9\u05dc GitLab \u05d9\u05d5\u05e6\u05d0\u05d9\u05dd \u05e4\u05e2\u05dd \u05d1\u05d7\u05d5\u05d3\u05e9 \u05d0\u05d1\u05dc \u05dc\u05e4\u05e2\u05de\u05d9\u05dd \u05d9\u05e9 security patches \u05d3\u05d7\u05d5\u05e4\u05d9\u05dd \u05e9\u05d9\u05d5\u05e6\u05d0\u05d9\u05dd \u05d1\u05ea\u05d3\u05d9\u05e8\u05d5\u05ea \u05d2\u05d1\u05d5\u05d4\u05d4 \u05d9\u05d5\u05ea\u05e8.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">GitLab CI<\/h3>\n\n\n\n<p>\u05d7\u05d5\u05e5 \u05de\u05d6\u05d4, \u05d1\u05e8\u05d2\u05e2 \u05e9\u05d0\u05e0\u05d7\u05e0\u05d5 \u05d9\u05e6\u05e8\u05e0\u05d5 \u05d0\u05ea \u05d4-CI \u05e9\u05dc\u05e0\u05d5, \u05d1\u05e2\u05e6\u05dd \u05e7\u05d9\u05e6\u05e8\u05e0\u05d5 \u05d0\u05ea \u05d6\u05de\u05df \u05d4\u05d2\u05e2\u05ea \u05d4\u05e7\u05d5\u05d3 \u05dcproduction, \u05d5\u05d2\u05dd \u05e4\u05d9\u05e9\u05d8\u05e0\u05d5 \u05d0\u05ea \u05d4\u05d9\u05db\u05d5\u05dc\u05ea \u05e9\u05dc \u05de\u05e4\u05ea\u05d7\u05d9\u05dd \u05dc\u05e7\u05d7\u05ea \u05e4\u05e8\u05d5\u05d9\u05e7\u05d8 \u05d7\u05d3\u05e9 \u05d5\u05dc\u05d4\u05db\u05e0\u05d9\u05e1 \u05d0\u05dc\u05d9\u05d5 \u05d0\u05ea \u05d4- CI \u05d5\u05db\u05da \u05dc\u05d4\u05d1\u05d9\u05d0 \u05d0\u05d5\u05ea\u05d5 \u05dcproduction \u05de\u05d4\u05e8. <\/p>\n\n\n\n<p>\u05db\u05d9\u05d5\u05dd, \u05db\u05de\u05e2\u05d8 \u05dc\u05db\u05dc \u05d4\u05e4\u05e8\u05d5\u05d9\u05e7\u05d8\u05d9\u05dd \u05e9\u05dc\u05e0\u05d5 \u05d9\u05e9 \u05d0\u05ea \u05d0\u05d5\u05ea\u05dd \u05e9\u05dc\u05d1\u05d9\u05dd \u05dc\u05db\u05dc \u05d0\u05d5\u05e8\u05da \u05d7\u05d9\u05d9 \u05d4- CI \u05e9\u05dc\u05d4\u05dd, \u05d1\u05d9\u05df \u05d0\u05dd \u05d6\u05d4 commit ,commit for merge request, ,merge train \u05d0\u05d5 \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05d8\u05e1\u05d8\u05d9\u05dd, \u05de\u05d4 \u05e9\u05de\u05d0\u05d5\u05d3 \u05e2\u05d6\u05e8 \u05dc\u05e0\u05d5 \u05dc\u05e4\u05e0\u05d9 \u05e9\u05d0\u05e0\u05d7\u05e0\u05d5 \u05de\u05d2\u05d9\u05e2\u05d9\u05dd \u05dc- production , \u00a0 \u05d0\u05d5 \u05d1\u05d6\u05de\u05df \u05d4- production \u05db\u05e9\u05dc\u05d4\u05d5\u05e6\u05d9\u05d0 \u05d2\u05e8\u05e1\u05d4 \u05d5\u05dc\u05e2\u05d3\u05db\u05df \u05d0\u05ea \u05db\u05dc \u05d4\u05e8\u05db\u05d9\u05d1\u05d9\u05dd.<\/p>\n\n\n\n<p><strong>\u05ea\u05de\u05d9\u05e8:<\/strong> \u05d0\u05d6 \u05d0\u05ea\u05d4 \u05d1\u05e2\u05e6\u05dd \u05e0\u05d5\u05ea\u05df \u05dc\u05de\u05e4\u05ea\u05d7\u05d9\u05dd \u05e9\u05d9\u05e8\u05d5\u05ea \u05e2\u05e6\u05de\u05d9, Self-service?<\/p>\n\n\n\n<p><strong>\u05e8\u05d5\u05dd:<\/strong> \u05d0\u05e0\u05d7\u05e0\u05d5 \u05e2\u05d5\u05d1\u05d3\u05d9\u05dd \u05d4\u05d9\u05d5\u05dd \u05e2\u05dd Cookie cutter \u05db\u05da \u05e9\u05d1\u05e8\u05d2\u05e2 \u05e9\u05de\u05e4\u05ea\u05d7\u00a0 \u05de\u05d7\u05dc\u05d9\u05d8 \u05dc\u05d9\u05d9\u05e6\u05e8 service \u05d7\u05d3\u05e9, \u05d4-CI \u05db\u05d1\u05e8 \u05e7\u05d9\u05d9\u05dd \u05e9\u05dd,<br>\u05d5\u05d0\u05dd \u05d4\u05dd \u05e8\u05d5\u05e6\u05d9\u05dd \u05e2\u05d5\u05d3 \u05d7\u05dc\u05e7\u05d9\u05dd \u05d9\u05e9 \u05dc\u05e0\u05d5 GitLab templates \u05e9\u05d9\u05d5\u05e9\u05d1\u05d9\u05dd \u05d1- repo \u05de\u05e1\u05d5\u05d9\u05d9\u05dd,<br>\u05d5\u05de\u05d9 \u05e9\u05e8\u05d5\u05e6\u05d4 \u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05d4\u05dd \u05db\u05d3\u05d9 \u05dc\u05d4\u05d5\u05e1\u05d9\u05e3 \u05d0\u05d5 \u05dc\u05d4\u05d5\u05e8\u05d9\u05d3 \u05e2\u05d5\u05d3 stages \u05dc- pipeline \u05e9\u05dc\u05d5.<br>\u05db\u05da \u05d7\u05d5\u05e1\u05db\u05d9\u05dd \u05d4\u05e8\u05d1\u05d4 \u05e7\u05d5\u05d3, \u05d4\u05e8\u05d1\u05d4 \u05d9\u05d3\u05e2 \u05e9\u05d4\u05de\u05e4\u05ea\u05d7\u05d9\u05dd \u05dc\u05d0 \u05d1\u05d0\u05de\u05ea \u05d4\u05d9\u05d5 \u05e6\u05e8\u05d9\u05db\u05d9\u05dd. \u05db\u05dc \u05de\u05d4 \u05e9\u05e6\u05e8\u05d9\u05da \u05d6\u05d4 \u05dc\u05d4\u05e2\u05ea\u05d9\u05e7 \u05d5\u05dc\u05d4\u05d3\u05d1\u05d9\u05e7 \u05d0\u05ea \u05d4\u05ea\u05d1\u05e0\u05d9\u05d5\u05ea \u05e9\u05d7\u05d5\u05d6\u05e8\u05d5\u05ea \u05e2\u05dc \u05e2\u05e6\u05de\u05df \u05e2\u05d1\u05d5\u05e8 \u05db\u05dc \u05e4\u05e8\u05d5\u05d9\u05e7\u05d8.<\/p>\n\n\n\n<p><strong>\u05ea\u05de\u05d9\u05e8:<\/strong> \u05dc\u05d0 \u05e6\u05e8\u05d9\u05db\u05d9\u05dd \u05dc\u05d4\u05de\u05e6\u05d9\u05d0 \u05d0\u05ea \u05d4\u05d2\u05dc\u05d2\u05dc.<\/p>\n\n\n\n<p><strong>\u05e8\u05d5\u05dd:<\/strong> \u05d1\u05d3\u05d9\u05d5\u05e7. \u05db\u05de\u05e2\u05d8 \u05d4\u05db\u05dc \u05d0\u05d5\u05ea\u05d5 \u05d3\u05d1\u05e8, \u05d6\u05d4 \u05e2\u05d5\u05d6\u05e8 \u05dc\u05e0\u05d5 \u05de\u05d0\u05d5\u05d3.<br>\u05d1\u05e0\u05d5\u05e1\u05e3, \u05d1\u05d2\u05dc\u05dc \u05e9\u05d4\u05db\u05d5\u05dc \u05de\u05e8\u05d5\u05db\u05d6 \u05d1\u05de\u05e7\u05d5\u05dd \u05d0\u05d7\u05d3, \u05d0\u05dd \u05e0\u05de\u05e6\u05d0\u05ea \u05d1\u05e2\u05d9\u05d4 \u05d0\u05e4\u05e9\u05e8 \u05dc\u05e1\u05d3\u05e8 \u05d0\u05d5\u05ea\u05d4 \u05d1\u05d0\u05d5\u05e4\u05df \u05e8\u05d5\u05d7\u05d1\u05d9.<br>\u05dc\u05d3\u05d5\u05d2\u05de\u05d0, \u05d4\u05d9\u05d9\u05ea\u05d4 \u05dc\u05e0\u05d5 \u05d1\u05e2\u05d9\u05d4 \u05e9\u05dc cache \u05d1-Docker , \u05d5\u05d1\u05de\u05e7\u05d5\u05dd \u05dc\u05e2\u05d1\u05d5\u05e8 \u05e2\u05dc \u05db\u05dc \u05e4\u05e8\u05d5\u05d9\u05e7\u05d8 \u05d5\u05dc\u05ea\u05e7\u05df \u05d0\u05d7\u05d3-\u05d0\u05d7\u05d3, \u05e1\u05d9\u05d3\u05e8\u05e0\u05d5 \u05d0\u05ea \u05d6\u05d4 \u05d1\u05de\u05e7\u05d5\u05dd \u05d0\u05d7\u05d3 &#8211; \u05d5\u05e7\u05d9\u05d1\u05dc\u05e0\u05d5 \u05d0\u05ea \u05d6\u05d4 \u05d1\u05db\u05dc \u05e9\u05d0\u05e8 \u05d4\u05de\u05e7\u05d5\u05de\u05d5\u05ea \u2013 \u05d6\u05d4 \u05d4\u05d9\u05ea\u05e8\u05d5\u05df \u05d4\u05d0\u05d3\u05d9\u05e8 \u05e9\u05dc GitLab.<br>&nbsp;<\/p>\n\n\n\n<p>\u05d9\u05e6\u05d0\u05d5 \u05d2\u05dd \u05e2\u05db\u05e9\u05d9\u05d5 components \u05d7\u05d3\u05e9\u05d9\u05dd \u05dc- CI \u05e9\u05d0\u05e0\u05d9 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05e0\u05e1\u05d5\u05ea \u05d5\u05e2\u05d3\u05d9\u05d9\u05df \u05dc\u05d0 \u05d4\u05d9\u05ea\u05d4 \u05dc\u05d9 \u05d4\u05d4\u05d6\u05d3\u05de\u05e0\u05d5\u05ea ( CI Catalog).<\/p>\n\n\n\n<p>\u05dc- GitLab \u05d9\u05e9 \u05d4\u05e8\u05d1\u05d4 tools \u05de\u05d2\u05e0\u05d9\u05d1\u05d9\u05dd \u05db\u05de\u05d5 Secrets detection, \u05e0\u05d9\u05ea\u05d5\u05d7 \u05e7\u05d5\u05d3 \u05e1\u05d8\u05d8\u05d9 (SAST) \u05d5- DAST \u05d1-ultimate, \u05dc\u05d1\u05d3\u05d5\u05e7 vulnerabilities \u05d5- SBOM \u05e9\u05de\u05d0\u05d5\u05d3 \u05e2\u05d5\u05d6\u05e8\u05d9\u05dd.\u00a0<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">GitLab API<\/h3>\n\n\n\n<p>\u05d7\u05d5\u05e5 \u05de\u05d6\u05d4, \u05d4- API \u05e9\u05dc GitLab \u05de\u05d0\u05d5\u05d3 \u05e0\u05d5\u05d7, \u05d5\u05db\u05dc \u05de\u05d4 \u05e9\u05d7\u05d9\u05db\u05d9\u05e0\u05d5 \u05dc\u05d5 \u05e2\u05d3 \u05d4\u05d9\u05d5\u05dd \u05de- GitLab \u05d0\u05d5 merge request&nbsp; \u05e9\u05e4\u05ea\u05d5\u05d7\u05d9\u05dd, \u05d4\u05d9\u05d5\u05dd \u05d0\u05e0\u05d7\u05e0\u05d5 \u05d9\u05db\u05d5\u05dc\u05d9\u05dd \u05dc\u05e2\u05e9\u05d5\u05ea \u05d0\u05ea \u05d6\u05d4 \u05dc\u05d1\u05d3 \u05d1\u05e1\u05e7\u05e8\u05d9\u05e4\u05d8 \u05e4\u05e9\u05d5\u05d8 \u05e9\u05dc bash \u05d0\u05d5 Python \u05e9\u05e1\u05d5\u05d2\u05e8 \u05dc\u05e0\u05d5 \u05d0\u05ea \u05d4\u05e4\u05d9\u05e0\u05d4. \u05d4\u05d9\u05d5 \u05dc\u05e0\u05d5 \u05d1\u05e2\u05d9\u05d5\u05ea \u05e2\u05dd \u05dc\u05d1\u05d5\u05d0 \u05d5\u05dc\u05d4\u05ea\u05d7\u05d9\u05dc \u05d7\u05d5\u05e7 \u05dc repositories \u05d0\u05d5 \u05dc groups.<br>\u05d1GitLab \u05d9\u05e9 Feature Request&nbsp; \u05e9\u05e4\u05ea\u05d5\u05d7 \u05db\u05d1\u05e8 \u05db\u05de\u05d4 \u05d6\u05de\u05df, \u05d5\u05dc\u05d0 \u05d9\u05db\u05d5\u05dc\u05e0\u05d5 \u05dc\u05d7\u05db\u05d5\u05ea \u05d0\u05d6 \u05e4\u05e9\u05d5\u05d8 \u05e4\u05d9\u05ea\u05d7\u05e0\u05d5 \u05dc\u05e2\u05e6\u05de\u05e0\u05d5 \u05d5\u05d4\u05d2\u05d3\u05e8\u05e0\u05d5 \u05d0\u05ea \u05d4- rules \u05d4\u05d1\u05e1\u05d9\u05e1\u05d9\u05d9\u05dd, \u05d1\u05e9\u05d1\u05d9\u05dc \u05e9branch \u05d9\u05db\u05e0\u05e1 \u05dcmaster, \u05d5\u05d4\u05d7\u05dc\u05e0\u05d5 \u05d0\u05ea \u05d6\u05d4 \u05d1\u05d6\u05db\u05d5\u05ea Cron job \u05e4\u05e9\u05d5\u05d8.<\/p>\n\n\n\n<p><strong>\u05ea\u05de\u05d9\u05e8:<\/strong> \u05d0\u05e0\u05d9 \u05de\u05e0\u05d9\u05d7 \u05e9\u05d0\u05ea\u05d4 \u05de\u05d3\u05d1\u05e8 \u05e2\u05dc merge request approvals?<\/p>\n\n\n\n<p><strong>\u05e8\u05d5\u05dd:<\/strong> \u05db\u05df.<\/p>\n\n\n\n<p><strong>\u05ea\u05de\u05d9\u05e8:<\/strong> \u05d9\u05e9 \u05e2\u05d5\u05d3 \u05d9\u05db\u05d5\u05dc\u05d5\u05ea \u05d1- GitLab \u05e9\u05d0\u05ea\u05dd \u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d1\u05d4\u05dd, \u05db\u05de\u05d5 Artifacts?<br><\/p>\n\n\n\n<p><strong>\u05e8\u05d5\u05dd:<\/strong> \u05d1\u05e8\u05d5\u05e8. \u05d4\u05d9\u05d5\u05dd, \u05db\u05dc \u05d4- CI pipelines \u05e9\u05dc\u05e0\u05d5 \u05e8\u05e6\u05d9\u05dd \u05e2\u05dc \u05ea\u05de\u05d5\u05e0\u05d5\u05ea \u05e9\u05d0\u05e0\u05d7\u05e0\u05d5 \u05d9\u05e6\u05e8\u05e0\u05d5, <br>\u05d5\u05d0\u05e0\u05d7\u05e0\u05d5 \u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d1- registry \u05e9\u05dc GitLab \u05db\u05d3\u05d9 \u05dc\u05e9\u05de\u05d5\u05e8 \u05e2\u05dc\u05d9\u05d4\u05dd \u05db\u05de\u05d4 \u05e9\u05d9\u05d5\u05ea\u05e8 \u05e7\u05e8\u05d5\u05d1. <br>\u05d6\u05d4 \u05d3\u05d1\u05e8 \u05d0\u05d7\u05d3 \u05e9\u05d0\u05e0\u05d7\u05e0\u05d5 \u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd.<\/p>\n\n\n\n<p>\u05d0\u05e0\u05d7\u05e0\u05d5 \u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d1\u05d5, \u05d1- tags \u05d5\u05d1- releases \u05e9\u05dc GitLab.<\/p>\n\n\n\n<p>\u05d1- Artifacts \u05d0\u05e0\u05d7\u05e0\u05d5 \u05e4\u05d7\u05d5\u05ea \u05de\u05e9\u05ea\u05de\u05e9\u05d9\u05dd \u05d4\u05d9\u05d5\u05dd, \u05d0\u05dc\u05d0 \u05de\u05e0\u05d4\u05dc\u05d9\u05dd \u05d0\u05ea \u05d6\u05d4 \u05d1\u05de\u05e7\u05d5\u05dd \u05d0\u05d7\u05e8, \u05d0\u05d1\u05dc \u05d1\u05db\u05dc \u05d4\u05ea\u05d4\u05dc\u05d9\u05da \u05e9\u05dc \u05d4\u05d5\u05e6\u05d0\u05ea package \u05d5\u05d6\u05e8\u05d9\u05e7\u05ea\u05d5 \u05dc\u05db\u05dc\u05d9 \u05d4\u05d1\u05d0, \u05d6\u05d4 \u05d4\u05db\u05d5\u05dc \u05d1- GitLab \u05d5\u05d6\u05d4 \u05de\u05d0\u05d5\u05d3 \u05e0\u05d5\u05d7 \u05dc\u05e0\u05d9\u05d4\u05d5\u05dc.&nbsp;<\/p>\n\n\n\n<p><strong>\u05ea\u05de\u05d9\u05e8:<\/strong> \u05d9\u05e4\u05d4. \u05ea\u05d5\u05d3\u05d4 \u05e8\u05d1\u05d4 \u05e8\u05d5\u05dd! \u05d4\u05d9\u05d4 \u05de\u05d0\u05d5\u05d3 \u05de\u05e2\u05e0\u05d9\u05d9\u05df.<\/p>\n\n\n\n<p class=\"has-background\" style=\"background-color:#c9eafe\"><em>\u05d0\u05e0\u05d5 \u05e2\u05d5\u05d6\u05e8\u05d9\u05dd \u05dc\u05d4\u05d8\u05de\u05d9\u05e2 GitLab \u05d5\u05dc\u05d4\u05e4\u05d9\u05e7 \u05de\u05d4\u05de\u05d5\u05e6\u05e8 \u05d0\u05ea \u05d4\u05de\u05e7\u05e1\u05d9\u05de\u05d5\u05dd,<\/em><br><em>\u05db\u05de\u05d5 \u05d2\u05dd \u05e1\u05d9\u05d5\u05e2 \u05d1\u05ea\u05de\u05d9\u05db\u05d4 \u05e9\u05d5\u05d8\u05e4\u05ea, \u05e9\u05d3\u05e8\u05d5\u05d2\u05d9\u05dd \u05d5\u05e2\u05d3\u05db\u05d5\u05e0\u05d9\u05dd \u05d7\u05db\u05de\u05d9\u05dd, \u05d1\u05e0\u05d9\u05d9\u05ea \u05ea\u05d4\u05dc\u05d9\u05db\u05d9 \u05e2\u05d1\u05d5\u05d3\u05d4, <\/em><br><em>\u05d0\u05d5\u05d8\u05d5\u05de\u05e6\u05d9\u05d5\u05ea \u05d5\u05e9\u05d9\u05e8\u05d5\u05ea \u05de\u05e0\u05d5\u05d4\u05dc \u05dc- GitLab \u05d5\u05db\u05dc\u05d9\u05dd \u05de\u05e9\u05dc\u05d9\u05de\u05d9\u05dd. <\/em><br><em>\u05dc\u05e4\u05e8\u05d8\u05d9\u05dd \u05e0\u05d5\u05e1\u05e4\u05d9\u05dd \u05e4\u05e0\u05d5 \u05d0\u05dc\u05d9\u05e0\u05d5: <a href=\"mailto:gitlab@almtoolbox.com\" target=\"_blank\" rel=\"noreferrer noopener\">gitlab@almtoolbox.com<\/a> \u05d0\u05d5 \u05d8\u05dc\u05e4\u05d5\u05e0\u05d9\u05ea: 072-240-5222<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u05d4\u05e7\u05dc\u05d8\u05ea \u05e9\u05d9\u05d7\u05d4 \u05e2\u05dd \u05e8\u05d0\u05e9 \u05e6\u05d5\u05d5\u05ea DevOps \u05de\u05d7\u05d1\u05e8\u05ea Pecan (\u05d5\u05d0\u05d7\u05d3 \u05de\u05dc\u05e7\u05d5\u05d7\u05d5\u05ea\u05d9\u05e0\u05d5) \u05dc\u05e9\u05d9\u05d7\u05d4 \u05e7\u05e6\u05e8\u05d4 \u05e2\u05dc GitLab \u05d5\u05de\u05d3\u05d5\u05e2 \u05d1\u05d7\u05e8\u05d5 \u05dc\u05d4\u05e9\u05ea\u05de\u05e9 \u05d1\u05d5 \u05d5\u05d1- GitLab CI\/CD<\/p>\n","protected":false},"author":5,"featured_media":12919,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[64,111,112],"tags":[241,1031,1030],"class_list":["post-10298","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-case-studies","category-gitlab","category-gitlab-ci","tag-docker","tag-pecan-ai","tag-success-story"],"_links":{"self":[{"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/posts\/10298","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/comments?post=10298"}],"version-history":[{"count":25,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/posts\/10298\/revisions"}],"predecessor-version":[{"id":12920,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/posts\/10298\/revisions\/12920"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/media\/12919"}],"wp:attachment":[{"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/media?parent=10298"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/categories?post=10298"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/tags?post=10298"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}