2441d1cf59
Bumps [knex](https://github.com/knex/knex) from 0.95.6 to 1.0.2. - [Release notes](https://github.com/knex/knex/releases) - [Changelog](https://github.com/knex/knex/blob/master/CHANGELOG.md) - [Commits](https://github.com/knex/knex/commits) --- updated-dependencies: - dependency-name: knex dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <support@github.com>
code-coverage-backend
This is the backend part of the code-coverage plugin. It takes care of processing various coverage formats and standardizing them into a single json format, used by the frontend.
Configuring your entity
In order to use this plugin, you must set the backstage.io/code-coverage annotation.
metadata:
annotations:
backstage.io/code-coverage: enabled
There's a feature to only include files that are in VCS in the coverage report, this is helpful to not count generated files for example. To enable this set the backstage.io/code-coverage annotation to scm-only.
metadata:
annotations:
backstage.io/code-coverage: scm-only
Note: It may be required to set the backstage.io/source-location annotation, however this should generally not be needed.
API
Adding a Cobertura report
POST a Cobertura XML file to /report
Example:
// curl -X POST -H "Content-Type:text/xml" -d @cobertura.xml "localhost:7007/api/code-coverage/report?entity=component:default/entity-name&coverageType=cobertura"
{
"links": [
{
"href": "http://localhost:7007/api/code-coverage/report?entity=component:default/entity-name",
"rel": "coverage"
}
]
}
Adding a JaCoCo report
POST a JaCoCo XML file to /report
Example:
// curl -X POST -H "Content-Type:text/xml" -d @jacoco.xml "localhost:7007/api/code-coverage/report?entity=component:default/entity-name&coverageType=jacoco"
{
"links": [
{
"href": "http://localhost:7007/api/code-coverage/report?entity=component:default/entity-name",
"rel": "coverage"
}
]
}
Reading json coverage
GET /report
Example:
// curl localhost:7007/api/code-coverage/report?entity=component:default/entity-name
{
"aggregate": {
"branch": {
"available": 0,
"covered": 0,
"missed": 0,
"percentage": 0
},
"line": {
"available": 5,
"covered": 4,
"missed": 1,
"percentage": 80
}
},
"entity": {
"kind": "Component",
"name": "entity-name",
"namespace": "default"
},
"files": [
{
"branchHits": {},
"filename": "main.go",
"lineHits": {
"117": 12,
"142": 8,
"34": 8,
"42": 0,
"58": 6
}
}
]
}
Coverage history
GET /history
Example
// curl localhost:7007/api/code-coverage/history?entity=component:default/entity-name
{
"entity": {
"kind": "Component",
"name": "entity-name",
"namespace": "default"
},
"history": [
{
"branch": {
"available": 0,
"covered": 0,
"missed": 0,
"percentage": 0
},
"line": {
"available": 299,
"covered": 116,
"missed": 183,
"percentage": 38.8
},
"timestamp": 1615490766141
},
{
"branch": {
"available": 0,
"covered": 0,
"missed": 0,
"percentage": 0
},
"line": {
"available": 299,
"covered": 116,
"missed": 183,
"percentage": 38.8
},
"timestamp": 1615406307929
}
]
}