{"id":8409,"date":"2022-11-14T06:43:35","date_gmt":"2022-11-14T04:43:35","guid":{"rendered":"https:\/\/www.almtoolbox.com\/blog_he\/?p=8409"},"modified":"2022-11-14T10:17:10","modified_gmt":"2022-11-14T08:17:10","slug":"sonarqube-azure-devops-integration","status":"publish","type":"post","link":"https:\/\/www.almtoolbox.com\/blog_he\/sonarqube-azure-devops-integration\/","title":{"rendered":"\u05e2\u05dc \u05d4\u05d0\u05d9\u05e0\u05d8\u05d2\u05e8\u05e6\u05d9\u05d4 \u05d1\u05d9\u05df SonarQube \u05d5- Azure DevOps"},"content":{"rendered":"<p>\u05dc- SonarQube \u05d0\u05d9\u05e0\u05d8\u05d2\u05e8\u05e6\u05d9\u05d4 \u05d4\u05d3\u05d5\u05e7\u05d4 \u05e2\u05dd Azure DevOps, \u05d4\u05de\u05d0\u05e4\u05e9\u05e8\u05ea \u05dc\u05d4\u05e4\u05e2\u05d9\u05dc \u05d0\u05ea SonarQube \u05d5\u05dc\u05e7\u05d1\u05dc \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea \u05e1\u05e8\u05d9\u05e7\u05d4 \u05d3\u05e8\u05da Azure DevOps, \u05d1\u05d0\u05d5\u05e4\u05df \u05e9\u05dc\u05d0 \u05de\u05e6\u05e8\u05d9\u05da \u05dc\u05e2\u05d1\u05d5\u05e8 \u05d1\u05d9\u05df \u05d4\u05db\u05dc\u05d9\u05dd.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-8436\" src=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2022\/11\/sonarqube-azure.jpg\" alt=\"sonarqube azure devops\" width=\"930\" height=\"450\" srcset=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2022\/11\/sonarqube-azure.jpg 930w, https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2022\/11\/sonarqube-azure-300x145.jpg 300w, https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2022\/11\/sonarqube-azure-768x372.jpg 768w\" sizes=\"auto, (max-width: 930px) 100vw, 930px\" \/><\/p>\n<p>\u05d1\u05de\u05d0\u05de\u05e8 \u05d4\u05d1\u05d0 \u05d0\u05e1\u05d1\u05d9\u05e8 \u05de\u05d4 \u05d4\u05d9\u05db\u05d5\u05dc\u05d5\u05ea \u05d4\u05e1\u05e4\u05e6\u05d9\u05e4\u05d9\u05d5\u05ea \u05d1- SonarQube \u05d4\u05de\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05dc- Azure DevOps ,<br \/>\n\u05d5\u05db\u05df \u05d0\u05e6\u05e8\u05e3 \u05e9\u05e0\u05d9 \u05e1\u05e8\u05d8\u05d5\u05e0\u05d9\u05dd \u05de\u05d5\u05de\u05dc\u05e6\u05d9\u05dd \u05d4\u05de\u05d3\u05d2\u05d9\u05de\u05d9\u05dd \u05d0\u05ea \u05d4\u05d7\u05d9\u05d1\u05d5\u05e8 \u05d1\u05d9\u05df \u05d4\u05db\u05dc\u05d9\u05dd (\u05e9\u05e0\u05d9\u05d9\u05dd \u05e9\u05d1\u05d7\u05e8\u05ea\u05d9 \u05de\u05ea\u05d5\u05da \u05d4\u05de\u05d5\u05df \u05e1\u05e8\u05d8\u05d5\u05e0\u05d9\u05dd \u05d1\u05e8\u05e9\u05ea),<br \/>\n\u05d5\u05d1\u05e1\u05d5\u05e3 \u05d0\u05e6\u05e8\u05e3 \u05e7\u05d9\u05e9\u05d5\u05e8 \u05de\u05d5\u05de\u05dc\u05e5 \u05e9\u05dc \u05de\u05d9\u05d3\u05e2 \u05d8\u05db\u05e0\u05d9 \u05e0\u05d5\u05e1\u05e3.<\/p>\n<div class=\"alm-box\">\n<h4><em>\u05d0\u05e0\u05d5 \u05d4\u05e0\u05e6\u05d9\u05d2\u05d9\u05dd \u05d4\u05e8\u05e9\u05de\u05d9\u05d9\u05dd \u05e9\u05dc SonarQube \u05d1\u05d9\u05e9\u05e8\u05d0\u05dc. \u05dc\u05e4\u05e8\u05d8\u05d9\u05dd \u05e0\u05d5\u05e1\u05e4\u05d9\u05dd \u05e4\u05e0\u05d5 \u05d0\u05dc\u05d9\u05e0\u05d5: <a href=\"mailto:sonarqube@almtoolbox.com\" target=\"_blank\" rel=\"noopener\">sonarqube@almtoolbox.com<\/a> \u05d0\u05d5 \u05d8\u05dc\u05e4\u05d5\u05e0\u05d9\u05ea 072-240-5222<br \/>\n<\/em><\/h4>\n<\/div>\n<h3>1. \u05d4\u05d9\u05db\u05d5\u05dc\u05d5\u05ea \u05d4\u05e1\u05e4\u05e6\u05d9\u05e4\u05d9\u05d5\u05ea \u05d1- SonarQube \u05d4\u05de\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05dc- Azure DevOps<\/h3>\n<ul>\n<li>\u05d7\u05d9\u05d1\u05d5\u05e8 \u05d2\u05dd \u05dc- version control \u05d5\u05d2\u05dd \u05dc- CI pipelines \u05d4\u05e7\u05d9\u05d9\u05de\u05d9\u05dd \u05d1- Azure DevOps.<\/li>\n<li>&quot;Pull Request decoration&quot;: \u05d7\u05d9\u05d1\u05d5\u05e8 \u05dc- Pull Requests \u05d5\u05dc- Azure Pipelines (\u05e7\u05d9\u05d9\u05dd \u05d4\u05d7\u05dc \u05de\u05de\u05d4\u05d3\u05d5\u05e8\u05ea SonarQube Developer Edition).<br \/>\n\u05e0\u05d9\u05ea\u05df \u05dc\u05e8\u05d0\u05d5\u05ea \u05d0\u05ea \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea \u05d4\u05e1\u05e8\u05d9\u05e7\u05d4 \u05d1\u05ea\u05d5\u05da Azure DevOps (\u05e9\u05d9\u05de\u05d5\u05e9\u05d9 \u05dc\u05de\u05e4\u05ea\u05d7\u05d9\u05dd &#8211; \u05e9\u05dc\u05d0 \u05e6\u05e8\u05d9\u05db\u05d9\u05dd \u05dc\u05e2\u05d1\u05d5\u05e8 \u05d1\u05d9\u05df \u05db\u05dc\u05d9\u05dd \u05d5\u05de\u05e1\u05db\u05d9\u05dd).<\/li>\n<li>\u05d4\u05d2\u05d3\u05e8\u05ea policies \u05d1- Azure DevOps \u05d4\u05d9\u05db\u05d5\u05dc\u05d5\u05ea \u05dc\u05d7\u05e1\u05d5\u05dd \u05de\u05d9\u05d6\u05d5\u05d2 Pull Request \u05d0\u05dd \u05dc\u05d0 \u05e2\u05de\u05d3 \u05d1\u05e7\u05e8\u05d9\u05d8\u05e8\u05d9\u05d5\u05e0\u05d9\u05dd \u05d4\u05de\u05d5\u05d2\u05d3\u05e8\u05d9\u05dd \u05db- Quality Gate. \u05dc\u05d3\u05d5\u05d2\u05de\u05d0:<\/li>\n<\/ul>\n<div id=\"attachment_8412\" style=\"width: 658px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2022\/11\/sonarqube-azure-devops-screenshot.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-8412\" class=\"wp-image-8412\" src=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2022\/11\/sonarqube-azure-devops-screenshot.png\" alt=\"sonarqube azure devops\" width=\"648\" height=\"403\" srcset=\"https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2022\/11\/sonarqube-azure-devops-screenshot.png 1800w, https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2022\/11\/sonarqube-azure-devops-screenshot-300x187.png 300w, https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2022\/11\/sonarqube-azure-devops-screenshot-1024x637.png 1024w, https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2022\/11\/sonarqube-azure-devops-screenshot-768x478.png 768w, https:\/\/www.almtoolbox.com\/blog_he\/wp-content\/uploads\/2022\/11\/sonarqube-azure-devops-screenshot-1536x956.png 1536w\" sizes=\"auto, (max-width: 648px) 100vw, 648px\" \/><\/a><p id=\"caption-attachment-8412\" class=\"wp-caption-text\">\u05e6\u05d9\u05dc\u05d5\u05de\u05e1\u05da: \u05d7\u05d9\u05d1\u05d5\u05e8 \u05d1\u05d9\u05df Azure DevOps \u05dc- SonarQube \u05d1\u05d0\u05de\u05e6\u05e2\u05d5\u05ea policies \u05d5- Quality gate (\u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05e7\u05dc\u05d9\u05e7 \u05dc\u05d4\u05d2\u05d3\u05dc\u05d4)<\/p><\/div>\n<ul>\n<li>&quot;Branch Analysis&quot; &#8211; \u05e7\u05d9\u05d9\u05de\u05ea \u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05dc\u05e1\u05e8\u05d5\u05e7 \u05e2\u05e0\u05e4\u05d9\u05dd \u05e1\u05e4\u05e6\u05d9\u05e4\u05d9\u05d9\u05dd \u05d5\u05dc\u05d0 \u05e8\u05e7 \u05e2\u05e0\u05e3 main \/ master. \u05dc\u05d3\u05d5\u05d2\u05de\u05d0: \u05e1\u05e8\u05d9\u05e7\u05ea feature branch \u05d0\u05d5 sub-branch. \u05d4\u05d3\u05d1\u05e8 \u05ea\u05d5\u05e8\u05dd \u05dc\u05de\u05d9\u05de\u05d5\u05e9 \u05e4\u05e8\u05e7\u05d8\u05d9\u05e7\u05d5\u05ea \u05de\u05d5\u05de\u05dc\u05e6\u05d5\u05ea \u05e9\u05dc &quot;Shift Left&quot; \u05dc\u05d6\u05d9\u05d4\u05d5\u05d9 \u05de\u05d5\u05e7\u05d3\u05dd \u05e9\u05dc \u05d1\u05d0\u05d2\u05d9\u05dd \u05e2\u05d5\u05d3 \u05dc\u05e4\u05e0\u05d9 \u05e9\u05de\u05de\u05d5\u05d6\u05d2\u05d9\u05dd \u05dc- main \u05d0\u05d5 \u05e9\u05e0\u05e9\u05dc\u05d7\u05d9\u05dd \u05dc- production \u05d0\u05d5 \u05dc\u05dc\u05e7\u05d5\u05d7\u05d5\u05ea (\u05d9\u05db\u05d5\u05dc \u05d6\u05d5 \u05e7\u05d9\u05d9\u05de\u05ea \u05d4\u05d7\u05dc \u05de\u05de\u05d4\u05d3\u05d5\u05e8\u05ea SonarQube Developer Edition)<\/li>\n<li>\u05db\u05de\u05d5 \u05db\u05df SonarQube \u05ea\u05d5\u05de\u05da \u05d4\u05d9\u05d8\u05d1 \u05d1\u05e9\u05e4\u05d5\u05ea \u05e9\u05de\u05e7\u05d5\u05d3\u05de\u05d5\u05ea \u05e2&quot;\u05d9 Microsoft. \u05dc\u05de\u05e9\u05dc:<br \/>\n\u05ea\u05de\u05d9\u05db\u05d4 \u05d7\u05d6\u05e7\u05d4 \u05d1- #C \u05db\u05d5\u05dc\u05dc\u00a0 Dot Net Core\u00a0 (\u05d9\u05e9 \u05db\u05d9\u05d5\u05dd \u05dc\u05de\u05e2\u05dc\u05d4 \u05de- 400 \u05d7\u05d5\u05e7\u05d9\u05dd \u05d4\u05e1\u05d5\u05e8\u05e7\u05d9\u05dd \u05e9\u05e4\u05d4 \u05d6\u05d5, \u05d5\u05de\u05d6\u05d4\u05d9\u05dd \u05d1\u05d0\u05d2\u05d9\u05dd, security vulnerabilities, code smells \u05d5\u05e2\u05d5\u05d3)<\/li>\n<li>\u05e7\u05d9\u05d9\u05de\u05ea \u05d2\u05dd \u05ea\u05de\u05d9\u05db\u05d4 \u05d1- VB.NET<\/li>\n<\/ul>\n<h5><em>\u05db\u05d3\u05d0\u05d9 \u05dc\u05d3\u05e2\u05ea: \u05dc- SonarQube \u05e7\u05d9\u05d9\u05de\u05d5\u05ea 4 \u05de\u05d4\u05d3\u05d5\u05e8\u05d5\u05ea (\u05d0\u05d7\u05ea \u05d7\u05d9\u05e0\u05de\u05d9\u05ea \u05d5- 3 \u05d1\u05ea\u05e9\u05dc\u05d5\u05dd).\u00a0<\/em><br \/>\n<em>\u05db\u05d0\u05df \u05d9\u05e9\u05e0\u05d5 \u05de\u05d0\u05de\u05e8 \u05e2\u05dc <a href=\"https:\/\/www.almtoolbox.com\/blog_he\/sonarqube-editions-differences\/\" target=\"_blank\" rel=\"noopener\">\u05d4\u05d4\u05d1\u05d3\u05dc\u05d9\u05dd \u05d1\u05d9\u05df \u05de\u05d4\u05d3\u05d5\u05e8\u05d5\u05ea SonarQube<\/a> ,<\/em><br \/>\n<em>\u05d5\u05db\u05df \u05e7\u05d9\u05d9\u05de\u05ea \u05d2\u05dd \u05d0\u05e4\u05e9\u05e8\u05d5\u05ea \u05dc\u05e7\u05d1\u05dc \u05de\u05d0\u05d9\u05ea\u05e0\u05d5 \u05d8\u05d1\u05dc\u05d4 \u05de\u05e4\u05d5\u05e8\u05d8\u05ea \u05d5\u05e2\u05d3\u05db\u05e0\u05d9\u05ea \u05e9\u05dc \u05db\u05dc \u05d4\u05d9\u05db\u05d5\u05dc\u05d5\u05ea \u05d1\u05de\u05d5\u05e6\u05e8, \u05de\u05e1\u05d5\u05d3\u05e8\u05d5\u05ea \u05dc\u05e4\u05d9 \u05de\u05d4\u05d3\u05d5\u05e8\u05d5\u05ea.<\/em><\/h5>\n<h3>2. \u05e1\u05e8\u05d8\u05d5\u05df (50 \u05e9\u05e0\u05d9\u05d5\u05ea): Block the Merge of a Pull Request in Azure DevOps<\/h3>\n<div>\u05d4\u05d5\u05d9\u05d3\u05d0\u05d5 \u05d4\u05e7\u05e6\u05e8\u05e6\u05e8 \u05d4\u05d1\u05d0 \u05de\u05d3\u05d2\u05d9\u05dd \u05d0\u05d9\u05da \u05d7\u05d5\u05e1\u05de\u05d9\u05dd \u05d1- Azure DevOps\u00a0 \u05d0\u05ea \u05d4\u05d9\u05db\u05d5\u05dc\u05ea \u05dc\u05de\u05d6\u05d2 \u05dc\u05e2\u05e0\u05e3 master (main) \u05d0\u05dd \u05d4- quality gate \u05e0\u05db\u05e9\u05dc.<\/div>\n<div dir=\"rtl\">\u05db\u05dc\u05d5\u05de\u05e8 \u05d6\u05d4 \u05de\u05d3\u05d2\u05d9\u05dd \u05d0\u05d9\u05e0\u05d8\u05d2\u05e8\u05e6\u05d9\u05d4 \u05d1\u05d9\u05df AZURE DEVOPS\u00a0 \u05dc SONARQUBE<\/div>\n<h3><iframe loading=\"lazy\" title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/be5aw9_7bBU\" width=\"700\" height=\"393.75\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span><\/iframe><\/h3>\n<p>&nbsp;<\/p>\n<h3>3. \u05e1\u05e8\u05d8\u05d5\u05df (4 \u05d3\u05e7\u05d5\u05ea): Azure DevOps Pull Request Branch Decoration with SonarQube<\/h3>\n<h4>\u05ea\u05e7\u05e6\u05d9\u05e8 \u05d4\u05d5\u05d9\u05d3\u05d0\u05d5:<\/h4>\n<ul>\n<li>0:00 \u05d4\u05e7\u05d3\u05de\u05d4<\/li>\n<li>0:37 &#8211; \u05d7\u05d9\u05d1\u05d5\u05e8 \u05d1\u05d9\u05df \u05d4- Pull request \u05e9\u05dc Azure DevOps \u05dc\u05d1\u05d9\u05df SonarQube (\u05db\u05da \u05e9\u05d0\u05e4\u05e9\u05e8 \u05dc\u05e8\u05d0\u05d5\u05ea \u05d0\u05ea \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea \u05d4\u05e1\u05e8\u05d9\u05e7\u05d4 \u05d3\u05e8\u05da \u05d4- pull requests)<br \/>\n\u05d9\u05db\u05d5\u05dc\u05ea \u05d6\u05d5 \u05d0\u05e4\u05e9\u05e8\u05d9\u05ea \u05d4\u05d7\u05dc \u05de- Developer Edition \u05e9\u05dc SonarQube (\u05de\u05d4\u05d3\u05d5\u05e8\u05d4 \u05d1\u05ea\u05e9\u05dc\u05d5\u05dd)<\/li>\n<li>0:52 &#8211; \u05d4\u05e1\u05d1\u05e8 \u05e2\u05dc \u05ea\u05d5\u05e1\u05e3 SonarLint (\u05ea\u05d5\u05e1\u05e3 \u05e9\u05d9\u05db\u05d5\u05dc \u05dc\u05d4\u05ea\u05d7\u05d1\u05e8 \u05dc &#8211; IDEs \u05db\u05d2\u05d5\u05df VS Code, Visual Studio, Eclipse, IntelliJ )<\/li>\n<li>1:10 \u05d4\u05e6\u05d2\u05ea \u05ea\u05d4\u05dc\u05d9\u05da \u05e2\u05d1\u05d5\u05d3\u05d4 \u05e7\u05e6\u05e8. \u05d4\u05d3\u05e7\u05d5\u05e8\u05e6\u05d9\u05d4 (decoration) \u05d4\u05d9\u05d0 \u05d4\u05d1\u05d0\u05ea \u05d4\u05ea\u05d5\u05e6\u05d0\u05d5\u05ea \u05d9\u05e9\u05e8 \u05d0\u05dc \u05d4-\u00a0 pull request &#8211; \u05db\u05dc\u05d5\u05de\u05e8 \u05e0\u05e9\u05d0\u05e8\u05d9\u05dd \u05d1\u05ea\u05d5\u05da \u05e1\u05d1\u05d9\u05d1\u05d4\u05ea \u05d4\u05e2\u05d1\u05d5\u05d3\u05d4 \u05e9\u05dc Azure DevOps \u05d5\u05dc\u05d0 \u05d9\u05d5\u05e6\u05d0\u05d9\u05dd \u05de\u05de\u05e0\u05d4<\/li>\n<li>1:32 \u05d4\u05d3\u05d2\u05de\u05d4:\n<ul>\n<li>Azure DevOps + Pull request<\/li>\n<li>Quality Gates<\/li>\n<li>Integration with SonarQube<\/li>\n<\/ul>\n<\/li>\n<li>3:20 \u05e1\u05d9\u05db\u05d5\u05dd<\/li>\n<\/ul>\n<p>\u05dc\u05e0\u05d5\u05d7\u05d9\u05d5\u05ea\u05db\u05dd \u05d4\u05d5\u05e1\u05e4\u05e0\u05d5 \u05db\u05ea\u05d5\u05d1\u05d9\u05d5\u05ea &#8211; \u05e0\u05d9\u05ea\u05df \u05dc\u05d4\u05e4\u05e2\u05d9\u05dc \u05e2&quot;\u05d9 \u05dc\u05d7\u05d9\u05e6\u05d4 \u05e2\u05dc \u05db\u05e4\u05ea\u05d5\u05e8 &quot;cc&quot;<\/p>\n<p><iframe loading=\"lazy\" title=\"YouTube video player\" src=\"https:\/\/www.youtube.com\/embed\/Co3e-Q5p-y4\" width=\"700\" height=\"393.75\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span><span data-mce-type=\"bookmark\" style=\"display: inline-block; width: 0px; overflow: hidden; line-height: 0;\" class=\"mce_SELRES_start\">\ufeff<\/span><\/iframe><\/p>\n<h3 dir=\"rtl\">4. \u05ea\u05d9\u05e2\u05d5\u05d3 \u05d8\u05db\u05e0\u05d9 \u05e0\u05d5\u05e1\u05e3:<\/h3>\n<p><a href=\"https:\/\/docs.sonarqube.org\/latest\/analysis\/azuredevops-integration\/\" target=\"_blank\" rel=\"noopener\">Azure DevOps Integration<\/a><\/p>\n<div class=\"alm-box\">\n<h4><em>\u05d0\u05e0\u05d5 \u05d4\u05e0\u05e6\u05d9\u05d2\u05d9\u05dd \u05d4\u05e8\u05e9\u05de\u05d9\u05d9\u05dd \u05e9\u05dc \u05d7\u05d1\u05e8\u05ea Sonar (\u05d9\u05e6\u05e8\u05e0\u05d9\u05ea SonarQube, SonarCloud \u05d5- SonarLint),<br \/>\n\u05d5\u05de\u05e6\u05d9\u05e2\u05d9\u05dd \u05d9\u05e2\u05d5\u05e5, \u05e8\u05d9\u05e9\u05d5\u05d9, \u05ea\u05de\u05d9\u05db\u05d4 \u05d5\u05e9\u05d9\u05e8\u05d5\u05ea\u05d9\u05dd \u05de\u05e0\u05d5\u05d4\u05dc\u05d9\u05dd.<br \/>\n\u05dc\u05e4\u05e8\u05d8\u05d9\u05dd \u05e0\u05d5\u05e1\u05e4\u05d9\u05dd \u05e4\u05e0\u05d5 \u05d0\u05dc\u05d9\u05e0\u05d5: <\/em><em><a href=\"mailto:sonarqube@almtoolbox.com\" target=\"_blank\" rel=\"noopener\">sonarqube@almtoolbox.com<\/a> <\/em><em>\u05d0\u05d5 \u05d8\u05dc\u05e4\u05d5\u05e0\u05d9\u05ea 072-240-5222<\/em><\/h4>\n<\/div>\n<p>&nbsp;<\/p>\n<h3>\u05e7\u05d9\u05e9\u05d5\u05e8\u05d9\u05dd \u05e0\u05d5\u05e1\u05e4\u05d9\u05dd:<\/h3>\n<ul>\n<li dir=\"rtl\">\u05d0\u05ea\u05e8 <a href=\"https:\/\/www.almtoolbox.com\/il\/sonarqube\" target=\"_blank\" rel=\"noopener\">SonarQube \u05d9\u05e9\u05e8\u05d0\u05dc (\u05e2\u05d1\u05e8\u05d9\u05ea)<\/a><\/li>\n<li dir=\"rtl\"><a href=\"https:\/\/www.almtoolbox.com\/blog\/try-sonarqube-free-trial\/\" target=\"_blank\" rel=\"noopener\">\u05d4\u05ea\u05e0\u05e1\u05d5\u05ea \u05d1- SonarQube<\/a> (\u05dc\u05dc\u05d0 \u05ea\u05e9\u05dc\u05d5\u05dd)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>\u05dc- SonarQube \u05d0\u05d9\u05e0\u05d8\u05d2\u05e8\u05e6\u05d9\u05d4 \u05d4\u05d3\u05d5\u05e7\u05d4 \u05e2\u05dd Azure DevOps, \u05d4\u05de\u05d0\u05e4\u05e9\u05e8\u05ea \u05dc\u05d4\u05e4\u05e2\u05d9\u05dc \u05d0\u05ea SonarQube \u05d5\u05dc\u05e7\u05d1\u05dc \u05ea\u05d5\u05e6\u05d0\u05d5\u05ea \u05e1\u05e8\u05d9\u05e7\u05d4 \u05d3\u05e8\u05da Azure DevOps, \u05d1\u05d0\u05d5\u05e4\u05df \u05e9\u05dc\u05d0 \u05de\u05e6\u05e8\u05d9\u05da \u05dc\u05e2\u05d1\u05d5\u05e8 \u05d1\u05d9\u05df \u05d4\u05db\u05dc\u05d9\u05dd. \u05d1\u05de\u05d0\u05de\u05e8 \u05d4\u05d1\u05d0 \u05d0\u05e1\u05d1\u05d9\u05e8 \u05de\u05d4 \u05d4\u05d9\u05db\u05d5\u05dc\u05d5\u05ea \u05d4\u05e1\u05e4\u05e6\u05d9\u05e4\u05d9\u05d5\u05ea \u05d1- SonarQube \u05d4\u05de\u05ea\u05d7\u05d1\u05e8\u05d5\u05ea \u05dc- Azure DevOps , \u05d5\u05db\u05df \u05d0\u05e6\u05e8\u05e3 \u05e9\u05e0\u05d9 \u05e1\u05e8\u05d8\u05d5\u05e0\u05d9\u05dd \u05de\u05d5\u05de\u05dc\u05e6\u05d9\u05dd \u05d4\u05de\u05d3\u05d2\u05d9\u05de\u05d9\u05dd \u05d0\u05ea \u05d4\u05d7\u05d9\u05d1\u05d5\u05e8 \u05d1\u05d9\u05df \u05d4\u05db\u05dc\u05d9\u05dd (\u05e9\u05e0\u05d9\u05d9\u05dd \u05e9\u05d1\u05d7\u05e8\u05ea\u05d9 \u05de\u05ea\u05d5\u05da \u05d4\u05de\u05d5\u05df \u05e1\u05e8\u05d8\u05d5\u05e0\u05d9\u05dd \u05d1\u05e8\u05e9\u05ea), \u05d5\u05d1\u05e1\u05d5\u05e3 \u05d0\u05e6\u05e8\u05e3 \u05e7\u05d9\u05e9\u05d5\u05e8 [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":8425,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[511,367],"tags":[362,713,714,712],"class_list":["post-8409","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-azure-devops","category-sonarqube","tag-quality-gates","tag-sonarqube-ado-pipelines","tag-sonarqube-azure-devops-pipelines","tag-sonarqube-azure-devops-pull-request"],"_links":{"self":[{"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/posts\/8409","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=8409"}],"version-history":[{"count":26,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/posts\/8409\/revisions"}],"predecessor-version":[{"id":8438,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/posts\/8409\/revisions\/8438"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/media\/8425"}],"wp:attachment":[{"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/media?parent=8409"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/categories?post=8409"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.almtoolbox.com\/blog_he\/wp-json\/wp\/v2\/tags?post=8409"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}