mirror of
https://github.com/github/codeql-action.git
synced 2025-12-26 09:10:07 +08:00
44 lines
1.4 KiB
JavaScript
44 lines
1.4 KiB
JavaScript
'use strict'
|
|
|
|
const core = require('@actions/core')
|
|
const fs = require('fs')
|
|
|
|
const sarif = JSON.parse(fs.readFileSync(core.getInput('sarif-file'), 'utf8'))
|
|
const rules = sarif.runs[0].tool.extensions.flatMap(ext => ext.rules || [])
|
|
const ruleIds = rules.map(rule => rule.id)
|
|
|
|
// Check that all the expected queries ran
|
|
const expectedQueriesRun = getQueryIdsInput('queries-run')
|
|
const queriesThatShouldHaveRunButDidNot = expectedQueriesRun.filter(queryId => !ruleIds.includes(queryId))
|
|
|
|
if (queriesThatShouldHaveRunButDidNot.length > 0) {
|
|
core.setFailed(`The following queries were expected to run but did not: ${queriesThatShouldHaveRunButDidNot.join(', ')}`)
|
|
}
|
|
|
|
// Check that all the unexpected queries did not run
|
|
const expectedQueriesNotRun = getQueryIdsInput('queries-not-run')
|
|
|
|
const queriesThatShouldNotHaveRunButDid = expectedQueriesNotRun.filter(queryId => ruleIds.includes(queryId))
|
|
|
|
if (queriesThatShouldNotHaveRunButDid.length > 0) {
|
|
core.setFailed(`The following queries were NOT expected to have run but did: ${queriesThatShouldNotHaveRunButDid.join(', ')}`)
|
|
}
|
|
|
|
|
|
core.startGroup('All queries run')
|
|
rules.forEach(rule => {
|
|
core.info(`${rule.id}: ${(rule.properties && rule.properties.name) || rule.name}`)
|
|
})
|
|
core.endGroup()
|
|
|
|
core.startGroup('Full SARIF')
|
|
core.info(JSON.stringify(sarif, null, 2))
|
|
core.endGroup()
|
|
|
|
function getQueryIdsInput(name) {
|
|
return core.getInput(name)
|
|
.split(',')
|
|
.map(q => q.trim())
|
|
.filter(q => q.length > 0)
|
|
}
|