@red-hat-developer-hub/backstage-plugin-scorecard-backend-module-dependabot 0.3.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +27 -0
- package/README.md +22 -0
- package/dist/metricProviders/DependabotConfig.cjs.js +4 -4
- package/dist/metricProviders/DependabotConfig.cjs.js.map +1 -1
- package/dist/metricProviders/DependabotMetricProvider.cjs.js +15 -16
- package/dist/metricProviders/DependabotMetricProvider.cjs.js.map +1 -1
- package/package.json +8 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,32 @@
|
|
|
1
1
|
# @red-hat-developer-hub/backstage-plugin-scorecard-backend-module-dependabot
|
|
2
2
|
|
|
3
|
+
## 0.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- 50447ac: Backstage version bump to v1.52.0
|
|
8
|
+
- dfb90b7: **BREAKING**: Standardize all metric and provider IDs from `snake_case` to `lowerCamelCase`.
|
|
9
|
+
|
|
10
|
+
This aligns metric IDs with the naming convention used in `app-config.yaml` and the planned Scorecard design. For example, `github.open_prs` is now `github.openPRs`, `sonarqube.quality_gate` is now `sonarqube.qualityGate`, and `dependabot.alerts_critical` is now `dependabot.alertsCritical`.
|
|
11
|
+
|
|
12
|
+
If you reference metric IDs in your `app-config.yaml` (e.g., in `metricId` fields or plugin schedule config keys), update them to use `lowerCamelCase`.
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Updated dependencies [c7f89e7]
|
|
17
|
+
- Updated dependencies [50447ac]
|
|
18
|
+
- Updated dependencies [6ea1575]
|
|
19
|
+
- @red-hat-developer-hub/backstage-plugin-scorecard-node@3.0.0
|
|
20
|
+
- @red-hat-developer-hub/backstage-plugin-scorecard-common@3.0.0
|
|
21
|
+
|
|
22
|
+
## 0.3.1
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- 7ead71c: Correct default threshold documentation and add missing threshold documentation in scorecard backend module READMEs to match provider code defaults.
|
|
27
|
+
- @red-hat-developer-hub/backstage-plugin-scorecard-common@2.8.1
|
|
28
|
+
- @red-hat-developer-hub/backstage-plugin-scorecard-node@2.8.1
|
|
29
|
+
|
|
3
30
|
## 0.3.0
|
|
4
31
|
|
|
5
32
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -7,3 +7,25 @@ Adds Dependabot alerts as a scorecard metric (`dependabot.alerts`, 0–9 from se
|
|
|
7
7
|
**Setup:** Entities need `github.com/project-slug: owner/repo` and `github.com/dependabot: 'true'` (exact string) to opt in. GitHub token must have `security_events` (or Dependabot read) so the backend can call the Dependabot API.
|
|
8
8
|
|
|
9
9
|
**How it works:** **DependabotClient** fetches open alerts from the GitHub API (by severity, with pagination). **DependabotMetricProvider** (one per severity) uses the client to score entities. The **factory** (`createDependabotMetricProvider` / `createDependabotMetricProviders`) builds single or all-four providers; the module registers the four (critical, high, medium, low) with the scorecard backend.
|
|
10
|
+
|
|
11
|
+
## Default thresholds
|
|
12
|
+
|
|
13
|
+
All four severity metrics share the same default thresholds. Default thresholds for `dependabot.alertsCritical`:
|
|
14
|
+
|
|
15
|
+
```yaml
|
|
16
|
+
# app-config.yaml
|
|
17
|
+
scorecard:
|
|
18
|
+
plugins:
|
|
19
|
+
dependabot:
|
|
20
|
+
alertsCritical:
|
|
21
|
+
thresholds:
|
|
22
|
+
rules:
|
|
23
|
+
- key: success
|
|
24
|
+
expression: '<1'
|
|
25
|
+
- key: warning
|
|
26
|
+
expression: '1-7'
|
|
27
|
+
- key: error
|
|
28
|
+
expression: '>7'
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Replace `alertsCritical` with `alertsHigh`, `alertsMedium`, or `alertsLow` for the other severity metrics. See [threshold configuration](../scorecard-backend/docs/thresholds.md) for custom configuration.
|
|
@@ -15,22 +15,22 @@ const DEPENDABOT_THRESHOLDS = {
|
|
|
15
15
|
};
|
|
16
16
|
const DEPENDABOT_SEVERITY_METRIC = {
|
|
17
17
|
critical: {
|
|
18
|
-
id: "dependabot.
|
|
18
|
+
id: "dependabot.alertsCritical",
|
|
19
19
|
title: "Dependabot Critical Alerts",
|
|
20
20
|
description: "Current count of open critical Dependabot alerts for a given repository."
|
|
21
21
|
},
|
|
22
22
|
high: {
|
|
23
|
-
id: "dependabot.
|
|
23
|
+
id: "dependabot.alertsHigh",
|
|
24
24
|
title: "Dependabot High Alerts",
|
|
25
25
|
description: "Current count of open high-severity Dependabot alerts for a given repository."
|
|
26
26
|
},
|
|
27
27
|
medium: {
|
|
28
|
-
id: "dependabot.
|
|
28
|
+
id: "dependabot.alertsMedium",
|
|
29
29
|
title: "Dependabot Medium Alerts",
|
|
30
30
|
description: "Current count of open medium-severity Dependabot alerts for a given repository."
|
|
31
31
|
},
|
|
32
32
|
low: {
|
|
33
|
-
id: "dependabot.
|
|
33
|
+
id: "dependabot.alertsLow",
|
|
34
34
|
title: "Dependabot Low Alerts",
|
|
35
35
|
description: "Current count of open low-severity Dependabot alerts for a given repository."
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependabotConfig.cjs.js","sources":["../../src/metricProviders/DependabotConfig.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ThresholdConfig } from '@red-hat-developer-hub/backstage-plugin-scorecard-common';\n\nexport const DEPENDABOT_SEVERITIES = [\n 'critical',\n 'high',\n 'medium',\n 'low',\n] as const;\n\nexport type DependabotSeverity = (typeof DEPENDABOT_SEVERITIES)[number];\n\nexport type DependabotRepository = {\n owner: string;\n repo: string;\n};\n\nexport interface DependabotMetricConfig {\n name: string;\n displayTitle: string;\n description: string;\n}\n\nexport const DEPENDABOT_THRESHOLDS: ThresholdConfig = {\n rules: [\n { key: 'success', expression: '<1' },\n { key: 'warning', expression: '1-7' },\n { key: 'error', expression: '>7' },\n ],\n};\n\nexport const DEPENDABOT_SEVERITY_METRIC: Record<\n DependabotSeverity,\n { id: string; title: string; description: string }\n> = {\n critical: {\n id: 'dependabot.
|
|
1
|
+
{"version":3,"file":"DependabotConfig.cjs.js","sources":["../../src/metricProviders/DependabotConfig.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ThresholdConfig } from '@red-hat-developer-hub/backstage-plugin-scorecard-common';\n\nexport const DEPENDABOT_SEVERITIES = [\n 'critical',\n 'high',\n 'medium',\n 'low',\n] as const;\n\nexport type DependabotSeverity = (typeof DEPENDABOT_SEVERITIES)[number];\n\nexport type DependabotRepository = {\n owner: string;\n repo: string;\n};\n\nexport interface DependabotMetricConfig {\n name: string;\n displayTitle: string;\n description: string;\n}\n\nexport const DEPENDABOT_THRESHOLDS: ThresholdConfig = {\n rules: [\n { key: 'success', expression: '<1' },\n { key: 'warning', expression: '1-7' },\n { key: 'error', expression: '>7' },\n ],\n};\n\nexport const DEPENDABOT_SEVERITY_METRIC: Record<\n DependabotSeverity,\n { id: string; title: string; description: string }\n> = {\n critical: {\n id: 'dependabot.alertsCritical',\n title: 'Dependabot Critical Alerts',\n description:\n 'Current count of open critical Dependabot alerts for a given repository.',\n },\n high: {\n id: 'dependabot.alertsHigh',\n title: 'Dependabot High Alerts',\n description:\n 'Current count of open high-severity Dependabot alerts for a given repository.',\n },\n medium: {\n id: 'dependabot.alertsMedium',\n title: 'Dependabot Medium Alerts',\n description:\n 'Current count of open medium-severity Dependabot alerts for a given repository.',\n },\n low: {\n id: 'dependabot.alertsLow',\n title: 'Dependabot Low Alerts',\n description:\n 'Current count of open low-severity Dependabot alerts for a given repository.',\n },\n};\n"],"names":[],"mappings":";;AAkBO,MAAM,qBAAA,GAAwB;AAAA,EACnC,UAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF;AAeO,MAAM,qBAAA,GAAyC;AAAA,EACpD,KAAA,EAAO;AAAA,IACL,EAAE,GAAA,EAAK,SAAA,EAAW,UAAA,EAAY,IAAA,EAAK;AAAA,IACnC,EAAE,GAAA,EAAK,SAAA,EAAW,UAAA,EAAY,KAAA,EAAM;AAAA,IACpC,EAAE,GAAA,EAAK,OAAA,EAAS,UAAA,EAAY,IAAA;AAAK;AAErC;AAEO,MAAM,0BAAA,GAGT;AAAA,EACF,QAAA,EAAU;AAAA,IACR,EAAA,EAAI,2BAAA;AAAA,IACJ,KAAA,EAAO,4BAAA;AAAA,IACP,WAAA,EACE;AAAA,GACJ;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,EAAA,EAAI,uBAAA;AAAA,IACJ,KAAA,EAAO,wBAAA;AAAA,IACP,WAAA,EACE;AAAA,GACJ;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,EAAA,EAAI,yBAAA;AAAA,IACJ,KAAA,EAAO,0BAAA;AAAA,IACP,WAAA,EACE;AAAA,GACJ;AAAA,EACA,GAAA,EAAK;AAAA,IACH,EAAA,EAAI,sBAAA;AAAA,IACJ,KAAA,EAAO,uBAAA;AAAA,IACP,WAAA,EACE;AAAA;AAEN;;;;;;"}
|
|
@@ -19,21 +19,18 @@ class DependabotMetricProvider {
|
|
|
19
19
|
getProviderId() {
|
|
20
20
|
return DependabotConfig.DEPENDABOT_SEVERITY_METRIC[this.severity].id;
|
|
21
21
|
}
|
|
22
|
-
|
|
23
|
-
return "number";
|
|
24
|
-
}
|
|
25
|
-
getMetric() {
|
|
22
|
+
getMetrics() {
|
|
26
23
|
const meta = DependabotConfig.DEPENDABOT_SEVERITY_METRIC[this.severity];
|
|
27
|
-
return
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
24
|
+
return [
|
|
25
|
+
{
|
|
26
|
+
id: meta.id,
|
|
27
|
+
title: meta.title,
|
|
28
|
+
description: meta.description,
|
|
29
|
+
type: "number",
|
|
30
|
+
thresholds: DependabotConfig.DEPENDABOT_THRESHOLDS,
|
|
31
|
+
history: true
|
|
32
|
+
}
|
|
33
|
+
];
|
|
37
34
|
}
|
|
38
35
|
getCatalogFilter() {
|
|
39
36
|
return {
|
|
@@ -60,7 +57,7 @@ class DependabotMetricProvider {
|
|
|
60
57
|
}
|
|
61
58
|
return { owner, repo };
|
|
62
59
|
}
|
|
63
|
-
async
|
|
60
|
+
async calculateMetrics(entity) {
|
|
64
61
|
const repository = this.getRepository(entity);
|
|
65
62
|
const { target } = catalogModel.getEntitySourceLocation(entity);
|
|
66
63
|
const alerts = await this.dependabotClient.getAlerts(
|
|
@@ -68,7 +65,9 @@ class DependabotMetricProvider {
|
|
|
68
65
|
repository,
|
|
69
66
|
this.severity
|
|
70
67
|
);
|
|
71
|
-
|
|
68
|
+
const results = /* @__PURE__ */ new Map();
|
|
69
|
+
results.set(this.getProviderId(), alerts.length);
|
|
70
|
+
return results;
|
|
72
71
|
}
|
|
73
72
|
}
|
|
74
73
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DependabotMetricProvider.cjs.js","sources":["../../src/metricProviders/DependabotMetricProvider.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport {
|
|
1
|
+
{"version":3,"file":"DependabotMetricProvider.cjs.js","sources":["../../src/metricProviders/DependabotMetricProvider.ts"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Metric } from '@red-hat-developer-hub/backstage-plugin-scorecard-common';\nimport { MetricProvider } from '@red-hat-developer-hub/backstage-plugin-scorecard-node';\nimport type { LoggerService } from '@backstage/backend-plugin-api';\nimport type { Config } from '@backstage/config';\nimport {\n stringifyEntityRef,\n type Entity,\n getEntitySourceLocation,\n} from '@backstage/catalog-model';\nimport { CATALOG_FILTER_EXISTS } from '@backstage/catalog-client';\n\nimport { DependabotClient } from '../clients/DependabotClient';\nimport {\n type DependabotSeverity,\n DEPENDABOT_SEVERITY_METRIC,\n DEPENDABOT_THRESHOLDS,\n DependabotRepository,\n} from './DependabotConfig';\n\nconst GITHUB_PROJECT_ANNOTATION = 'github.com/project-slug';\n\n/**\n * Metric provider for Dependabot alerts of a single severity (critical, high, medium, low).\n * Use one instance per severity; the module registers four providers.\n */\nexport class DependabotMetricProvider implements MetricProvider<'number'> {\n private readonly dependabotClient: DependabotClient;\n private readonly severity: DependabotSeverity;\n\n constructor(\n config: Config,\n logger: LoggerService,\n severity: DependabotSeverity,\n ) {\n this.severity = severity;\n this.dependabotClient = new DependabotClient(config, logger);\n }\n\n getProviderDatasourceId(): string {\n return 'dependabot';\n }\n\n getProviderId(): string {\n return DEPENDABOT_SEVERITY_METRIC[this.severity].id;\n }\n\n getMetrics(): Metric<'number'>[] {\n const meta = DEPENDABOT_SEVERITY_METRIC[this.severity];\n return [\n {\n id: meta.id,\n title: meta.title,\n description: meta.description,\n type: 'number',\n thresholds: DEPENDABOT_THRESHOLDS,\n history: true,\n },\n ];\n }\n\n getCatalogFilter(): Record<string, string | symbol | (string | symbol)[]> {\n return {\n 'metadata.annotations.github.com/project-slug': CATALOG_FILTER_EXISTS,\n 'metadata.annotations.github.com/dependabot': 'true',\n };\n }\n\n getRepository(entity: Entity): DependabotRepository {\n const projectSlug =\n entity.metadata.annotations?.[GITHUB_PROJECT_ANNOTATION];\n if (!projectSlug) {\n throw new Error(\n `Missing annotation '${GITHUB_PROJECT_ANNOTATION}' for entity ${stringifyEntityRef(\n entity,\n )}`,\n );\n }\n\n const [owner, repo] = projectSlug.split('/');\n if (!owner || !repo) {\n throw new Error(\n `Invalid format of '${GITHUB_PROJECT_ANNOTATION}' ${projectSlug} for entity ${stringifyEntityRef(\n entity,\n )}`,\n );\n }\n\n return { owner, repo };\n }\n\n async calculateMetrics(entity: Entity): Promise<Map<string, number>> {\n const repository = this.getRepository(entity);\n const { target } = getEntitySourceLocation(entity);\n const alerts = await this.dependabotClient.getAlerts(\n target,\n repository,\n this.severity,\n );\n const results = new Map<string, number>();\n results.set(this.getProviderId(), alerts.length);\n return results;\n }\n}\n"],"names":["DependabotClient","DEPENDABOT_SEVERITY_METRIC","DEPENDABOT_THRESHOLDS","CATALOG_FILTER_EXISTS","stringifyEntityRef","getEntitySourceLocation"],"mappings":";;;;;;;AAmCA,MAAM,yBAAA,GAA4B,yBAAA;AAM3B,MAAM,wBAAA,CAA6D;AAAA,EACvD,gBAAA;AAAA,EACA,QAAA;AAAA,EAEjB,WAAA,CACE,MAAA,EACA,MAAA,EACA,QAAA,EACA;AACA,IAAA,IAAA,CAAK,QAAA,GAAW,QAAA;AAChB,IAAA,IAAA,CAAK,gBAAA,GAAmB,IAAIA,iCAAA,CAAiB,MAAA,EAAQ,MAAM,CAAA;AAAA,EAC7D;AAAA,EAEA,uBAAA,GAAkC;AAChC,IAAA,OAAO,YAAA;AAAA,EACT;AAAA,EAEA,aAAA,GAAwB;AACtB,IAAA,OAAOC,2CAAA,CAA2B,IAAA,CAAK,QAAQ,CAAA,CAAE,EAAA;AAAA,EACnD;AAAA,EAEA,UAAA,GAAiC;AAC/B,IAAA,MAAM,IAAA,GAAOA,2CAAA,CAA2B,IAAA,CAAK,QAAQ,CAAA;AACrD,IAAA,OAAO;AAAA,MACL;AAAA,QACE,IAAI,IAAA,CAAK,EAAA;AAAA,QACT,OAAO,IAAA,CAAK,KAAA;AAAA,QACZ,aAAa,IAAA,CAAK,WAAA;AAAA,QAClB,IAAA,EAAM,QAAA;AAAA,QACN,UAAA,EAAYC,sCAAA;AAAA,QACZ,OAAA,EAAS;AAAA;AACX,KACF;AAAA,EACF;AAAA,EAEA,gBAAA,GAA0E;AACxE,IAAA,OAAO;AAAA,MACL,8CAAA,EAAgDC,mCAAA;AAAA,MAChD,4CAAA,EAA8C;AAAA,KAChD;AAAA,EACF;AAAA,EAEA,cAAc,MAAA,EAAsC;AAClD,IAAA,MAAM,WAAA,GACJ,MAAA,CAAO,QAAA,CAAS,WAAA,GAAc,yBAAyB,CAAA;AACzD,IAAA,IAAI,CAAC,WAAA,EAAa;AAChB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,oBAAA,EAAuB,yBAAyB,CAAA,aAAA,EAAgBC,+BAAA;AAAA,UAC9D;AAAA,SACD,CAAA;AAAA,OACH;AAAA,IACF;AAEA,IAAA,MAAM,CAAC,KAAA,EAAO,IAAI,CAAA,GAAI,WAAA,CAAY,MAAM,GAAG,CAAA;AAC3C,IAAA,IAAI,CAAC,KAAA,IAAS,CAAC,IAAA,EAAM;AACnB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,mBAAA,EAAsB,yBAAyB,CAAA,EAAA,EAAK,WAAW,CAAA,YAAA,EAAeA,+BAAA;AAAA,UAC5E;AAAA,SACD,CAAA;AAAA,OACH;AAAA,IACF;AAEA,IAAA,OAAO,EAAE,OAAO,IAAA,EAAK;AAAA,EACvB;AAAA,EAEA,MAAM,iBAAiB,MAAA,EAA8C;AACnE,IAAA,MAAM,UAAA,GAAa,IAAA,CAAK,aAAA,CAAc,MAAM,CAAA;AAC5C,IAAA,MAAM,EAAE,MAAA,EAAO,GAAIC,oCAAA,CAAwB,MAAM,CAAA;AACjD,IAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,gBAAA,CAAiB,SAAA;AAAA,MACzC,MAAA;AAAA,MACA,UAAA;AAAA,MACA,IAAA,CAAK;AAAA,KACP;AACA,IAAA,MAAM,OAAA,uBAAc,GAAA,EAAoB;AACxC,IAAA,OAAA,CAAQ,GAAA,CAAI,IAAA,CAAK,aAAA,EAAc,EAAG,OAAO,MAAM,CAAA;AAC/C,IAAA,OAAO,OAAA;AAAA,EACT;AACF;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@red-hat-developer-hub/backstage-plugin-scorecard-backend-module-dependabot",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "The dependabot backend module for the scorecard plugin.",
|
|
6
6
|
"main": "dist/index.cjs.js",
|
|
@@ -33,18 +33,18 @@
|
|
|
33
33
|
"postpack": "backstage-cli package postpack"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@backstage/backend-plugin-api": "^1.9.
|
|
37
|
-
"@backstage/catalog-client": "^1.
|
|
36
|
+
"@backstage/backend-plugin-api": "^1.9.2",
|
|
37
|
+
"@backstage/catalog-client": "^1.16.0",
|
|
38
38
|
"@backstage/catalog-model": "^1.9.0",
|
|
39
39
|
"@backstage/config": "^1.3.8",
|
|
40
|
-
"@backstage/integration": "^2.0.
|
|
40
|
+
"@backstage/integration": "^2.0.3",
|
|
41
41
|
"@octokit/rest": "^19.0.3",
|
|
42
|
-
"@red-hat-developer-hub/backstage-plugin-scorecard-common": "^
|
|
43
|
-
"@red-hat-developer-hub/backstage-plugin-scorecard-node": "^
|
|
42
|
+
"@red-hat-developer-hub/backstage-plugin-scorecard-common": "^3.0.0",
|
|
43
|
+
"@red-hat-developer-hub/backstage-plugin-scorecard-node": "^3.0.0"
|
|
44
44
|
},
|
|
45
45
|
"devDependencies": {
|
|
46
|
-
"@backstage/backend-test-utils": "^1.11.
|
|
47
|
-
"@backstage/cli": "^0.36.
|
|
46
|
+
"@backstage/backend-test-utils": "^1.11.4",
|
|
47
|
+
"@backstage/cli": "^0.36.3"
|
|
48
48
|
},
|
|
49
49
|
"files": [
|
|
50
50
|
"dist"
|