<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Anastasia</title>
    <description>The latest articles on DEV Community by Anastasia (@khramushina).</description>
    <link>https://dev.to/khramushina</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F804775%2F00e9f6c5-d67f-4482-956c-db1233cc3a90.jpg</url>
      <title>DEV Community: Anastasia</title>
      <link>https://dev.to/khramushina</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/khramushina"/>
    <language>en</language>
    <item>
      <title>Qodana 2022.1 Is Available</title>
      <dc:creator>Anastasia</dc:creator>
      <pubDate>Thu, 12 May 2022 13:06:40 +0000</pubDate>
      <link>https://dev.to/qodana/qodana-20221-is-available-4ich</link>
      <guid>https://dev.to/qodana/qodana-20221-is-available-4ich</guid>
      <description>&lt;p&gt;We are continuously adding new functionality and improving Qodana, our code quality platform. To keep you updated about what’s new, we’re starting a series of regular release blog posts with the major release of Qodana 2022.1.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;License audit&lt;/em&gt; has been an extra linter that had to be configured separately from the main linters. It now comes with Qodana out of the box. We also added a bunch of new and useful inspections for PHP and JVM linters. Read on to learn more!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Fk69G1Tv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh5.googleusercontent.com/XDUC2ReAqWMNoQNTNpRSK_LttAmoeg9yL5AdF_3DOdRjyxAbZ0YIvvJNCQUHgGzZ8flbAKVETOhtkZ3f2TuYMT2jSVtvPynCz-72y39MmlPvHo2vC5gC2syVvxiK1kyWm7roSH46rngJwaz0nw" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Fk69G1Tv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh5.googleusercontent.com/XDUC2ReAqWMNoQNTNpRSK_LttAmoeg9yL5AdF_3DOdRjyxAbZ0YIvvJNCQUHgGzZ8flbAKVETOhtkZ3f2TuYMT2jSVtvPynCz-72y39MmlPvHo2vC5gC2syVvxiK1kyWm7roSH46rngJwaz0nw" alt="" width="880" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.jetbrains.com/qodana"&gt;GET STARTED WITH QODANA&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  License audit
&lt;/h1&gt;

&lt;p&gt;Legal and compliance penalties for invalid or inappropriately used licenses in your code can be extremely costly. With Qodana, you can scan dependencies in your code repository to find their licenses and see whether there are any potential issues.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qu_ulQsT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.jetbrains.com/wp-content/uploads/2022/05/license_auditing_qodana.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qu_ulQsT--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.jetbrains.com/wp-content/uploads/2022/05/license_auditing_qodana.png" alt="Qodana License Audit in action" width="880" height="473"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With this release, we’ve made it easy to bring license auditing into your project and make it a part of your CI/CD pipeline. The new &lt;em&gt;License audit&lt;/em&gt; feature is available for all linters, including Python, Java, Kotlin, PHP, and JavaScript.&lt;br&gt;&lt;br&gt;
To enable &lt;em&gt;License audit&lt;/em&gt;, add the following lines to the &lt;code&gt;qodana.yaml&lt;/code&gt; file in your project root:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;include:
  - name: CheckDependencyLicenses
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you need to ignore a specific dependency in your project, add the following lines:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;dependencyIgnores:
- name: "dependency/name"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Read &lt;a href="https://www.jetbrains.com/help/qodana/license-audit.html"&gt;our documentation&lt;/a&gt; for more information about custom configurations for &lt;em&gt;License audit&lt;/em&gt; and check out &lt;a href="https://dev.to/tiulpin/keep-your-dependency-licenses-in-check-fll-temp-slug-952480"&gt;this blog post&lt;/a&gt; to see how it can streamline working routines for developers, managers, and legal teams.&lt;/p&gt;

&lt;h1&gt;
  
  
  PHP inspections
&lt;/h1&gt;

