Completed
Push — master ( 293d26...b92c2d )
by Dave
16s queued 11s
created

GithubActionsOutputFormatter   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 26
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 13
c 1
b 0
f 0
dl 0
loc 26
rs 10
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A getIdentifier() 0 3 1
A outputResults() 0 19 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace DaveLiddament\StaticAnalysisResultsBaseliner\Plugins\OutputFormatters;
6
7
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\OutputFormatter\OutputFormatter;
8
use DaveLiddament\StaticAnalysisResultsBaseliner\Domain\ResultsParser\AnalysisResults;
9
10
class GithubActionsOutputFormatter implements OutputFormatter
11
{
12
    public function outputResults(
13
        AnalysisResults $baseLineRemovedResults
14
    ): string {
15
        $lines = [];
16
17
        foreach ($baseLineRemovedResults->getAnalysisResults() as $analysisResult) {
18
            $location = $analysisResult->getLocation();
19
20
            $message = str_replace("\n", '%0A', $analysisResult->getMessage());
21
            $lines[] = sprintf(
22
                '::%s file=%s,line=%d::%s',
23
                $analysisResult->getType()->getType(),
24
                $location->getAbsoluteFileName()->getFileName(),
25
                $location->getLineNumber()->getLineNumber(),
26
                $message,
27
            );
28
        }
29
30
        return implode(\PHP_EOL, $lines);
31
    }
32
33
    public function getIdentifier(): string
34
    {
35
        return 'github';
36
    }
37
}
38