<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Coverage on Daffa Abhipraya</title><link>https://blog.abhipraya.dev/tags/coverage/</link><description>Recent content in Coverage on Daffa Abhipraya</description><generator>Hugo</generator><language>en-us</language><copyright>© Daffa Abhipraya</copyright><lastBuildDate>Mon, 23 Mar 2026 00:00:00 +0700</lastBuildDate><atom:link href="https://blog.abhipraya.dev/tags/coverage/index.xml" rel="self" type="application/rss+xml"/><item><title>PPL: From 31 Violations to Zero [Sprint 2, Week 1]</title><link>https://blog.abhipraya.dev/ppl/part-b/s2w1-code-quality/</link><pubDate>Mon, 23 Mar 2026 00:00:00 +0700</pubDate><guid>https://blog.abhipraya.dev/ppl/part-b/s2w1-code-quality/</guid><description>&lt;h2 id="what-i-worked-on">
 &lt;a class="anchor" href="#what-i-worked-on" data-anchor="what-i-worked-on" aria-hidden="true">#&lt;/a>
 What I Worked On
&lt;/h2>
&lt;p>This week I enforced strict quality gates across the entire CI pipeline. The project previously had &lt;code>allow_failure: true&lt;/code> on SonarQube and security scans, meaning violations were reported but never blocked merges. I changed that.&lt;/p>
&lt;h2 id="sonarqube-31-violations--0">
 &lt;a class="anchor" href="#sonarqube-31-violations--0" data-anchor="sonarqube-31-violations--0" aria-hidden="true">#&lt;/a>
 SonarQube: 31 Violations → 0
&lt;/h2>
&lt;h3 id="the-violations">
 &lt;a class="anchor" href="#the-violations" data-anchor="the-violations" aria-hidden="true">#&lt;/a>
 The Violations
&lt;/h3>
&lt;p>SonarQube flagged 31 issues across the codebase:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>1 CRITICAL vulnerability&lt;/strong>: &lt;code>jwt.get_unverified_header()&lt;/code> reading JWT headers without signature verification&lt;/li>
&lt;li>&lt;strong>3 CRITICAL code smells&lt;/strong>: duplicated string literals, nested component definitions&lt;/li>
&lt;li>&lt;strong>27 other issues&lt;/strong>: unused variables, missing &lt;code>Readonly&amp;lt;&amp;gt;&lt;/code> on props, duplicate CSS blocks, array index keys&lt;/li>
&lt;/ul>
&lt;h3 id="the-fixes">
 &lt;a class="anchor" href="#the-fixes" data-anchor="the-fixes" aria-hidden="true">#&lt;/a>
 The Fixes
&lt;/h3>
&lt;p>&lt;strong>Backend&lt;/strong> (3 files): Refactored JWT decode to try HS256 first and fall back to asymmetric on &lt;code>DecodeError&lt;/code>, eliminating the unverified header call entirely. Extracted duplicated literals to constants.&lt;/p></description></item></channel></rss>