&lt;p&gt;This version of Qodana brings all of the new inspections from PhpStorm 2022.1 and adds them to your pipeline with our PHP linters. PhpStorm comes bundled with Qodana, so when Qodana notifies you about an issue in your code, you can open it right in your IDE for further investigation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--94x_nLgM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh3.googleusercontent.com/GAkqNfy12zleqr2G1ctXqLpkeDu_TW_qNIhRe_K7NiXYtNxGAJ7lbgyar3_3zjHyGjmSh0ffn8f3zcBrrwsYO8cahSgZxXvXKopqPNVW2gITRuXp7kd0azAxeoc4q4g-ylRxa7M7SVVDR99Q6A" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--94x_nLgM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh3.googleusercontent.com/GAkqNfy12zleqr2G1ctXqLpkeDu_TW_qNIhRe_K7NiXYtNxGAJ7lbgyar3_3zjHyGjmSh0ffn8f3zcBrrwsYO8cahSgZxXvXKopqPNVW2gITRuXp7kd0azAxeoc4q4g-ylRxa7M7SVVDR99Q6A" alt="" width="880" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Duplicate array key&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The behavior of &lt;code&gt;array_merge()&lt;/code&gt; and merging with the &lt;code&gt;+&lt;/code&gt; operator are different from each other in PHP. The latter will not override the value if the key is duplicated. This can lead to confusion and bugs, so Qodana for PHP now highlights such cases.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Usage of count($array) as array index&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When appending an item to an array, there is no need to explicitly specify the index. Qodana for PHP can warn you about the redundant &lt;code&gt;count()&lt;/code&gt; call.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Replace pow() call with **&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;PHP has had an &lt;code&gt;**&lt;/code&gt; exponentiation operator available since version 5.6. Qodana for PHP will suggest a quick-fix right in PhpStorm (Alt+Enter) to replace the old &lt;code&gt;pow()&lt;/code&gt; calls with the ** operator.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Read-only properties&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Private properties with read-only access inside a class can be declared with the &lt;code&gt;readonly&lt;/code&gt; flag. Qodana for PHP will suggest updating the property declaration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Final class constants&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Starting with PHP 8.1, it is possible to declare constants as final. This is why Qodana for PHP will warn you about constants that are not inherited and suggest adding a &lt;code&gt;final&lt;/code&gt; modifier to them. With the PhpStorm integration, you can quickly jump to the IDE to fix the issue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;rand function arguments in reverse order&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This inspection highlights function calls from the rand family where the max argument can be less than the min. For example, calling &lt;code&gt;rand(10, 1)&lt;/code&gt; is the same as calling &lt;code&gt;rand(1, 10)&lt;/code&gt;, but &lt;code&gt;mt_rand()&lt;/code&gt; is strict about the order of its arguments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Invalid mock target with PHPUnit&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Qodana for PHP will warn you when you try to access a private or final method on a mock object.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Redundant modifier&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This new inspection will report modifiers that are used in regular expression patterns but do not affect the match:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;/i&lt;/code&gt;(case insensitivity) in patterns that contain no letters.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/D&lt;/code&gt; (&lt;em&gt;PCRE_DOLLAR_ENDONLY&lt;/em&gt;) in patterns that do not contain a dollar sign or that contain the &lt;code&gt;\m&lt;/code&gt; (PCRE_MULTILINE) modifier.&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;/s&lt;/code&gt;(dot matches line breaks) in patterns that contain no dots.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Unsupported modifier&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This inspection will report usages of the &lt;code&gt;/e&lt;/code&gt; modifier, which is deprecated in PHP versions 7.0 and later.&lt;/p&gt;

&lt;h1&gt;
  
  
  Java and Kotlin inspections
&lt;/h1&gt;

