# @spotify/backstage-plugin-soundcheck-backend-module-github

## 0.10.0

### Minor Changes

- Removed the deprecated `{ catalog: ... }` filter format. Configs using this format will now fail validation with a descriptive error message. Replace `{ catalog: { kind: "Component" } }` with `{ kind: "Component" }`.
- Added filterQuery field to checks, tracks, campaigns, and collectors. This field accepts FilterPredicate syntax with logical operators ($all, $any, $not) and value matchers ($exists, $in, $contains, $hasPrefix) for advanced entity filtering.

### Patch Changes

- Updated dependency `backstage` to `1.54.0`.
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.27.0
  - @spotify/backstage-plugin-soundcheck-node@0.16.0

## 0.9.2

### Patch Changes

- Updated dependency `backstage` to `1.53.0`.
- Updated config schema to pass stricter config checks (no schema changes compared to the previous version).
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.26.0
  - @spotify/backstage-plugin-soundcheck-node@0.15.1

## 0.9.1

### Patch Changes

- Updated dependency `backstage` to `1.52.0`.
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.25.0
  - @spotify/backstage-plugin-soundcheck-node@0.15.0

## 0.9.0

### Minor Changes

- Export each module's collector / config schema for offline YAML validation in CI (follow-up to soundcheck-common's `validate*` helpers).
- Migrate GitHub fact collector to managed config — enables remote URL / directory sources for `soundcheck.collectors.github` (use `string[]` in app-config). Also fixes two gaps in the managed-config reload path so that clearing a url-based yaml config now cancels existing scheduled tasks instead of leaving them running.
- Added getFactRefs to the FactCollector interface so collectors can return scope-aware fact references. The frontend, scaffolder actions, and GraphQL layer now use full fact refs instead of reconstructing them with a hardcoded default scope, fixing custom branch configurations returning empty data.

### Patch Changes

- Updated dependency `backstage` to `1.51.0`.
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-node@0.14.0
  - @spotify/backstage-plugin-soundcheck-common@0.24.0

## 0.8.9

### Patch Changes

- Updated dependency `backstage` to `1.50.0`.
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.23.0
  - @spotify/backstage-plugin-soundcheck-node@0.13.0

## 0.8.8

### Patch Changes

- Reject unauthenticated GitHub requests in GithubFactCollector, returning collection errors for entities when no token is configured.
- Fixed double multiplication bug in GitHub rate limit retry calculation that caused collectors to stall for days instead of minutes.

## 0.8.7

### Patch Changes

- Updated dependency `backstage` to `1.49.0`.
- Updated package to be compatible with zod versions 3 and 4.
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.22.0
  - @spotify/backstage-plugin-soundcheck-node@0.12.0

## 0.8.6

### Patch Changes

- Updated dependency `backstage` to `1.48.0`.
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.21.0
  - @spotify/backstage-plugin-soundcheck-node@0.11.0

## 0.8.5

### Patch Changes

- Updated dependency `backstage` to `1.47.0`.
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.20.0
  - @spotify/backstage-plugin-soundcheck-node@0.10.5

## 0.8.4

### Patch Changes

- Updated dependency `backstage` to `1.46.0`.
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.19.4
  - @spotify/backstage-plugin-soundcheck-node@0.10.4

## 0.8.3

### Patch Changes

- Updated dependency `backstage` to `1.45.0`.
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.19.3
  - @spotify/backstage-plugin-soundcheck-node@0.10.3

## 0.8.2

### Patch Changes

- Fixed Dependabot Fact Collector pagination error: Pagination using the page parameter is not supported.

## 0.8.1

### Patch Changes

- Updated dependency `backstage` to `1.44.1`.
- Updated dependencies
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.19.2
  - @spotify/backstage-plugin-soundcheck-node@0.10.2

## 0.8.0

### Minor Changes

- Updated SCM collectors (SCM, GitHub, GitLab, Azure DevOps) to return collection errors instead of
  undefined facts if entity location URL is unsupported or integration details are not found.

### Patch Changes

