mirror of
https://github.com/github/codeql.git
synced 2026-04-26 01:05:15 +02:00
Merge pull request #11251 from igfoo/igfoo/total
Kotlin: Add total number of diagnostics to telemetry
This commit is contained in:
@@ -60,6 +60,29 @@ predicate extractorDiagnostics(string key, int value) {
|
||||
)
|
||||
}
|
||||
|
||||
/*
|
||||
* Just counting the diagnostics doesn't give the full picture, as
|
||||
* CODEQL_EXTRACTOR_KOTLIN_DIAGNOSTIC_LIMIT means that some diagnostics
|
||||
* will be suppressed. In that case, we need to look for the
|
||||
* suppression message, uncount those that did get emitted, uncount the
|
||||
* suppression message itself, and then add on the full count.
|
||||
*/
|
||||
|
||||
predicate extractorTotalDiagnostics(string key, int value) {
|
||||
exists(string extractor, string limitRegex |
|
||||
limitRegex = "Total of ([0-9]+) diagnostics \\(reached limit of ([0-9]+)\\).*" and
|
||||
key = "Total number of diagnostics from " + extractor and
|
||||
value =
|
||||
strictcount(Diagnostic d | d.getGeneratedBy() = extractor) +
|
||||
sum(Diagnostic d |
|
||||
d.getGeneratedBy() = extractor
|
||||
|
|
||||
d.getMessage().regexpCapture(limitRegex, 1).toInt() -
|
||||
d.getMessage().regexpCapture(limitRegex, 2).toInt() - 1
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
from string key, int value
|
||||
where
|
||||
compilationInfo(key, value) or
|
||||
@@ -69,5 +92,6 @@ where
|
||||
numberOfLinesOfCode(key, value) or
|
||||
totalNumberOfLinesByExtension(key, value) or
|
||||
numberOfLinesOfCodeByExtension(key, value) or
|
||||
extractorDiagnostics(key, value)
|
||||
extractorDiagnostics(key, value) or
|
||||
extractorTotalDiagnostics(key, value)
|
||||
select key, value
|
||||
|
||||
Reference in New Issue
Block a user