Files
shields/services/sonar/sonar-helpers.js
dependabot[bot] b9d96755ec chore(deps-dev): bump prettier from 2.8.8 to 3.0.0 (#9357)
* chore(deps-dev): bump prettier from 2.8.8 to 3.0.0

Bumps [prettier](https://github.com/prettier/prettier) from 2.8.8 to 3.0.0.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.8...3.0.0)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* reformat all the things (prettier 3)

* update tests to await calls to prettier.format()

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: chris48s <git@chris-shaw.dev>
2023-07-10 09:27:51 +00:00

70 lines
1.7 KiB
JavaScript

import Joi from 'joi'
import { colorScale } from '../color-formatters.js'
import { optionalUrl } from '../validators.js'
const ratingPercentageScaleSteps = [10, 20, 50, 100]
const ratingScaleColors = [
'brightgreen',
'yellowgreen',
'yellow',
'orange',
'red',
]
const negativeMetricColorScale = colorScale(
ratingPercentageScaleSteps,
ratingScaleColors,
)
const positiveMetricColorScale = colorScale(
ratingPercentageScaleSteps,
ratingScaleColors,
true,
)
function isLegacyVersion({ sonarVersion }) {
sonarVersion = parseFloat(sonarVersion)
return !!sonarVersion && sonarVersion < 5.4
}
function getLabel({ metric }) {
return metric ? metric.replace(/_/g, ' ') : undefined
}
const sonarVersionSchema = Joi.alternatives(
Joi.string()
.regex(/[0-9.]+/)
.optional(),
Joi.number().optional(),
)
const queryParamSchema = Joi.object({
sonarVersion: sonarVersionSchema,
server: optionalUrl.required(),
}).required()
const queryParamWithFormatSchema = Joi.object({
sonarVersion: sonarVersionSchema,
server: optionalUrl.required(),
format: Joi.string().allow('short', 'long').optional(),
}).required()
const keywords = ['sonarcloud', 'sonarqube']
const documentation = `<p>
The Sonar badges will work with both SonarCloud.io and self-hosted SonarQube instances.
Just enter the correct protocol and path for your target Sonar deployment.
</p>
<p>
If you are targeting a legacy SonarQube instance that is version 5.3 or earlier, then be sure
to include the version query parameter with the value of your SonarQube version.
</p>
`
export {
getLabel,
isLegacyVersion,
queryParamSchema,
queryParamWithFormatSchema,
negativeMetricColorScale,
positiveMetricColorScale,
keywords,
documentation,
}