- Updated dependency `backstage` to `1.42.0`.
- GitHub Fact Collector will now return an error message as a fact instead of an error state
  if dependabot alerts are not enabled for a repository.
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.19.0
  - @spotify/backstage-plugin-soundcheck-node@0.10.0

## 0.7.14

### Patch Changes

- Updated GitHub, GitLab and SCM fact collectors to cache eTags for 7 days.

## 0.7.13

### Patch Changes

- Improved rate limits handling by GitHub Fact Collector.
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.18.2

## 0.7.12

### Patch Changes

- Updated dependency `@types/git-url-parse` to `^16.0.0`.
- Updated dependency `backstage` to `1.41.1`.
- Updates rate limit error handling in Soundcheck to attempt to wait until the server-provided rate-limit-reset time to retry rate-limited requests.
- Updates to how long eTags are saved in cache.
- Updates configs for some collectors for Portal compatibility.
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.18.1
  - @spotify/backstage-plugin-soundcheck-node@0.9.11

## 0.7.11

### Patch Changes

- Updates to Soundcheck integrations' configs to allow configuration in Portal.

## 0.7.10

### Patch Changes

- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.18.0
  - @spotify/backstage-plugin-soundcheck-node@0.9.10

## 0.7.9

### Patch Changes

- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-node@0.9.9
  - @spotify/backstage-plugin-soundcheck-common@0.17.0

## 0.7.8

### Patch Changes

- Fixed an issuse with some github facts exposing too much information to front-end.
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.16.3
  - @spotify/backstage-plugin-soundcheck-node@0.9.8

## 0.7.7

### Patch Changes

- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-node@0.9.7

## 0.7.6

### Patch Changes

- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.16.2
  - @spotify/backstage-plugin-soundcheck-node@0.9.6

## 0.7.5

### Patch Changes

- Update to Backstage `v1.37.0`
- Added support for the new GitHub fact types:

  - Code Scanning Alerts
  - Dependabot Alerts
  - Secret Scanning Alerts
  - Security Advisories

- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.16.1
  - @spotify/backstage-plugin-soundcheck-node@0.9.5

## 0.7.4

### Patch Changes

- @spotify/backstage-plugin-soundcheck-node@0.9.4

## 0.7.3

### Patch Changes

- Update to Backstage `v1.36.0`
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-node@0.9.3

## 0.7.2

### Patch Changes

- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-node@0.9.2

## 0.7.1

### Patch Changes

- @spotify/backstage-plugin-soundcheck-node@0.9.1

## 0.7.0

### Minor Changes

- Remove support for the legacy backend system.

### Patch Changes

- Update to Backstage `v1.35.0`
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.15.0
  - @spotify/backstage-plugin-soundcheck-node@0.9.0

## 0.6.6

### Patch Changes

- Update to Backstage `v1.34.0`
- Added GitHub `BranchRules` fact type (returns all active rules that apply to the specified branch).
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.14.5
  - @spotify/backstage-plugin-soundcheck-node@0.8.6

## 0.6.5

### Patch Changes

- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.14.4
  - @spotify/backstage-plugin-soundcheck-node@0.8.5

## 0.6.4

### Patch Changes

- Update to Backstage `v1.33.3`
- Updated dependency `git-url-parse` to `^16.0.0`.
- Added exclusion filters to check and fact collector scheduling.

  Example for fact collectors:

  ```yaml
  collects:
    - factName: branch_protections
      type: BranchProtections
      branch: master
      exclude:
        - spec.lifecycle: 'experimental'
  ```

  This would exclude all entities what have lifecycle experimental from the collection.

- Support for Backstage's Legacy Backend System is deprecated and will be removed in January. Please be sure to have migrated your Backstage backend to the New Backend System by then, leveraging the `default` export from this module instead.
- Added the ability to override the entities batch size for collections by providing a `batchSize` within a `CollectionConfig`.
  By default, a collection will be scheduled for a single entity but this behavior may now be overridden by providing a `batchSize`.

  NOTE: Collection Rate Limiting enabled by the `soundcheck.job.workers.<collector_id>.limiter` configuration will count collecting
  facts for a batch of entities as a single hit to the rate limit, while the actual number of hits is usually equal to the batch size.
  Enable batching for the exiting collectors at your own discretion.

