<?xml version="1.0" encoding="UTF-8"?>
<coverage generated="1786141065">
  <project timestamp="1786141065">
    <file name="/src/src/CheckCommand.php">
      <class name="MediaWiki\Tool\PatchCoverage\CheckCommand" namespace="global">
        <metrics complexity="33" methods="8" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="156" coveredstatements="136" elements="164" coveredelements="138"/>
      </class>
      <line num="45" type="method" name="configure" visibility="protected" complexity="1" crap="1" count="3"/>
      <line num="46" type="stmt" count="3"/>
      <line num="47" type="stmt" count="3"/>
      <line num="48" type="stmt" count="3"/>
      <line num="49" type="stmt" count="3"/>
      <line num="50" type="stmt" count="3"/>
      <line num="51" type="stmt" count="3"/>
      <line num="52" type="stmt" count="3"/>
      <line num="53" type="stmt" count="3"/>
      <line num="54" type="stmt" count="3"/>
      <line num="55" type="stmt" count="3"/>
      <line num="56" type="stmt" count="3"/>
      <line num="57" type="stmt" count="3"/>
      <line num="58" type="stmt" count="3"/>
      <line num="59" type="stmt" count="3"/>
      <line num="60" type="stmt" count="3"/>
      <line num="61" type="stmt" count="3"/>
      <line num="62" type="stmt" count="3"/>
      <line num="63" type="stmt" count="3"/>
      <line num="64" type="stmt" count="3"/>
      <line num="65" type="stmt" count="3"/>
      <line num="66" type="stmt" count="3"/>
      <line num="69" type="method" name="absolutify" visibility="private" complexity="2" crap="2.06" count="1"/>
      <line num="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="72" type="stmt" count="0"/>
      <line num="75" type="stmt" count="1"/>
      <line num="81" type="method" name="getFilterRegex" visibility="private" complexity="4" crap="4.10" count="1"/>
      <line num="84" type="stmt" count="1"/>
      <line num="86" type="stmt" count="1"/>
      <line num="87" type="stmt" count="1"/>
      <line num="88" type="stmt" count="1"/>
      <line num="90" type="stmt" count="0"/>
      <line num="92" type="stmt" count="1"/>
      <line num="95" type="stmt" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <line num="99" type="stmt" count="1"/>
      <line num="100" type="stmt" count="0"/>
      <line num="103" type="stmt" count="1"/>
      <line num="106" type="method" name="runTests" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="108" type="stmt" count="1"/>
      <line num="109" type="stmt" count="1"/>
      <line num="110" type="stmt" count="1"/>
      <line num="111" type="stmt" count="1"/>
      <line num="113" type="stmt" count="1"/>
      <line num="115" type="stmt" count="1"/>
      <line num="117" type="stmt" count="1"/>
      <line num="118" type="stmt" count="1"/>
      <line num="119" type="stmt" count="1"/>
      <line num="120" type="stmt" count="1"/>
      <line num="121" type="stmt" count="1"/>
      <line num="123" type="stmt" count="1"/>
      <line num="126" type="method" name="saveFiles" visibility="protected" complexity="9" crap="9.21" count="3"/>
      <line num="127" type="stmt" count="3"/>
      <line num="133" type="stmt" count="3"/>
      <line num="134" type="stmt" count="3"/>
      <line num="135" type="stmt" count="3"/>
      <line num="137" type="stmt" count="2"/>
      <line num="138" type="stmt" count="0"/>
      <line num="140" type="stmt" count="2"/>
      <line num="141" type="stmt" count="2"/>
      <line num="142" type="stmt" count="0"/>
      <line num="144" type="stmt" count="2"/>
      <line num="145" type="stmt" count="2"/>
      <line num="146" type="stmt" count="0"/>
      <line num="148" type="stmt" count="2"/>
      <line num="149" type="stmt" count="2"/>
      <line num="150" type="stmt" count="2"/>
      <line num="151" type="stmt" count="2"/>
      <line num="152" type="stmt" count="2"/>
      <line num="154" type="stmt" count="1"/>
      <line num="157" type="stmt" count="2"/>
      <line num="160" type="stmt" count="2"/>
      <line num="163" type="stmt" count="2"/>
      <line num="166" type="stmt" count="3"/>
      <line num="180" type="method" name="strippedPathPrefix" visibility="private" complexity="6" crap="6.24" count="3"/>
      <line num="181" type="stmt" count="3"/>
      <line num="182" type="stmt" count="1"/>
      <line num="184" type="stmt" count="2"/>
      <line num="185" type="stmt" count="2"/>
      <line num="186" type="stmt" count="2"/>
      <line num="187" type="stmt" count="2"/>
      <line num="188" type="stmt" count="0"/>
      <line num="192" type="stmt" count="2"/>
      <line num="193" type="stmt" count="2"/>
      <line num="194" type="stmt" count="0"/>
      <line num="196" type="stmt" count="2"/>
      <line num="197" type="stmt" count="2"/>
      <line num="199" type="stmt" count="1"/>
      <line num="201" type="stmt" count="1"/>
      <line num="202" type="stmt" count="1"/>
      <line num="205" type="stmt" count="0"/>
      <line num="208" type="method" name="filterPaths" visibility="protected" complexity="3" crap="3.03" count="1"/>
      <line num="209" type="stmt" count="1"/>
      <line num="210" type="stmt" count="1"/>
      <line num="211" type="stmt" count="1"/>
      <line num="212" type="stmt" count="1"/>
      <line num="213" type="stmt" count="0"/>
      <line num="215" type="stmt" count="1"/>
      <line num="219" type="stmt" count="1"/>
      <line num="222" type="method" name="execute" visibility="protected" complexity="7" crap="7.20" count="1"/>
      <line num="223" type="stmt" count="1"/>
      <line num="224" type="stmt" count="1"/>
      <line num="225" type="stmt" count="1"/>
      <line num="226" type="stmt" count="1"/>
      <line num="227" type="stmt" count="1"/>
      <line num="230" type="stmt" count="1"/>
      <line num="231" type="stmt" count="1"/>
      <line num="232" type="stmt" count="1"/>
      <line num="233" type="stmt" count="1"/>
      <line num="234" type="stmt" count="1"/>
      <line num="235" type="stmt" count="1"/>
      <line num="236" type="stmt" count="1"/>
      <line num="237" type="stmt" count="1"/>
      <line num="238" type="stmt" count="1"/>
      <line num="239" type="stmt" count="1"/>
      <line num="240" type="stmt" count="1"/>
      <line num="242" type="stmt" count="1"/>
      <line num="243" type="stmt" count="1"/>
      <line num="246" type="stmt" count="1"/>
      <line num="247" type="stmt" count="1"/>
      <line num="248" type="stmt" count="1"/>
      <line num="249" type="stmt" count="1"/>
      <line num="250" type="stmt" count="1"/>
      <line num="251" type="stmt" count="1"/>
      <line num="252" type="stmt" count="1"/>
      <line num="256" type="stmt" count="1"/>
      <line num="257" type="stmt" count="1"/>
      <line num="259" type="stmt" count="1"/>
      <line num="260" type="stmt" count="1"/>
      <line num="261" type="stmt" count="1"/>
      <line num="263" type="stmt" count="0"/>
      <line num="264" type="stmt" count="0"/>
      <line num="268" type="stmt" count="1"/>
      <line num="269" type="stmt" count="1"/>
      <line num="270" type="stmt" count="1"/>
      <line num="271" type="stmt" count="1"/>
      <line num="273" type="stmt" count="1"/>
      <line num="274" type="stmt" count="1"/>
      <line num="275" type="stmt" count="1"/>
      <line num="276" type="stmt" count="1"/>
      <line num="277" type="stmt" count="1"/>
      <line num="278" type="stmt" count="1"/>
      <line num="279" type="stmt" count="1"/>
      <line num="280" type="stmt" count="1"/>
      <line num="281" type="stmt" count="1"/>
      <line num="282" type="stmt" count="1"/>
      <line num="283" type="stmt" count="1"/>
      <line num="285" type="stmt" count="0"/>
      <line num="286" type="stmt" count="0"/>
      <line num="289" type="stmt" count="1"/>
      <line num="290" type="stmt" count="0"/>
      <line num="291" type="stmt" count="0"/>
      <line num="292" type="stmt" count="0"/>
      <line num="293" type="stmt" count="0"/>
      <line num="297" type="stmt" count="1"/>
      <line num="299" type="stmt" count="1"/>
      <line num="300" type="stmt" count="1"/>
      <line num="301" type="stmt" count="1"/>
      <line num="302" type="stmt" count="1"/>
      <line num="303" type="stmt" count="1"/>
      <line num="304" type="stmt" count="0"/>
      <line num="305" type="stmt" count="0"/>
      <line num="308" type="stmt" count="1"/>
      <metrics loc="312" ncloc="244" classes="1" methods="8" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="156" coveredstatements="136" elements="164" coveredelements="138"/>
    </file>
    <file name="/src/src/ClassFinder.php">
      <class name="MediaWiki\Tool\PatchCoverage\ClassFinder" namespace="global">
        <metrics complexity="4" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="14" elements="16" coveredelements="14"/>
      </class>
      <line num="41" type="method" name="find" visibility="public" complexity="4" crap="4.00" count="1"/>
      <line num="42" type="stmt" count="1"/>
      <line num="43" type="stmt" count="0"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="47" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <line num="51" type="stmt" count="1"/>
      <line num="53" type="stmt" count="1"/>
      <line num="54" type="stmt" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="56" type="stmt" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <line num="61" type="stmt" count="1"/>
      <metrics loc="64" ncloc="36" classes="1" methods="1" coveredmethods="0" conditionals="0" coveredconditionals="0" statements="15" coveredstatements="14" elements="16" coveredelements="14"/>
    </file>
    <file name="/src/src/CommandProcess.php">
      <class name="MediaWiki\Tool\PatchCoverage\CommandProcess" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="5" elements="10" coveredelements="7"/>
      </class>
      <line num="33" type="method" name="mustRunWithOutput" visibility="public" complexity="1" crap="2" count="0"/>
      <line num="34" type="stmt" count="0"/>
      <line num="35" type="stmt" count="0"/>
      <line num="38" type="method" name="runWithOutput" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="43" type="method" name="makeCallback" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="44" type="stmt" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <metrics loc="49" ncloc="29" classes="1" methods="3" coveredmethods="2" conditionals="0" coveredconditionals="0" statements="7" coveredstatements="5" elements="10" coveredelements="7"/>
    </file>
    <file name="/src/src/Git.php">
      <class name="MediaWiki\Tool\PatchCoverage\Git" namespace="global">
        <metrics complexity="8" methods="5" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="34" coveredstatements="33" elements="39" coveredelements="37"/>
      </class>
      <line num="40" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="41" type="stmt" count="2"/>
      <line num="43" type="method" name="getChangedFiles" visibility="public" complexity="3" crap="3" count="2"/>
      <line num="44" type="stmt" count="2"/>
      <line num="45" type="stmt" count="2"/>
      <line num="46" type="stmt" count="2"/>
      <line num="47" type="stmt" count="2"/>
      <line num="48" type="stmt" count="2"/>
      <line num="49" type="stmt" count="2"/>
      <line num="50" type="stmt" count="2"/>
      <line num="51" type="stmt" count="2"/>
      <line num="52" type="stmt" count="2"/>
      <line num="53" type="stmt" count="2"/>
      <line num="54" type="stmt" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="56" type="stmt" count="1"/>
      <line num="58" type="stmt" count="2"/>
      <line num="59" type="stmt" count="2"/>
      <line num="63" type="stmt" count="2"/>
      <line num="69" type="method" name="checkout" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="70" type="stmt" count="1"/>
      <line num="71" type="stmt" count="1"/>
      <line num="72" type="stmt" count="1"/>
      <line num="73" type="stmt" count="1"/>
      <line num="79" type="method" name="getSha1" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="80" type="stmt" count="1"/>
      <line num="81" type="stmt" count="1"/>
      <line num="82" type="stmt" count="1"/>
      <line num="83" type="stmt" count="1"/>
      <line num="84" type="stmt" count="1"/>
      <line num="91" type="method" name="findNonMergeCommit" visibility="public" complexity="2" crap="2.01" count="1"/>
      <line num="92" type="stmt" count="1"/>
      <line num="93" type="stmt" count="1"/>
      <line num="94" type="stmt" count="1"/>
      <line num="95" type="stmt" count="1"/>
      <line num="96" type="stmt" count="1"/>
      <line num="97" type="stmt" count="1"/>
      <line num="98" type="stmt" count="0"/>
      <line num="100" type="stmt" count="1"/>
      <metrics loc="104" ncloc="72" classes="1" methods="5" coveredmethods="4" conditionals="0" coveredconditionals="0" statements="34" coveredstatements="33" elements="39" coveredelements="37"/>
    </file>
    <file name="/src/src/GitChanged.php">
      <class name="MediaWiki\Tool\PatchCoverage\GitChanged" namespace="global">
        <metrics complexity="3" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="11" elements="14" coveredelements="14"/>
      </class>
      <line num="28" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="2"/>
      <line num="38" type="stmt" count="2"/>
      <line num="43" type="method" name="getPreviousFiles" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="44" type="stmt" count="1"/>
      <line num="45" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="47" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="54" type="method" name="getNewFiles" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="56" type="stmt" count="1"/>
      <line num="57" type="stmt" count="1"/>
      <line num="58" type="stmt" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <metrics loc="63" ncloc="33" classes="1" methods="3" coveredmethods="3" conditionals="0" coveredconditionals="0" statements="11" coveredstatements="11" elements="14" coveredelements="14"/>
    </file>
    <file name="/src/src/HtmlReport.php">
      <class name="MediaWiki\Tool\PatchCoverage\HtmlReport" namespace="global">
        <metrics complexity="5" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="17" coveredstatements="10" elements="19" coveredelements="11"/>
      </class>
      <line num="33" type="method" name="report" visibility="public" complexity="4" crap="5.34" count="1"/>
      <line num="34" type="stmt" count="1"/>
      <line num="35" type="stmt" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <line num="46" type="stmt" count="1"/>
      <line num="47" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <line num="51" type="stmt" count="0"/>
      <line num="52" type="stmt" count="0"/>
      <line num="53" type="stmt" count="0"/>
      <line num="54" type="stmt" count="0"/>
      <line num="55" type="stmt" count="0"/>
      <line num="56" type="stmt" count="0"/>
      <line num="57" type="stmt" count="0"/>
      <line num="61" type="stmt" count="1"/>
      <line num="64" type="method" name="getDiffStylesheet" visibility="private" complexity="1" crap="1" count="1"/>
      <line num="65" type="stmt" count="1"/>
      <metrics loc="68" ncloc="49" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="17" coveredstatements="10" elements="19" coveredelements="11"/>
    </file>
    <file name="/src/src/Parser/ClassTrackerVisitor.php">
      <class name="MediaWiki\Tool\PatchCoverage\Parser\ClassTrackerVisitor" namespace="global">
        <metrics complexity="3" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="5" coveredelements="5"/>
      </class>
      <line num="36" type="method" name="enterNode" visibility="public" complexity="3" crap="3" count="1"/>
      <line num="37" type="stmt" count="1"/>
      <line num="38" type="stmt" count="1"/>
      <line num="40" type="stmt" count="1"/>
      <line num="41" type="stmt" count="1"/>
      <metrics loc="45" ncloc="23" classes="1" methods="1" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="4" coveredstatements="4" elements="5" coveredelements="5"/>
    </file>
    <file name="/src/src/TestFinder.php">
      <class name="MediaWiki\Tool\PatchCoverage\TestFinder" namespace="global">
        <metrics complexity="5" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="15" elements="18" coveredelements="16"/>
      </class>
      <line num="30" type="method" name="__construct" visibility="public" complexity="1" crap="1" count="1"/>
      <line num="31" type="stmt" count="1"/>
      <line num="38" type="method" name="find" visibility="public" complexity="4" crap="4.00" count="1"/>
      <line num="39" type="stmt" count="1"/>
      <line num="40" type="stmt" count="0"/>
      <line num="42" type="stmt" count="1"/>
      <line num="43" type="stmt" count="1"/>
      <line num="44" type="stmt" count="1"/>
      <line num="48" type="stmt" count="1"/>
      <line num="49" type="stmt" count="1"/>
      <line num="50" type="stmt" count="1"/>
      <line num="51" type="stmt" count="1"/>
      <line num="52" type="stmt" count="1"/>
      <line num="53" type="stmt" count="1"/>
      <line num="54" type="stmt" count="1"/>
      <line num="55" type="stmt" count="1"/>
      <line num="59" type="stmt" count="1"/>
      <line num="60" type="stmt" count="1"/>
      <metrics loc="63" ncloc="36" classes="1" methods="2" coveredmethods="1" conditionals="0" coveredconditionals="0" statements="16" coveredstatements="15" elements="18" coveredelements="16"/>
    </file>
    <metrics files="8" loc="768" ncloc="522" classes="8" methods="25" coveredmethods="14" conditionals="0" coveredconditionals="0" statements="260" coveredstatements="228" elements="285" coveredelements="242"/>
  </project>
</coverage>