&lt;p&gt;This release also adds new inspections from IntelliJ IDEA 2022.1 to Qodana for JVM. With our IntelliJ IDEA integration, if any issues are found, the erroneous code can be opened right in the IDE for a quick fix.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Me8s40WG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh4.googleusercontent.com/Gaawael6izJr4fT60bitnNJlRD_d-fMeBUep9opM92THL1utcWW057LLRJNM9YsYgE8sS0QBaLgvUG_JU5gFQ8p_E_MicVl1Y7wTmbbIrKEDuw-e4pbjvX8FPX7D0sglKqq7aWeyEawoWvChvQ" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Me8s40WG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://lh4.googleusercontent.com/Gaawael6izJr4fT60bitnNJlRD_d-fMeBUep9opM92THL1utcWW057LLRJNM9YsYgE8sS0QBaLgvUG_JU5gFQ8p_E_MicVl1Y7wTmbbIrKEDuw-e4pbjvX8FPX7D0sglKqq7aWeyEawoWvChvQ" alt="" width="880" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let’s take a look at the most notable inspections.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Suspicious back reference&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Qodana for JVM will find references that will not be resolvable at runtime.This means that the back reference can never match anything. A back reference will not be resolvable when the group is defined after the back reference, or if the group is defined in a different branch of an alternation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;‘InputStream’ and ‘OutputStream’ can be constructed using ‘Files’ methods&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This inspection reports &lt;code&gt;FileInputStream&lt;/code&gt; and &lt;code&gt;FileOutputStream&lt;/code&gt; constructors when they can be replaced with &lt;code&gt;Files.newInputStream()&lt;/code&gt; and &lt;code&gt;Files.newOutputStream()&lt;/code&gt;, respectively. Streams created using &lt;code&gt;Files&lt;/code&gt; methods are usually more efficient than those created by stream constructors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Redundant @ScheduledForRemoval annotation&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Qodana for JVM will warn you about the usage of &lt;code&gt;@ApiStatus.ScheduledForRemoval&lt;/code&gt; annotations without the &lt;code&gt;inVersion&lt;/code&gt; attribute, which targets Java 9 or a newer version of Java. It will suggest replacing such usages with the &lt;code&gt;forRemoval&lt;/code&gt; attribute in the &lt;code&gt;@Deprecated&lt;/code&gt; annotation to simplify your code.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Bulk ‘Files.readAttributes’ calls can be used instead of multiple file attribute calls&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This inspection finds places where multiple java.io.File attribute checks, such as &lt;code&gt;isDirectory&lt;/code&gt;, &lt;code&gt;isFile&lt;/code&gt;, &lt;code&gt;lastModified&lt;/code&gt;, or &lt;code&gt;length&lt;/code&gt;, are used in a row. These calls can be replaced with a bulk &lt;code&gt;Files.readAttributes&lt;/code&gt; call. The bulk method is usually more performant than multiple attribute checks.     &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Loop can be replaced with ‘List.replaceAll()’&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This inspection reports loops that can be collapsed into a single &lt;code&gt;List.replaceAll()&lt;/code&gt; call.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Number of placeholders does not match the number of arguments in logging call&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Qodana for JVM will report &lt;code&gt;SLF4J&lt;/code&gt; or &lt;code&gt;Log4j 2&lt;/code&gt; logging calls, such as &lt;code&gt;logger.info(\"{}: {}\", key)&lt;/code&gt;, where the number of &lt;code&gt;{}&lt;/code&gt; placeholders in the logger message doesn’t match the number of other arguments in the logging call.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Regular expressions can be simplified&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This inspection detects regular expressions that can be simplified.   &lt;/p&gt;

&lt;p&gt;To exclude certain inspections from your analysis, you can customize your default inspection profile or create a brand new one. You may also want to ​​enforce inspections that are important to your coding guidelines or best practices. Check out our &lt;a href="https://www.jetbrains.com/help/qodana/qodana-yaml.html#Include+an+inspection+into+the+analysis+scope"&gt;Qodana documentation&lt;/a&gt; for more information.&lt;/p&gt;

&lt;p&gt;That’s all that is new in Qodana 2022.1! We hope you’ll find our release blog posts useful. If you have any suggestions for future blog topics or if you want to learn more about how Qodana can help you and your business, post a comment here, tag us on &lt;a href="https://twitter.com/Qodana"&gt;Twitter&lt;/a&gt;, or contact us at &lt;em&gt;&lt;a href="mailto:qodana-support@jetbrains.com"&gt;qodana-support@jetbrains.com&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Your Qodana team&lt;/em&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>kotlin</category>
      <category>php</category>
      <category>releases</category>
    </item>
    <item>
      <title>Introducing Qodana for Azure Pipelines</title>
      <dc:creator>Anastasia</dc:creator>
      <pubDate>Thu, 07 Apr 2022 11:26:11 +0000</pubDate>
      <link>https://dev.to/qodana/introducing-qodana-for-azure-pipelines-3l7k</link>
      <guid>https://dev.to/qodana/introducing-qodana-for-azure-pipelines-3l7k</guid>
      <description>&lt;p&gt;With Qodana, you can detect, analyze, and resolve code issues right in the CI/CD system you rely on. Since Qodana was released, we’ve supported &lt;a href="https://www.jetbrains.com/help/qodana/github-actions.html"&gt;GitHub Actions&lt;/a&gt;, &lt;a href="https://www.jetbrains.com/help/qodana/qodana-github-application.html"&gt;GitHub App&lt;/a&gt;, &lt;a href="https://www.jetbrains.com/help/qodana/gitlab.html"&gt;GitLab CI/CD&lt;/a&gt;, &lt;a href="https://www.jetbrains.com/help/qodana/qodana-teamcity-plugin.html"&gt;TeamCity&lt;/a&gt;, and &lt;a href="https://www.jetbrains.com/help/qodana/jenkins.html"&gt;Jenkins&lt;/a&gt;. We continue to expand our integrated environments to make sure we bring code quality into your favorite CI/CD. This time around, we’re introducing a new extension for &lt;a href="https://marketplace.visualstudio.com/items?itemName=JetBrains.qodana"&gt;Azure Pipelines&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--SpnTTTQB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.jetbrains.com/wp-content/uploads/2022/04/featured_image.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SpnTTTQB--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.jetbrains.com/wp-content/uploads/2022/04/featured_image.png" alt="" width="880" height="413"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=JetBrains.qodana"&gt;Try for free&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Qodana linters are now integrated into your Azure DevOps repositories to allow you to make code analysis a part of your build pipeline and ensure the maintainability and reliability of your projects. You can integrate Qodana with Azure Pipelines in just 2 steps:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Install Qodana for Azure Pipelines&lt;/li&gt;
&lt;li&gt;Configure Qodana to analyze your code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now let’s dive into the details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Install Qodana for Azure Pipelines
&lt;/h2&gt;

&lt;p&gt;From Visual Studio Marketplace, install the &lt;a href="https://marketplace.visualstudio.com/items?itemName=JetBrains.qodana"&gt;Qodana for Azure Pipelines&lt;/a&gt; extension by clicking the &lt;em&gt;Get it free&lt;/em&gt; button, and &lt;em&gt;Proceed to organization&lt;/em&gt; once the installation has finished.&lt;/p&gt;

&lt;p&gt;If you do not have the required permissions to install an extension from the marketplace, a request will be sent to the account administrator to ask them to approve the installation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configure Qodana to analyze your code
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Set up a pipeline that integrates with Qodana
&lt;/h3&gt;

&lt;p&gt;Before analyzing your code, you will first need to set up a new build pipeline that integrates with Qodana. On the Azure DevOps panel, go to &lt;em&gt;Pipelines&lt;/em&gt; and click &lt;em&gt;Create Pipeline&lt;/em&gt;. If any pipelines have already been created, select &lt;em&gt;New pipeline&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WfBZ-t2Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.jetbrains.com/wp-content/uploads/2022/04/screen1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WfBZ-t2Q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.jetbrains.com/wp-content/uploads/2022/04/screen1.png" alt="" width="880" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can configure the pipeline with either the YAML editor or the classic editor. When using the classic editor, you can take advantage of the predefined templates. The YAML editor requires you to use a YAML file. Let’s choose the latter for this example.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s---QQbkfRW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.jetbrains.com/wp-content/uploads/2022/04/screen2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---QQbkfRW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.jetbrains.com/wp-content/uploads/2022/04/screen2.png" alt="" width="880" height="394"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The YAML editor will open with the template YAML file. In order to configure it correctly you will need to configure the &lt;a href="https://github.com/JetBrains/Qodana/blob/2021.3/topics/qodana-azure-pipelines.md"&gt;&lt;em&gt;Qodana Scan&lt;/em&gt;&lt;/a&gt; task by editing your azure-pipelines.yml file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml

trigger:
  - main

pool:
  vmImage: ubuntu-latest

steps:
  - task: Cache@2 # Not required, but Qodana will open projects with cache faster.
    inputs:
      key: '"$(Build.Repository.Name)" | "$(Build.SourceBranchName)" | "$(Build.SourceVersion)"'
      path: '$(Agent.TempDirectory)/qodana/cache'
      restoreKeys: |
        "$(Build.Repository.Name)" | "$(Build.SourceBranchName)"
        "$(Build.Repository.Name)"
  - task: QodanaScan@1
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You can also find the &lt;em&gt;Qodana Scan&lt;/em&gt; task in the list of tasks on the &lt;em&gt;Show assistant&lt;/em&gt; panel.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vpCUyYXl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.jetbrains.com/wp-content/uploads/2022/04/screen3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vpCUyYXl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.jetbrains.com/wp-content/uploads/2022/04/screen3.png" alt="" width="880" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ​​Run your pipeline
&lt;/h3&gt;

&lt;p&gt;When you are done making the changes to the file, click &lt;em&gt;Save and Run&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LkXvvwzZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.jetbrains.com/wp-content/uploads/2022/04/screen4-1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LkXvvwzZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.jetbrains.com/wp-content/uploads/2022/04/screen4-1.png" alt="" width="880" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  See the results
&lt;/h3&gt;

&lt;p&gt;To display the Qodana report summary in Azure DevOps, install &lt;a href="https://marketplace.visualstudio.com/items?itemName=sariftools.scans"&gt;Microsoft DevLabs’ SARIF SAST Scans Tab&lt;/a&gt; extension. Once installation is done, go to the &lt;em&gt;Pipelines&lt;/em&gt; tab, select the pipeline being run and analyzed, and look at the &lt;em&gt;Scans&lt;/em&gt; tab for more information about the quality of your code.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--WTimUMxc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.jetbrains.com/wp-content/uploads/2022/04/screen5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--WTimUMxc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://blog.jetbrains.com/wp-content/uploads/2022/04/screen5.png" alt="" width="880" height="485"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With the Qodana for Azure Pipelines extension, you will be able to easily integrate Qodana into your Azure DevOps pipeline and start seeing the analytics the first time your code is checked.&lt;/p&gt;

&lt;p&gt;If you have any questions or suggestions about Qodana, post a comment here, tag us on &lt;a href="https://twitter.com/Qodana"&gt;Twitter&lt;/a&gt; or contact us at &lt;a href="mailto:qodana-support@jetbrains.com"&gt;qodana-support@jetbrains.com&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Your Qodana team&lt;/em&gt;&lt;/p&gt;

</description>
      <category>news</category>
      <category>plugins</category>
      <category>azure</category>
      <category>azuredevops</category>
    </item>
  </channel>
</rss>