- Updated dependencies
- Updated dependencies
- Updated dependencies
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.14.3
  - @spotify/backstage-plugin-soundcheck-node@0.8.4

## 0.6.3

### Patch Changes

- Update to Backstage v1.32.0
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-node@0.8.3
  - @spotify/backstage-plugin-soundcheck-common@0.14.2

## 0.6.2

### Patch Changes

- Minor fixes and improvements
- Update to Backstage v1.31.1
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.14.1
  - @spotify/backstage-plugin-soundcheck-node@0.8.2

## 0.6.1

### Patch Changes

- Upgraded Backstage to `v1.30.4`.
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-node@0.8.1

## 0.6.0

### Minor Changes

- Upgraded Backstage to `v1.30.3`.

### Patch Changes

- Updated dependency `git-url-parse` to `^15.0.0`.
- Fact Collectors can now return Collection Errors that will be visible on UI.
- Add support for check templates.
- Minor naming updates for GitHub Fact Collector's No Code UI.
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.14.0
  - @spotify/backstage-plugin-soundcheck-node@0.8.0

## 0.5.9

### Patch Changes

- Upgraded Backstage to v1.29.1
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.13.4
  - @spotify/backstage-plugin-soundcheck-node@0.7.4

## 0.5.8

### Patch Changes

- Added additional plugin metadata to `package.json`.
- Upgraded Backstage to v1.28.2
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-node@0.7.3
  - @spotify/backstage-plugin-soundcheck-common@0.13.3

## 0.5.7

### Patch Changes

- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-node@0.7.2

## 0.5.6

### Patch Changes

- Updated dependency `supertest` to `^7.0.0`.
- Minor changes to how GitHub caches facts.
- Fixed RateLimitErrors being logged as fact collection failures.
- Fixed a problem when, in some cases, fact scope is not respected by Github fact collector.
- Making `factName` configuration parameter optional for Azure DevOps, GitHub and GitLab Fact Collectors.
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-node@0.7.1
  - @spotify/backstage-plugin-soundcheck-common@0.13.2

## 0.5.5

### Patch Changes

- Fixes a bug that prevented the SCM collector from scheduling fact collection when the collector
  is configured via URL.
  Adds default checks and tracks as examples. Updates some extractors to make better use of caching.

## 0.5.4

### Patch Changes

- Changes to support latest verson of @octokit
- Updated README to link to docs site.
- Updated collector configuration properties to be optional.
- Fixes a couple of configuration issues in Soundcheck relating to SCM configurations and the allowble configurations for checks and tracks.
- Moved backend configuration descriptors related to TPIs to the respective modules.
- Added the ability to override the default initial delay for collections by providing an `initialDelay` within a `CollectionConfig`.
  By default the initial delay will attempt to keep collections on their specified cadence but this behavior may now be be overridden by providing an `initialDelay`.
- Updated backstage dependencies to `v1.26.0`
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.13.1
  - @spotify/backstage-plugin-soundcheck-node@0.7.0

## 0.5.3

### Patch Changes

- Updated backstage dependencies to `v1.24.0`
- Updated dependencies
  - `@spotify/backstage-plugin-soundcheck-common` to `^0.13.0`
  - `@spotify/backstage-plugin-soundcheck-node` to `^0.6.0`

## 0.5.2

### Patch Changes

- Changes to support Backstage's New Backend System.
- Added automated rate limit error handling to GitHub fact collector, leverging the `RateLimitError` introduced to Job Queues as a way to automatically throttle scheduled jobs.
- Downgraded log level from `error` to `warning` for some non terminal errors that could occur during fact collection for the Github fact collector.
- Upgraded to Backstage `v1.23.0`
- Updated dependencies
  - `@spotify/backstage-plugin-soundcheck-node` to `^0.5.0`
  - `@spotify/backstage-plugin-soundcheck-common` to `^0.12.0`
  - `git-url-parse` to `^14.0.0`

## 0.5.1

### Patch Changes

- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.11.1
  - @spotify/backstage-plugin-soundcheck-node@0.4.7

## 0.5.0

### Minor Changes

- Soundcheck no longer allows unrecognized keys in configurations. This should make it easier to identify misconfigurations but may cause validation errors with existing misconfigured instances.

### Patch Changes

- Upgraded Backstage to v1.22.0
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.11.0
  - @spotify/backstage-plugin-soundcheck-node@0.4.6

## 0.4.5

### Patch Changes

- BranchProtectionsFactCollector now returns previously retrieved data when the server responds with '304 Not Modified'.
- Added strict enforcement of fact collector configuration schemas. Unrecognized keys are no longer allowed, to help users identify misconfigurations.
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.10.0
  - @spotify/backstage-plugin-soundcheck-node@0.4.5

## 0.4.4

### Patch Changes

- "Expands identification of 304 and 404 errors to alleiviate log spam."

## 0.4.3

### Patch Changes

- Upgraded Backstage to `v1.20.2`.
- Updated `README`s to make it more clear how to install the GitHub, SCM, and TechInsights Soundcheck backend modules.
- Improved rate limit utilization.
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.9.1
  - @spotify/backstage-plugin-soundcheck-node@0.4.4

## 0.4.2

### Patch Changes

- Added logging of HTTP error code and response body on Github collector errors.
  Reduced the number of Github rate limit exceeded logs.
- Upgraded Backstage to v1.19.0
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.9.0
  - @spotify/backstage-plugin-soundcheck-node@0.4.3

## 0.4.1

### Patch Changes

- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.8.1
  - @spotify/backstage-plugin-soundcheck-node@0.4.2

## 0.4.0

### Minor Changes

- The GitHub fact collector can now be configured through the Soundcheck UI.

### Patch Changes

- Upgraded Backstage to v1.18.1
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.8.0
  - @spotify/backstage-plugin-soundcheck-node@0.4.1

## 0.3.0

### Minor Changes

- Added a name and brief description to fact collector modules.

### Patch Changes

- Upgraded Backstage to `v1.17.0`.
- Updated dependency `@octokit/request-error` to `^5.0.0`.
  Updated dependency `@octokit/rest` to `^20.0.0`.
- Minor improvements to `GithubFactCollector::getDataSchema`.
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.7.1
  - @spotify/backstage-plugin-soundcheck-node@0.4.0

## 0.2.1

### Patch Changes

- Fixes a potential issue with collecting facts from github.

## 0.2.0

### Minor Changes

- Added support for Soundcheck's No-Code UI.

### Patch Changes

- Upgraded Backstage to `v1.16.0`
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.7.0
  - @spotify/backstage-plugin-soundcheck-node@0.3.0

## 0.1.3

### Patch Changes

- Upgraded to Backstage `v1.15.0`
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.6.0
  - @spotify/backstage-plugin-soundcheck-node@0.2.3

## 0.1.2

### Patch Changes

- Upgraded to Backstage `v1.14.0`
- Added support for collecting facts on the languages used within a repository.
- Updated READMEs with instructions on installing fact collectors into Soundcheck.
- Implemented `GithubFactCollector:getDataSchema` method that returns JSON schema of fact's data for a given fact reference.
- Fixed a bug where an error message was logged when no branch protections were in place.
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.5.0
  - @spotify/backstage-plugin-soundcheck-node@0.2.2

## 0.1.1

### Patch Changes

- Upgraded Backstage to `v1.13.0`.
- Updated dependencies
  - @spotify/backstage-plugin-soundcheck-common@0.4.1
  - @spotify/backstage-plugin-soundcheck-node@0.2.1

## 0.1.0

### Minor Changes

- 07770382: Upgrade to Backstage 1.12.0
- 7dc0e65c: Adds GitHub integration for fact extraction from GitHub repositories. See the modules README.md for additional details, including configuration details.

### Patch Changes

- Updated dependencies [3e368dc9]
  - @spotify/backstage-plugin-soundcheck-common@0.4.0
  - @spotify/backstage-plugin-soundcheck-node@0.2.0
