Skip to content

Commit

Permalink
Merge branch 'master' into express
Browse files Browse the repository at this point in the history
  • Loading branch information
paulmelnikow authored Apr 24, 2022
2 parents ca6ae88 + ec2bbf4 commit fc68b88
Show file tree
Hide file tree
Showing 5 changed files with 110 additions and 29 deletions.
54 changes: 27 additions & 27 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -181,7 +181,7 @@
"eslint-plugin-chai-friendly": "^0.7.2",
"eslint-plugin-cypress": "^2.12.1",
"eslint-plugin-import": "^2.26.0",
"eslint-plugin-jsdoc": "^39.2.1",
"eslint-plugin-jsdoc": "^39.2.7",
"eslint-plugin-mocha": "^10.0.3",
"eslint-plugin-no-extension-in-require": "^0.2.0",
"eslint-plugin-node": "^11.1.0",
Expand Down
3 changes: 2 additions & 1 deletion services/github/github-language-count.service.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { metric } from '../text-formatters.js'
import { BaseGithubLanguage } from './github-languages-base.js'
import { documentation } from './github-helpers.js'

Expand All @@ -20,7 +21,7 @@ export default class GithubLanguageCount extends BaseGithubLanguage {

static render({ count }) {
return {
message: count,
message: metric(count),
color: 'blue',
}
}
Expand Down
55 changes: 55 additions & 0 deletions services/ossf-scorecard/ossf-scorecard.service.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
import Joi from 'joi'
import { BaseJsonService } from '../index.js'
import { colorScale } from '../color-formatters.js'

const schema = Joi.object({
score: Joi.number().min(0).required(),
}).required()

const ossfScorecardColorScale = colorScale(
[2, 5, 8, 10],
['red', 'yellow', 'yellowgreen', 'green', 'brightgreen']
)

export default class OSSFScorecard extends BaseJsonService {
static category = 'analysis'

static route = { base: 'ossf-scorecard', pattern: ':host/:orgName/:repoName' }

static examples = [
{
title: 'OSSF-Scorecard Score',
namedParams: {
host: 'github.com',
orgName: 'rohankh532',
repoName: 'org-workflow-add',
},
staticPreview: this.render({ score: '7.5' }),
},
]

static defaultBadgeData = { label: 'score' }

static render({ score }) {
return {
message: score,
color: ossfScorecardColorScale(score),
}
}

async fetch({ host, orgName, repoName }) {
return this._requestJson({
schema,
url: `https://api.securityscorecards.dev/projects/${host}/${orgName}/${repoName}`,
errorMessages: {
404: 'invalid repo path',
},
})
}

async handle({ host, orgName, repoName }) {
const { score } = await this.fetch({ host, orgName, repoName })

return this.constructor.render({ score })
}
}
25 changes: 25 additions & 0 deletions services/ossf-scorecard/ossf-scorecard.tester.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import Joi from 'joi'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()

t.create('score valid')
.get('/github.com/rohankh532/org-workflow-add.json')
.expectBadge({
label: 'score',
message: Joi.number().min(0),
color: Joi.string().allow(
'red',
'yellow',
'yellowgreen',
'green',
'brightgreen'
),
})

t.create('score ivalid')
.get('/github.com/invalid-user/invalid-repo.json')
.expectBadge({
label: 'score',
message: 'invalid repo path',
color: 'red',
})

0 comments on commit fc68b88

Please sign in to comment.