{"id":9528,"date":"2023-10-02T08:32:00","date_gmt":"2023-10-02T05:32:00","guid":{"rendered":"https:\/\/www.almtoolbox.com\/blog_he\/?p=9528"},"modified":"2023-10-15T08:55:41","modified_gmt":"2023-10-15T05:55:41","slug":"how-gitlab-supports-cpp","status":"publish","type":"post","link":"https:\/\/www.almtoolbox.com\/blog_he\/how-gitlab-supports-cpp\/","title":{"rendered":"\u05d1\u05d0\u05d9\u05dc\u05d5 \u05d3\u05e8\u05db\u05d9\u05dd \u05ea\u05d5\u05de\u05db\u05ea \u05de\u05e2\u05e8\u05db\u05ea GitLab \u05d1\u05e9\u05e4\u05ea ++C ?"},"content":{"rendered":"<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"573\" height=\"251\" src=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2023\/10\/gitlab-cpp-logo.png\" alt=\"c++ gitlab logo\" class=\"wp-image-9529\" srcset=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2023\/10\/gitlab-cpp-logo.png 573w, https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2023\/10\/gitlab-cpp-logo-300x131.png 300w\" sizes=\"auto, (max-width: 573px) 100vw, 573px\" \/><\/figure>\n<\/div>\n\n\n<p>\u05d4\u05de\u05d0\u05de\u05e8 \u05d4\u05d1\u05d0 \u05de\u05d8\u05e8\u05ea\u05d5 \u05dc\u05e2\u05e0\u05d5\u05ea \u05e2\u05dc \u05e9\u05d0\u05dc\u05d4 \u05e9\u05d0\u05e0\u05d5 \u05e0\u05e9\u05d0\u05dc\u05d9\u05dd \u05de\u05d3\u05d9 \u05e4\u05e2\u05dd:<br><strong>\u05d1\u05d0\u05d9\u05dc\u05d5 \u05d3\u05e8\u05db\u05d9\u05dd \u05ea\u05d5\u05de\u05db\u05ea \u05de\u05e2\u05e8\u05db\u05ea GitLab \u05d1\u05e9\u05e4\u05ea ++C ?<\/strong><\/p>\n\n\n\n<p>\u05d2\u05d9\u05d8\u05dc\u05d0\u05d1 \u05de\u05e1\u05e4\u05e7\u05ea \u05e1\u05d8 \u05de\u05e7\u05d9\u05e3 \u05e9\u05dc \u05ea\u05db\u05d5\u05e0\u05d5\u05ea \u05dc\u05e4\u05d9\u05ea\u05d5\u05d7, \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d5\u05e4\u05e8\u05d9\u05e1\u05d4 \u05e9\u05dc \u05e9\u05e4\u05ea \u05d4\u05e7\u05d5\u05d3 ++C , \u05d5\u05ea\u05d5\u05de\u05db\u05ea \u05d1\u05e9\u05e4\u05ea \u05e7\u05d5\u05d3 ++C \u05d1\u05d3\u05e8\u05db\u05d9\u05dd \u05d4\u05d1\u05d0\u05d5\u05ea:<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1. Linting and Static Analysis<\/h3>\n\n\n\n<p>GitLab \u05ea\u05d5\u05de\u05da \u05d1- linting \u05d5\u05e0\u05d9\u05ea\u05d5\u05d7 \u05e7\u05d5\u05d3 \u05e1\u05d8\u05d8\u05d9 \u05e2\u05d1\u05d5\u05e8 \u05e7\u05d5\u05d3 ++C \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05db\u05dc\u05d9 <code>cpplint<\/code> \u05d5-<code>clang-tidy<\/code> .<br>\u05d4\u05d3\u05d1\u05e8 \u05d9\u05db\u05d5\u05dc \u05dc\u05e2\u05d6\u05d5\u05e8 \u05dc\u05d6\u05d4\u05d5\u05ea \u05d5\u05dc\u05ea\u05e7\u05df \u05e9\u05d2\u05d9\u05d0\u05d5\u05ea \u05e4\u05d5\u05d8\u05e0\u05e6\u05d9\u05d0\u05dc\u05d9\u05d5\u05ea \u05d5\u05d1\u05e2\u05d9\u05d5\u05ea style \u05d1\u05e7\u05d5\u05d3 \u05e9\u05dc\u05da \u05dc\u05e4\u05e0\u05d9 \u05e9\u05de\u05e2\u05dc\u05d9\u05dd \u05d0\u05d5\u05ea\u05d5 (push) \u05dc\u05e1\u05d1\u05d9\u05d1\u05ea production.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">2. CI\/CD<\/h3>\n\n\n\n<p>GitLab CI\/CD \u05ea\u05d5\u05de\u05da \u05d1- CI\/CD \u05d5\u05d1\u05e0\u05d9\u05d9\u05ea pipelines \u05e2\u05d1\u05d5\u05e8 \u05e7\u05d5\u05d3 ++C \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05e4\u05e7\u05d5\u05d3\u05d5\u05ea <code> cmake<\/code> \u05d5- <code>make<\/code> , <br>\u05de\u05d4 \u05e9\u05de\u05d0\u05e4\u05e9\u05e8 \u05dc\u05d1\u05e0\u05d5\u05ea \u05d5\u05dc\u05d1\u05d3\u05d5\u05e7 \u05d1\u05d0\u05d5\u05e4\u05df \u05d0\u05d5\u05d8\u05d5\u05de\u05d8\u05d9 \u05e7\u05d5\u05d3 ++C \u05d1\u05db\u05dc \u05e4\u05e2\u05dd \u05e9\u05de\u05d1\u05e6\u05e2\u05d9\u05dd push \u05dc- repo .<br>&gt;&gt; <strong>\u05dc\u05d4\u05d5\u05e8\u05d3\u05d4: <a href=\"https:\/\/www.almtoolbox.com\/blog_he\/gitlab-ci-cd-overview\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u05d4\u05e1\u05e7\u05d9\u05e8\u05d4 \u05e9\u05dc\u05e0\u05d5 \u05e2\u05dc \u05d9\u05db\u05d5\u05dc\u05d5\u05ea GitLab CI\/CD<\/a> (\u05e2\u05d1\u05e8\u05d9\u05ea \/ \u05d0\u05e0\u05d2\u05dc\u05d9\u05ea)<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">3. Syntax Highlighting and Code Completion<\/h3>\n\n\n\n<p>GitLab \u05ea\u05d5\u05de\u05da \u05d1\u05d4\u05d3\u05d2\u05e9\u05ea \u05ea\u05d7\u05d1\u05d9\u05e8 \u05d5\u05d4\u05e9\u05dc\u05de\u05ea \u05e7\u05d5\u05d3 \u05e2\u05d1\u05d5\u05e8 \u05e7\u05d5\u05d3 ++C \u05d4\u05df \u05d1-IDE \u05d4\u05d0\u05d9\u05e0\u05d8\u05e8\u05e0\u05d8 \u05d5\u05d4\u05df \u05d1-IDEs \u05e4\u05d5\u05e4\u05d5\u05dc\u05e8\u05d9\u05d9\u05dd \u05db\u05d2\u05d5\u05df VS Visual Studio  , Code \u05d5-IntelliJ IDEA. <br>\u05d4\u05d3\u05d1\u05e8 \u05de\u05e7\u05dc \u05e2\u05dc \u05db\u05ea\u05d9\u05d1\u05d4 \u05d5\u05e7\u05e8\u05d9\u05d0\u05d4 \u05e9\u05dc \u05e7\u05d5\u05d3 ++C , \u05d5\u05dc\u05ea\u05e4\u05d5\u05e1 \u05e9\u05d2\u05d9\u05d0\u05d5\u05ea \u05d1\u05e9\u05dc\u05d1 \u05de\u05d5\u05e7\u05d3\u05dd.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4. Code Review<\/h3>\n\n\n\n<p>GitLab \u05ea\u05d5\u05de\u05da \u05d1\u05e1\u05e7\u05d9\u05e8\u05ea \u05e7\u05d5\u05d3 \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05d0\u05d5\u05ea\u05df \u05ea\u05db\u05d5\u05e0\u05d5\u05ea \u05d4\u05d6\u05de\u05d9\u05e0\u05d5\u05ea \u05e2\u05d1\u05d5\u05e8 \u05e9\u05e4\u05d5\u05ea \u05d0\u05d7\u05e8\u05d5\u05ea, \u05db\u05d2\u05d5\u05df \u05d4\u05e2\u05e8\u05d5\u05ea, \u05d4\u05e6\u05e2\u05d5\u05ea, \u05d3\u05d9\u05d5\u05e0\u05d9\u05dd \u05d5\u05ea\u05d4\u05dc\u05d9\u05da \u05de\u05d5\u05d1\u05e0\u05d4 \u05dc\u05d0\u05d9\u05e9\u05d5\u05e8 \u05e9\u05d9\u05e0\u05d5\u05d9\u05d9\u05dd.<br>&gt;&gt; <strong>\u05dc\u05d4\u05d5\u05e8\u05d3\u05d4: <a href=\"https:\/\/www.almtoolbox.com\/blog\/gitlab-code-review-white-paper\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u05d4\u05e1\u05e7\u05d9\u05e8\u05d4 \u05e9\u05dc\u05e0\u05d5 \u05e2\u05dc \u05d9\u05db\u05d5\u05dc\u05d5\u05ea GitLab CI\/CD<\/a> (\u05e2\u05d1\u05e8\u05d9\u05ea \/ \u05d0\u05e0\u05d2\u05dc\u05d9\u05ea)<\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">5. Security Scanning<\/h3>\n\n\n\n<p>GitLab \u05ea\u05d5\u05de\u05da \u05d1\u05e1\u05e8\u05d9\u05e7\u05ea \u05d0\u05d1\u05d8\u05d7\u05d4 \u05dc\u05e7\u05d5\u05d3 ++C \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05d4\u05db\u05dc\u05d9\u05dd <code>cppcheck<\/code> \u05d5- Bandit . <br>\u05d4\u05d3\u05d1\u05e8 \u05d9\u05db\u05d5\u05dc \u05dc\u05e2\u05d6\u05d5\u05e8 \u05dc\u05d6\u05d4\u05d5\u05ea \u05e4\u05d9\u05e8\u05e6\u05d5\u05ea \u05d0\u05d1\u05d8\u05d7\u05d4 \u05d0\u05e4\u05e9\u05e8\u05d9\u05d5\u05ea \u05d1\u05e7\u05d5\u05d3 \u05e9\u05dc\u05db\u05dd.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">6. Code Suggestions<\/h3>\n\n\n\n<p>GitLab \u05ea\u05d5\u05de\u05da \u05d1\u05d4\u05e6\u05e2\u05d5\u05ea \u05e7\u05d5\u05d3 \u05de\u05d1\u05d5\u05e1\u05e1\u05d5\u05ea AI \u05d2'\u05e0\u05e8\u05d8\u05d9\u05d1\u05d9 \u05dc\u05e7\u05d5\u05d3 ++C , \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea \u05d4\u05db\u05dc\u05d9 <code>clangd<\/code>. <br>\u05d4\u05d3\u05d1\u05e8 \u05d9\u05db\u05d5\u05dc \u05dc\u05e2\u05d6\u05d5\u05e8 \u05dc\u05da \u05dc\u05db\u05ea\u05d5\u05d1 \u05e7\u05d5\u05d3 \u05d9\u05e2\u05d9\u05dc \u05d9\u05d5\u05ea\u05e8.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">7. Remote Development Workspaces<\/h3>\n\n\n\n<p>\u05e1\u05d1\u05d9\u05d1\u05d5\u05ea \u05e2\u05d1\u05d5\u05d3\u05d4 \u05de\u05e8\u05d5\u05d7\u05e7\u05ea \u05e9\u05dc GitLab \u05de\u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05dc\u05da \u05dc\u05d9\u05e6\u05d5\u05e8 \u05d5\u05dc\u05d4\u05e4\u05e2\u05d9\u05dc \u05e1\u05d1\u05d9\u05d1\u05d5\u05ea \u05e4\u05d9\u05ea\u05d5\u05d7 \u05d1\u05e2\u05e0\u05df \u05e2\u05d1\u05d5\u05e8 \u05e7\u05d5\u05d3 ++C. <br>\u05d6\u05d5 \u05d9\u05db\u05d5\u05dc\u05d4 \u05dc\u05d4\u05d9\u05d5\u05ea \u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05d8\u05d5\u05d1\u05d4 \u05d0\u05dd \u05d0\u05d9\u05df \u05dc\u05da \u05de\u05db\u05d5\u05e0\u05d4 \u05de\u05e7\u05d5\u05de\u05d9\u05ea \u05d7\u05d6\u05e7\u05d4 \u05d0\u05d5 \u05d0\u05dd \u05d0\u05ea\u05d4 \u05e8\u05d5\u05e6\u05d4 \u05dc\u05e9\u05ea\u05e3 \u05e4\u05e2\u05d5\u05dc\u05d4 \u05e2\u05dd \u05de\u05e4\u05ea\u05d7\u05d9\u05dd \u05d0\u05d7\u05e8\u05d9\u05dd \u05d1\u05d0\u05d5\u05ea\u05d5 \u05d1\u05e1\u05d9\u05e1 \u05e7\u05d5\u05d3 ++C .<br><strong>&gt;&gt; \u05dc\u05d4\u05d5\u05e8\u05d3\u05d4: \u05d4\u05de\u05d3\u05e8\u05d9\u05da \u05e9\u05dc\u05e0\u05d5 \u05d1\u05e2\u05d1\u05e8\u05d9\u05ea: <a href=\"https:\/\/www.almtoolbox.com\/blog_he\/gitlab-remote-development-workspaces\/\" target=\"_blank\" rel=\"noreferrer noopener\">\u05d9\u05e6\u05d9\u05e8\u05ea \u05e1\u05d1\u05d9\u05d1\u05d5\u05ea \u05e4\u05d9\u05ea\u05d5\u05d7 \u05de\u05e8\u05d5\u05d7\u05e7\u05d5\u05ea \u05e2\u05dd GitLab<\/a><\/strong><\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Package Manager: Conan Integration<\/h3>\n\n\n\n<p>\u05dc\u05d2\u05d9\u05d8\u05dc\u05d0\u05d1 \u05d0\u05d9\u05e0\u05d8\u05d2\u05e8\u05e6\u05d9\u05d4 \u05e2\u05dd Conan , \u05e9\u05d4\u05d5\u05d0 Package manager \u05e4\u05d5\u05e4\u05d5\u05dc\u05e8\u05d9 \u05dc- C \u05d5- ++C  &#8211; \u05de\u05d4 \u05e9\u05de\u05d0\u05e4\u05e9\u05e8 \u05dc\u05e0\u05d4\u05dc \u05d5\u05dc\u05e9\u05ea\u05e3 \u05ea\u05dc\u05d5\u05d9\u05d5\u05ea (dependencies) \u05d1\u05e7\u05dc\u05d5\u05ea.<\/p>\n\n\n\n<p>\u05dc\u05e1\u05d9\u05db\u05d5\u05dd: \u05de\u05e2\u05e8\u05db\u05ea \u05d2\u05d9\u05d8\u05dc\u05d0\u05d1 \u05de\u05e6\u05d9\u05e2\u05d4 \u05e1\u05d8 \u05d9\u05db\u05d5\u05dc\u05d5\u05ea \u05e0\u05e8\u05d7\u05d1 \u05e1\u05d1\u05d9\u05d1 \u05e9\u05e4\u05ea \u05d4\u05e7\u05d5\u05d3 ++C .<\/p>\n\n\n\n<h4 class=\"wp-block-heading has-background\" style=\"background-color:#fcb90052\">\u05d4\u05de\u05d0\u05de\u05e8 <em>\u05e0\u05db\u05ea\u05d1 \u05e2&quot;\u05d9 ALM-Toolbox &#8211; \u05e0\u05e6\u05d9\u05d2\u05d9 GitLab \u05d4\u05e8\u05e9\u05de\u05d9\u05d9\u05dd \u05d1\u05d9\u05e9\u05e8\u05d0\u05dc \u05de\u05d0\u05d6 2016.<\/em> <br>\u05d0\u05e0\u05d5 \u05de\u05e1\u05e4\u05e7\u05d9\u05dd \u05d9\u05e2\u05d5\u05e5, \u05ea\u05de\u05d9\u05db\u05d4, \u05e9\u05d9\u05e8\u05d5\u05ea\u05d9\u05dd \u05de\u05e0\u05d5\u05d4\u05dc\u05d9\u05dd (\u05db\u05d5\u05dc\u05dc \u05e2\u05e0\u05df \u05e4\u05e8\u05d8\u05d9 \u05d1\u05d9\u05e9\u05e8\u05d0\u05dc), \u05e8\u05e9\u05d9\u05d5\u05e0\u05d5\u05ea \u05d5\u05d4\u05d3\u05e8\u05db\u05d5\u05ea \u05dc- GitLab \u05d5\u05db\u05dc\u05d9\u05dd \u05de\u05e9\u05dc\u05d9\u05de\u05d9\u05dd. <br>\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 072-240-5222<\/h4>\n\n\n\n<h3 class=\"wp-block-heading\">\u05e7\u05d9\u05e9\u05d5\u05e8\u05d9\u05dd \u05e8\u05dc\u05d5\u05d5\u05e0\u05d8\u05d9\u05dd:<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/almtoolbox.com\/il\/gitlab\" target=\"_blank\" rel=\"noreferrer noopener\">\u05d0\u05ea\u05e8 GitLab \u05d1\u05d9\u05e9\u05e8\u05d0\u05dc<\/a> (\u05e2\u05d1\u05e8\u05d9\u05ea)<\/li>\n\n\n\n<li><a href=\"https:\/\/docs.gitlab.com\" target=\"_blank\" rel=\"noreferrer noopener\">\u05de\u05d9\u05d3\u05e2 \u05d8\u05db\u05e0\u05d9 \u05e0\u05d5\u05e1\u05e3 \u05d1\u05d0\u05ea\u05e8 \u05d4\u05d9\u05e6\u05e8\u05df<\/a><\/li>\n<\/ul>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p>\u05de\u05e7\u05d5\u05e8 \u05ea\u05de\u05d5\u05e0\u05d4: \u05d5\u05d9\u05e7\u05d9\u05e4\u05d3\u05d9\u05d4<\/p>\n","protected":false},"excerpt":{"rendered":"<p>GitLab \u05de\u05e1\u05e4\u05e7\u05ea \u05e1\u05d8 \u05de\u05e7\u05d9\u05e3 \u05e9\u05dc \u05ea\u05db\u05d5\u05e0\u05d5\u05ea \u05dc\u05e4\u05d9\u05ea\u05d5\u05d7, \u05d1\u05d3\u05d9\u05e7\u05d4 \u05d5\u05e4\u05e8\u05d9\u05e1\u05d4 \u05e9\u05dc \u05e9\u05e4\u05ea \u05d4\u05e7\u05d5\u05d3 ++C<\/p>\n","protected":false},"author":5,"featured_media":9529,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[782,111],"tags":[],"class_list":["post-9528","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-c","category-gitlab"],"_links":{"self":[{"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/posts\/9528","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=9528"}],"version-history":[{"count":3,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/posts\/9528\/revisions"}],"predecessor-version":[{"id":9532,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/posts\/9528\/revisions\/9532"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/media\/9529"}],"wp:attachment":[{"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/media?parent=9528"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/categories?post=9528"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/tags?post=9528"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}