@red-hat-developer-hub/backstage-plugin-scorecard-backend-module-dependabot 0.2.12 → 0.3.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 CHANGED
@@ -1,5 +1,25 @@
1
1
  # @red-hat-developer-hub/backstage-plugin-scorecard-backend-module-dependabot
2
2
 
3
+ ## 0.3.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 8c85bd4: Backstage version bump to v1.51.1
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [efb4c4f]
12
+ - Updated dependencies [8c85bd4]
13
+ - @red-hat-developer-hub/backstage-plugin-scorecard-node@2.8.0
14
+ - @red-hat-developer-hub/backstage-plugin-scorecard-common@2.8.0
15
+
16
+ ## 0.2.13
17
+
18
+ ### Patch Changes
19
+
20
+ - @red-hat-developer-hub/backstage-plugin-scorecard-common@2.7.9
21
+ - @red-hat-developer-hub/backstage-plugin-scorecard-node@2.7.9
22
+
3
23
  ## 0.2.12
4
24
 
5
25
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"DependabotClient.cjs.js","sources":["../../src/clients/DependabotClient.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 type { LoggerService } from '@backstage/backend-plugin-api';\nimport type { Config } from '@backstage/config';\nimport {\n DefaultGithubCredentialsProvider,\n ScmIntegrations,\n} from '@backstage/integration';\nimport { Octokit } from '@octokit/rest';\nimport {\n DependabotRepository,\n DependabotSeverity,\n} from '../metricProviders/DependabotConfig';\n\ninterface GitHubDependabotAlert {\n number: number;\n description: string;\n createdAt: string;\n state: string;\n securityAdvisory: {\n severity: string;\n };\n}\n\nconst PER_PAGE = 100;\nexport class DependabotClient {\n private readonly integrations: ScmIntegrations;\n private readonly logger: LoggerService;\n\n constructor(config: Config, logger: LoggerService) {\n this.integrations = ScmIntegrations.fromConfig(config);\n this.logger = logger.child({ component: 'DependabotClient' });\n }\n\n private async getOctokit(url: string): Promise<Octokit> {\n const githubIntegration = this.integrations.github.byUrl(url);\n if (!githubIntegration) {\n throw new Error(`Missing GitHub integration for '${url}'`);\n }\n\n const baseUrl = githubIntegration.config.apiBaseUrl;\n if (!baseUrl) {\n throw new Error(`Missing GitHub API base URL for '${url}'`);\n }\n\n const credentialsProvider =\n DefaultGithubCredentialsProvider.fromIntegrations(this.integrations);\n\n const { token } = await credentialsProvider.getCredentials({\n url,\n });\n\n if (!token) {\n throw new Error(`Missing GitHub token for '${url}'`);\n }\n\n return new Octokit({\n auth: token,\n baseUrl: baseUrl.replace(/\\/$/, ''),\n });\n }\n /**\n * @param url - The URL of the repository.\n * @param repository - The repository owner and name.\n * @param severity - The severity of the alerts to fetch.\n * @returns All alerts for the given repository and severity.\n */\n async getAlerts(\n url: string,\n repository: DependabotRepository,\n severity: DependabotSeverity,\n ): Promise<GitHubDependabotAlert[]> {\n this.logger.debug(\n `Fetching Dependabot ${severity} alerts for ${repository.owner}/${repository.repo}`,\n );\n try {\n const octokit = await this.getOctokit(url);\n\n const allAlerts = (await octokit.paginate(\n 'GET /repos/{owner}/{repo}/dependabot/alerts',\n {\n owner: repository.owner,\n repo: repository.repo,\n state: 'open',\n severity,\n per_page: PER_PAGE,\n },\n )) as unknown as GitHubDependabotAlert[];\n\n this.logger.debug(\n `Fetched ${allAlerts.length} Dependabot ${severity} alert(s) for ${repository.owner}/${repository.repo}`,\n );\n return allAlerts;\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n this.logger.warn(\n `Failed to fetch Dependabot ${severity} alerts for ${repository.owner}/${repository.repo}: ${message}`,\n error,\n );\n throw error;\n }\n }\n}\n"],"names":["ScmIntegrations","DefaultGithubCredentialsProvider","Octokit"],"mappings":"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"}
1
+ {"version":3,"file":"DependabotClient.cjs.js","sources":["../../src/clients/DependabotClient.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 type { LoggerService } from '@backstage/backend-plugin-api';\nimport type { Config } from '@backstage/config';\nimport {\n DefaultGithubCredentialsProvider,\n ScmIntegrations,\n} from '@backstage/integration';\nimport { Octokit } from '@octokit/rest';\nimport {\n DependabotRepository,\n DependabotSeverity,\n} from '../metricProviders/DependabotConfig';\n\ninterface GitHubDependabotAlert {\n number: number;\n description: string;\n createdAt: string;\n state: string;\n securityAdvisory: {\n severity: string;\n };\n}\n\nconst PER_PAGE = 100;\nexport class DependabotClient {\n private readonly integrations: ScmIntegrations;\n private readonly logger: LoggerService;\n\n constructor(config: Config, logger: LoggerService) {\n this.integrations = ScmIntegrations.fromConfig(config);\n this.logger = logger.child({ component: 'DependabotClient' });\n }\n\n private async getOctokit(url: string): Promise<Octokit> {\n const githubIntegration = this.integrations.github.byUrl(url);\n if (!githubIntegration) {\n throw new Error(`Missing GitHub integration for '${url}'`);\n }\n\n const baseUrl = githubIntegration.config.apiBaseUrl;\n if (!baseUrl) {\n throw new Error(`Missing GitHub API base URL for '${url}'`);\n }\n\n const credentialsProvider =\n DefaultGithubCredentialsProvider.fromIntegrations(this.integrations);\n\n const { token } = await credentialsProvider.getCredentials({\n url,\n });\n\n if (!token) {\n throw new Error(`Missing GitHub token for '${url}'`);\n }\n\n return new Octokit({\n auth: token,\n baseUrl: baseUrl.replace(/\\/$/, ''),\n });\n }\n /**\n * @param url - The URL of the repository.\n * @param repository - The repository owner and name.\n * @param severity - The severity of the alerts to fetch.\n * @returns All alerts for the given repository and severity.\n */\n async getAlerts(\n url: string,\n repository: DependabotRepository,\n severity: DependabotSeverity,\n ): Promise<GitHubDependabotAlert[]> {\n this.logger.debug(\n `Fetching Dependabot ${severity} alerts for ${repository.owner}/${repository.repo}`,\n );\n try {\n const octokit = await this.getOctokit(url);\n\n const allAlerts = (await octokit.paginate(\n 'GET /repos/{owner}/{repo}/dependabot/alerts',\n {\n owner: repository.owner,\n repo: repository.repo,\n state: 'open',\n severity,\n per_page: PER_PAGE,\n },\n )) as unknown as GitHubDependabotAlert[];\n\n this.logger.debug(\n `Fetched ${allAlerts.length} Dependabot ${severity} alert(s) for ${repository.owner}/${repository.repo}`,\n );\n return allAlerts;\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n this.logger.warn(\n `Failed to fetch Dependabot ${severity} alerts for ${repository.owner}/${repository.repo}: ${message}`,\n error,\n );\n throw error;\n }\n }\n}\n"],"names":["ScmIntegrations","DefaultGithubCredentialsProvider","Octokit"],"mappings":"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"}
@@ -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.alerts_critical',\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.alerts_high',\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.alerts_medium',\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.alerts_low',\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,qBAAwB,GAAA;AAAA,EACnC,UAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF;AAeO,MAAM,qBAAyC,GAAA;AAAA,EACpD,KAAO,EAAA;AAAA,IACL,EAAE,GAAA,EAAK,SAAW,EAAA,UAAA,EAAY,IAAK,EAAA;AAAA,IACnC,EAAE,GAAA,EAAK,SAAW,EAAA,UAAA,EAAY,KAAM,EAAA;AAAA,IACpC,EAAE,GAAA,EAAK,OAAS,EAAA,UAAA,EAAY,IAAK;AAAA;AAErC;AAEO,MAAM,0BAGT,GAAA;AAAA,EACF,QAAU,EAAA;AAAA,IACR,EAAI,EAAA,4BAAA;AAAA,IACJ,KAAO,EAAA,4BAAA;AAAA,IACP,WACE,EAAA;AAAA,GACJ;AAAA,EACA,IAAM,EAAA;AAAA,IACJ,EAAI,EAAA,wBAAA;AAAA,IACJ,KAAO,EAAA,wBAAA;AAAA,IACP,WACE,EAAA;AAAA,GACJ;AAAA,EACA,MAAQ,EAAA;AAAA,IACN,EAAI,EAAA,0BAAA;AAAA,IACJ,KAAO,EAAA,0BAAA;AAAA,IACP,WACE,EAAA;AAAA,GACJ;AAAA,EACA,GAAK,EAAA;AAAA,IACH,EAAI,EAAA,uBAAA;AAAA,IACJ,KAAO,EAAA,uBAAA;AAAA,IACP,WACE,EAAA;AAAA;AAEN;;;;;;"}
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.alerts_critical',\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.alerts_high',\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.alerts_medium',\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.alerts_low',\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,4BAAA;AAAA,IACJ,KAAA,EAAO,4BAAA;AAAA,IACP,WAAA,EACE;AAAA,GACJ;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,EAAA,EAAI,wBAAA;AAAA,IACJ,KAAA,EAAO,wBAAA;AAAA,IACP,WAAA,EACE;AAAA,GACJ;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,EAAA,EAAI,0BAAA;AAAA,IACJ,KAAA,EAAO,0BAAA;AAAA,IACP,WAAA,EACE;AAAA,GACJ;AAAA,EACA,GAAA,EAAK;AAAA,IACH,EAAA,EAAI,uBAAA;AAAA,IACJ,KAAA,EAAO,uBAAA;AAAA,IACP,WAAA,EACE;AAAA;AAEN;;;;;;"}
@@ -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 {\n Metric,\n ThresholdConfig,\n} 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 getMetricType(): 'number' {\n return 'number';\n }\n\n getMetric(): Metric<'number'> {\n const meta = DEPENDABOT_SEVERITY_METRIC[this.severity];\n return {\n id: meta.id,\n title: meta.title,\n description: meta.description,\n type: this.getMetricType(),\n history: true,\n };\n }\n\n getMetricThresholds(): ThresholdConfig {\n return DEPENDABOT_THRESHOLDS;\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 calculateMetric(entity: Entity): Promise<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 return alerts.length;\n }\n}\n"],"names":["DependabotClient","DEPENDABOT_SEVERITY_METRIC","DEPENDABOT_THRESHOLDS","CATALOG_FILTER_EXISTS","stringifyEntityRef","getEntitySourceLocation"],"mappings":";;;;;;;AAsCA,MAAM,yBAA4B,GAAA,yBAAA;AAM3B,MAAM,wBAA6D,CAAA;AAAA,EACvD,gBAAA;AAAA,EACA,QAAA;AAAA,EAEjB,WAAA,CACE,MACA,EAAA,MAAA,EACA,QACA,EAAA;AACA,IAAA,IAAA,CAAK,QAAW,GAAA,QAAA;AAChB,IAAA,IAAA,CAAK,gBAAmB,GAAA,IAAIA,iCAAiB,CAAA,MAAA,EAAQ,MAAM,CAAA;AAAA;AAC7D,EAEA,uBAAkC,GAAA;AAChC,IAAO,OAAA,YAAA;AAAA;AACT,EAEA,aAAwB,GAAA;AACtB,IAAO,OAAAC,2CAAA,CAA2B,IAAK,CAAA,QAAQ,CAAE,CAAA,EAAA;AAAA;AACnD,EAEA,aAA0B,GAAA;AACxB,IAAO,OAAA,QAAA;AAAA;AACT,EAEA,SAA8B,GAAA;AAC5B,IAAM,MAAA,IAAA,GAAOA,2CAA2B,CAAA,IAAA,CAAK,QAAQ,CAAA;AACrD,IAAO,OAAA;AAAA,MACL,IAAI,IAAK,CAAA,EAAA;AAAA,MACT,OAAO,IAAK,CAAA,KAAA;AAAA,MACZ,aAAa,IAAK,CAAA,WAAA;AAAA,MAClB,IAAA,EAAM,KAAK,aAAc,EAAA;AAAA,MACzB,OAAS,EAAA;AAAA,KACX;AAAA;AACF,EAEA,mBAAuC,GAAA;AACrC,IAAO,OAAAC,sCAAA;AAAA;AACT,EAEA,gBAA0E,GAAA;AACxE,IAAO,OAAA;AAAA,MACL,8CAAgD,EAAAC,mCAAA;AAAA,MAChD,4CAA8C,EAAA;AAAA,KAChD;AAAA;AACF,EAEA,cAAc,MAAsC,EAAA;AAClD,IAAA,MAAM,WACJ,GAAA,MAAA,CAAO,QAAS,CAAA,WAAA,GAAc,yBAAyB,CAAA;AACzD,IAAA,IAAI,CAAC,WAAa,EAAA;AAChB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAA,oBAAA,EAAuB,yBAAyB,CAAgB,aAAA,EAAAC,+BAAA;AAAA,UAC9D;AAAA,SACD,CAAA;AAAA,OACH;AAAA;AAGF,IAAA,MAAM,CAAC,KAAO,EAAA,IAAI,CAAI,GAAA,WAAA,CAAY,MAAM,GAAG,CAAA;AAC3C,IAAI,IAAA,CAAC,KAAS,IAAA,CAAC,IAAM,EAAA;AACnB,MAAA,MAAM,IAAI,KAAA;AAAA,QACR,CAAsB,mBAAA,EAAA,yBAAyB,CAAK,EAAA,EAAA,WAAW,CAAe,YAAA,EAAAA,+BAAA;AAAA,UAC5E;AAAA,SACD,CAAA;AAAA,OACH;AAAA;AAGF,IAAO,OAAA,EAAE,OAAO,IAAK,EAAA;AAAA;AACvB,EAEA,MAAM,gBAAgB,MAAiC,EAAA;AACrD,IAAM,MAAA,UAAA,GAAa,IAAK,CAAA,aAAA,CAAc,MAAM,CAAA;AAC5C,IAAA,MAAM,EAAE,MAAA,EAAW,GAAAC,oCAAA,CAAwB,MAAM,CAAA;AACjD,IAAM,MAAA,MAAA,GAAS,MAAM,IAAA,CAAK,gBAAiB,CAAA,SAAA;AAAA,MACzC,MAAA;AAAA,MACA,UAAA;AAAA,MACA,IAAK,CAAA;AAAA,KACP;AACA,IAAA,OAAO,MAAO,CAAA,MAAA;AAAA;AAElB;;;;"}
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 {\n Metric,\n ThresholdConfig,\n} 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 getMetricType(): 'number' {\n return 'number';\n }\n\n getMetric(): Metric<'number'> {\n const meta = DEPENDABOT_SEVERITY_METRIC[this.severity];\n return {\n id: meta.id,\n title: meta.title,\n description: meta.description,\n type: this.getMetricType(),\n history: true,\n };\n }\n\n getMetricThresholds(): ThresholdConfig {\n return DEPENDABOT_THRESHOLDS;\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 calculateMetric(entity: Entity): Promise<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 return alerts.length;\n }\n}\n"],"names":["DependabotClient","DEPENDABOT_SEVERITY_METRIC","DEPENDABOT_THRESHOLDS","CATALOG_FILTER_EXISTS","stringifyEntityRef","getEntitySourceLocation"],"mappings":";;;;;;;AAsCA,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,aAAA,GAA0B;AACxB,IAAA,OAAO,QAAA;AAAA,EACT;AAAA,EAEA,SAAA,GAA8B;AAC5B,IAAA,MAAM,IAAA,GAAOA,2CAAA,CAA2B,IAAA,CAAK,QAAQ,CAAA;AACrD,IAAA,OAAO;AAAA,MACL,IAAI,IAAA,CAAK,EAAA;AAAA,MACT,OAAO,IAAA,CAAK,KAAA;AAAA,MACZ,aAAa,IAAA,CAAK,WAAA;AAAA,MAClB,IAAA,EAAM,KAAK,aAAA,EAAc;AAAA,MACzB,OAAA,EAAS;AAAA,KACX;AAAA,EACF;AAAA,EAEA,mBAAA,GAAuC;AACrC,IAAA,OAAOC,sCAAA;AAAA,EACT;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,gBAAgB,MAAA,EAAiC;AACrD,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,OAAO,MAAA,CAAO,MAAA;AAAA,EAChB;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DependabotMetricProviderFactory.cjs.js","sources":["../../src/metricProviders/DependabotMetricProviderFactory.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 */\nimport { DependabotMetricProvider } from './DependabotMetricProvider';\nimport { DependabotSeverity, DEPENDABOT_SEVERITIES } from './DependabotConfig';\nimport { Config } from '@backstage/config';\nimport { LoggerService } from '@backstage/backend-plugin-api';\nimport { MetricProvider } from '@red-hat-developer-hub/backstage-plugin-scorecard-node';\n\n/**\n * Creates a single Dependabot metric provider for the given severity.\n */\nexport function createDependabotMetricProvider(\n config: Config,\n logger: LoggerService,\n severity: DependabotSeverity,\n): MetricProvider<'number'> {\n return new DependabotMetricProvider(config, logger, severity);\n}\n\n/**\n * Creates one metric provider per severity (critical, high, medium, low).\n */\nexport function createDependabotMetricProviders(\n config: Config,\n logger: LoggerService,\n): MetricProvider<'number'>[] {\n return DEPENDABOT_SEVERITIES.map(severity =>\n createDependabotMetricProvider(config, logger, severity),\n );\n}\n"],"names":["DependabotMetricProvider","DEPENDABOT_SEVERITIES"],"mappings":";;;;;AAwBgB,SAAA,8BAAA,CACd,MACA,EAAA,MAAA,EACA,QAC0B,EAAA;AAC1B,EAAA,OAAO,IAAIA,iDAAA,CAAyB,MAAQ,EAAA,MAAA,EAAQ,QAAQ,CAAA;AAC9D;AAKgB,SAAA,+BAAA,CACd,QACA,MAC4B,EAAA;AAC5B,EAAA,OAAOC,sCAAsB,CAAA,GAAA;AAAA,IAAI,CAC/B,QAAA,KAAA,8BAAA,CAA+B,MAAQ,EAAA,MAAA,EAAQ,QAAQ;AAAA,GACzD;AACF;;;;;"}
1
+ {"version":3,"file":"DependabotMetricProviderFactory.cjs.js","sources":["../../src/metricProviders/DependabotMetricProviderFactory.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 */\nimport { DependabotMetricProvider } from './DependabotMetricProvider';\nimport { DependabotSeverity, DEPENDABOT_SEVERITIES } from './DependabotConfig';\nimport { Config } from '@backstage/config';\nimport { LoggerService } from '@backstage/backend-plugin-api';\nimport { MetricProvider } from '@red-hat-developer-hub/backstage-plugin-scorecard-node';\n\n/**\n * Creates a single Dependabot metric provider for the given severity.\n */\nexport function createDependabotMetricProvider(\n config: Config,\n logger: LoggerService,\n severity: DependabotSeverity,\n): MetricProvider<'number'> {\n return new DependabotMetricProvider(config, logger, severity);\n}\n\n/**\n * Creates one metric provider per severity (critical, high, medium, low).\n */\nexport function createDependabotMetricProviders(\n config: Config,\n logger: LoggerService,\n): MetricProvider<'number'>[] {\n return DEPENDABOT_SEVERITIES.map(severity =>\n createDependabotMetricProvider(config, logger, severity),\n );\n}\n"],"names":["DependabotMetricProvider","DEPENDABOT_SEVERITIES"],"mappings":";;;;;AAwBO,SAAS,8BAAA,CACd,MAAA,EACA,MAAA,EACA,QAAA,EAC0B;AAC1B,EAAA,OAAO,IAAIA,iDAAA,CAAyB,MAAA,EAAQ,MAAA,EAAQ,QAAQ,CAAA;AAC9D;AAKO,SAAS,+BAAA,CACd,QACA,MAAA,EAC4B;AAC5B,EAAA,OAAOC,sCAAA,CAAsB,GAAA;AAAA,IAAI,CAAA,QAAA,KAC/B,8BAAA,CAA+B,MAAA,EAAQ,MAAA,EAAQ,QAAQ;AAAA,GACzD;AACF;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.cjs.js","sources":["../src/module.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 */\nimport {\n coreServices,\n createBackendModule,\n} from '@backstage/backend-plugin-api';\nimport { scorecardMetricsExtensionPoint } from '@red-hat-developer-hub/backstage-plugin-scorecard-node';\nimport { createDependabotMetricProviders } from './metricProviders/DependabotMetricProviderFactory';\n\nexport const scorecardModuleDependabot = createBackendModule({\n pluginId: 'scorecard',\n moduleId: 'dependabot',\n register(reg) {\n reg.registerInit({\n deps: {\n metrics: scorecardMetricsExtensionPoint,\n config: coreServices.rootConfig,\n logger: coreServices.logger,\n },\n\n async init({ metrics, config, logger }) {\n const providers = createDependabotMetricProviders(config, logger);\n for (const provider of providers) {\n metrics.addMetricProvider(provider);\n }\n },\n });\n },\n});\n"],"names":["createBackendModule","scorecardMetricsExtensionPoint","coreServices","createDependabotMetricProviders"],"mappings":";;;;;;AAsBO,MAAM,4BAA4BA,oCAAoB,CAAA;AAAA,EAC3D,QAAU,EAAA,WAAA;AAAA,EACV,QAAU,EAAA,YAAA;AAAA,EACV,SAAS,GAAK,EAAA;AACZ,IAAA,GAAA,CAAI,YAAa,CAAA;AAAA,MACf,IAAM,EAAA;AAAA,QACJ,OAAS,EAAAC,2DAAA;AAAA,QACT,QAAQC,6BAAa,CAAA,UAAA;AAAA,QACrB,QAAQA,6BAAa,CAAA;AAAA,OACvB;AAAA,MAEA,MAAM,IAAK,CAAA,EAAE,OAAS,EAAA,MAAA,EAAQ,QAAU,EAAA;AACtC,QAAM,MAAA,SAAA,GAAYC,+DAAgC,CAAA,MAAA,EAAQ,MAAM,CAAA;AAChE,QAAA,KAAA,MAAW,YAAY,SAAW,EAAA;AAChC,UAAA,OAAA,CAAQ,kBAAkB,QAAQ,CAAA;AAAA;AACpC;AACF,KACD,CAAA;AAAA;AAEL,CAAC;;;;"}
1
+ {"version":3,"file":"module.cjs.js","sources":["../src/module.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 */\nimport {\n coreServices,\n createBackendModule,\n} from '@backstage/backend-plugin-api';\nimport { scorecardMetricsExtensionPoint } from '@red-hat-developer-hub/backstage-plugin-scorecard-node';\nimport { createDependabotMetricProviders } from './metricProviders/DependabotMetricProviderFactory';\n\nexport const scorecardModuleDependabot = createBackendModule({\n pluginId: 'scorecard',\n moduleId: 'dependabot',\n register(reg) {\n reg.registerInit({\n deps: {\n metrics: scorecardMetricsExtensionPoint,\n config: coreServices.rootConfig,\n logger: coreServices.logger,\n },\n\n async init({ metrics, config, logger }) {\n const providers = createDependabotMetricProviders(config, logger);\n for (const provider of providers) {\n metrics.addMetricProvider(provider);\n }\n },\n });\n },\n});\n"],"names":["createBackendModule","scorecardMetricsExtensionPoint","coreServices","createDependabotMetricProviders"],"mappings":";;;;;;AAsBO,MAAM,4BAA4BA,oCAAA,CAAoB;AAAA,EAC3D,QAAA,EAAU,WAAA;AAAA,EACV,QAAA,EAAU,YAAA;AAAA,EACV,SAAS,GAAA,EAAK;AACZ,IAAA,GAAA,CAAI,YAAA,CAAa;AAAA,MACf,IAAA,EAAM;AAAA,QACJ,OAAA,EAASC,2DAAA;AAAA,QACT,QAAQC,6BAAA,CAAa,UAAA;AAAA,QACrB,QAAQA,6BAAA,CAAa;AAAA,OACvB;AAAA,MAEA,MAAM,IAAA,CAAK,EAAE,OAAA,EAAS,MAAA,EAAQ,QAAO,EAAG;AACtC,QAAA,MAAM,SAAA,GAAYC,+DAAA,CAAgC,MAAA,EAAQ,MAAM,CAAA;AAChE,QAAA,KAAA,MAAW,YAAY,SAAA,EAAW;AAChC,UAAA,OAAA,CAAQ,kBAAkB,QAAQ,CAAA;AAAA,QACpC;AAAA,MACF;AAAA,KACD,CAAA;AAAA,EACH;AACF,CAAC;;;;"}
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.2.12",
3
+ "version": "0.3.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.8.0",
37
- "@backstage/catalog-client": "^1.14.0",
38
- "@backstage/catalog-model": "^1.7.7",
39
- "@backstage/config": "^1.3.6",
40
- "@backstage/integration": "^2.0.0",
36
+ "@backstage/backend-plugin-api": "^1.9.1",
37
+ "@backstage/catalog-client": "^1.15.2",
38
+ "@backstage/catalog-model": "^1.9.0",
39
+ "@backstage/config": "^1.3.8",
40
+ "@backstage/integration": "^2.0.2",
41
41
  "@octokit/rest": "^19.0.3",
42
- "@red-hat-developer-hub/backstage-plugin-scorecard-common": "^2.7.8",
43
- "@red-hat-developer-hub/backstage-plugin-scorecard-node": "^2.7.8"
42
+ "@red-hat-developer-hub/backstage-plugin-scorecard-common": "^2.8.0",
43
+ "@red-hat-developer-hub/backstage-plugin-scorecard-node": "^2.8.0"
44
44
  },
45
45
  "devDependencies": {
46
- "@backstage/backend-test-utils": "^1.11.1",
47
- "@backstage/cli": "^0.36.0"
46
+ "@backstage/backend-test-utils": "^1.11.3",
47
+ "@backstage/cli": "^0.36.2"
48
48
  },
49
49
  "files": [
50
50
  "dist"