XS⚠️ ◾ [WIP2] Enable Biome Linting#751
XS⚠️ ◾ [WIP2] Enable Biome Linting#751muiriswoulfe wants to merge 8 commits intomuiriswoulfe/super-linter-v8from
Conversation
Combine the default switch case with DeletedFile to log skipped file types instead of silently breaking. Remove unnecessary eslint-disable and c8 ignore comments. Also add biome.json configuration file for the repository.
Super-linter summary
Super-linter detected linting errors For more information, see the GitHub Actions workflow run Powered by Super-linter EDITORCONFIG |
PR Metrics✔ Thanks for keeping your pull request small.
Metrics computed by PR Metrics. Add it to your Azure DevOps and GitHub PRs! |
There was a problem hiding this comment.
Pull request overview
Enables Biome linting in CI by adding a Biome configuration and applying lint-driven refactors/formatting changes across the TypeScript codebase, alongside workflow/runtime updates.
Changes:
- Add
biome.jsonand update CI lint configuration to enable Biome linting. - Apply Biome-driven refactors (type-only imports,
node:protocol imports,Number.isNaN/isFinite, converter rename). - Update declared/used Node runtimes (Action, workflows, Azure DevOps task metadata, engines).
Reviewed changes
Copilot reviewed 70 out of 72 changed files in this pull request and generated 24 comments.
Show a summary per file
| File | Description |
|---|---|
| src/task/tests/wrappers/execSyncResult.ts | Type-only import cleanup (tests) |
| src/task/tests/wrappers/errorWithStatus.ts | Type-only import cleanup (tests) |
| src/task/tests/utilities/validator.spec.ts | Update converter API usage in tests |
| src/task/tests/utilities/converter.spec.ts | Update converter API usage in tests |
| src/task/tests/utilities/converter.property.spec.ts | Update converter API usage in tests |
| src/task/tests/testUtilities/resolvableInstance.ts | Type-only import cleanup (tests) |
| src/task/tests/testUtilities/createRequestError.ts | Type-only import cleanup (tests) |
| src/task/tests/task.spec.ts | node: imports + type-only imports (tests) |
| src/task/tests/runners/runnerInvoker.spec.ts | Type-only import cleanup (tests) |
| src/task/tests/runners/gitHubRunnerInvoker.spec.ts | node: imports + type-only imports (tests) |
| src/task/tests/runners/azurePipelinesRunnerInvoker.spec.ts | node: imports + type-only imports (tests) |
| src/task/tests/repos/tokenManager.spec.ts | Type-only import cleanup (tests) |
| src/task/tests/repos/reposInvoker.spec.ts | Type-only import cleanup (tests) |
| src/task/tests/repos/gitHubReposInvokerConstants.ts | Type-only import cleanup (tests) |
| src/task/tests/repos/gitHubReposInvoker.spec.ts | Type-only import cleanup + converter rename (tests) |
| src/task/tests/repos/azureReposInvoker.spec.ts | Type-only import cleanup + converter rename (tests) |
| src/task/tests/pullRequests/pullRequestComments.spec.ts | Type-only import cleanup + converter rename (tests) |
| src/task/tests/pullRequests/pullRequest.spec.ts | Converter rename (tests) |
| src/task/tests/metrics/inputs.spec.ts | Converter rename (tests) |
| src/task/tests/git/octokitGitDiffParser.spec.ts | Type-only import cleanup (tests) |
| src/task/tests/git/gitInvoker.spec.ts | Type-only import cleanup (tests) |
| src/task/tests/Strings/resources.resjson.spec.ts | node: imports + type-only imports (tests) |
| src/task/task.loc.json | Azure task Node handler + agent min version |
| src/task/task.json | Azure task Node handler + agent min version |
| src/task/src/wrappers/octokitWrapper.ts | Type-only imports (Octokit wrapper) |
| src/task/src/wrappers/octokitInterfaces/updatePullResponse.ts | Type-only import cleanup |
| src/task/src/wrappers/octokitInterfaces/updateIssueCommentResponse.ts | Type-only import cleanup |
| src/task/src/wrappers/octokitInterfaces/listCommitsResponse.ts | Type-only import cleanup |
| src/task/src/wrappers/octokitInterfaces/getReviewCommentsResponse.ts | Type-only import cleanup |
| src/task/src/wrappers/octokitInterfaces/getPullResponse.ts | Type-only import cleanup |
| src/task/src/wrappers/octokitInterfaces/getIssueCommentsResponse.ts | Type-only import cleanup |
| src/task/src/wrappers/octokitInterfaces/deleteReviewCommentResponse.ts | Type-only import cleanup |
| src/task/src/wrappers/octokitInterfaces/createReviewCommentResponse.ts | Type-only import cleanup |
| src/task/src/wrappers/octokitInterfaces/createIssueCommentResponse.ts | Type-only import cleanup |
| src/task/src/wrappers/azurePipelinesRunnerWrapper.ts | Type-only import cleanup |
| src/task/src/wrappers/azureDevOpsApiWrapper.ts | Type-only import cleanup |
| src/task/src/wrappers/axiosWrapper.ts | Inline type-only import cleanup |
| src/task/src/utilities/validator.ts | Converter rename + Number.isNaN change |
| src/task/src/utilities/logger.ts | Type-only import change (DI-sensitive) |
| src/task/src/utilities/converter.ts | Rename toString export to convertToString |
| src/task/src/runners/runnerInvoker.ts | Type-only import change (DI-sensitive) |
| src/task/src/runners/gitHubRunnerInvoker.ts | node: imports + type-only imports (DI-sensitive) |
| src/task/src/runners/azurePipelinesRunnerInvoker.ts | node: imports + type-only imports (DI-sensitive) |
| src/task/src/repos/tokenManager.ts | Type-only imports (DI-sensitive) |
| src/task/src/repos/reposInvoker.ts | Type-only imports (DI-sensitive) |
| src/task/src/repos/interfaces/fileCommentData.ts | Type-only import cleanup |
| src/task/src/repos/interfaces/commentData.ts | Type-only import cleanup |
| src/task/src/repos/gitHubReposInvoker.ts | Type-only imports + converter rename (DI-sensitive) |
| src/task/src/repos/baseReposInvoker.ts | Type-only imports + formatting |
| src/task/src/repos/azureReposInvoker.ts | Type-only imports (DI-sensitive) |
| src/task/src/pullRequests/pullRequestCommentsData.ts | Type-only import cleanup |
| src/task/src/pullRequests/pullRequestComments.ts | Type-only imports (DI-sensitive) |
| src/task/src/pullRequests/pullRequest.ts | Type-only imports (DI-sensitive) |
| src/task/src/pullRequestMetrics.ts | Type-only imports (DI-sensitive) |
| src/task/src/metrics/inputs.ts | Number.isNaN/isFinite changes + type-only imports (DI-sensitive) |
| src/task/src/metrics/codeMetricsCalculator.ts | Type-only imports (DI-sensitive) |
| src/task/src/metrics/codeMetrics.ts | Number.isNaN + type-only imports (DI-sensitive) |
| src/task/src/git/octokitGitDiffParser.ts | Type-only imports (DI-sensitive) |
| src/task/src/git/gitInvoker.ts | Number.isNaN + type-only imports (DI-sensitive) |
| src/task/index.ts | node: imports |
| package.json | Bump Node engine requirement |
| package-lock.json | Bump Node engine requirement |
| docs/workload-identity-federation.md | Markdown lint formatting cleanup |
| docs/verification.md | Markdown lint formatting cleanup |
| biome.json | Add Biome config |
| action.yml | Update GitHub Action runtime to node24 |
| .github/workflows/release-publish.yml | Update pinned actions + Node version |
| .github/workflows/release-initiate.yml | Update pinned actions + Node version |
| .github/workflows/build.yml | Update pinned actions + enable Biome linting |
| .github/azure-devops/template.yml | Update Azure pipeline Node tool/task |
| .github/azure-devops/release.yml | Update Azure pipeline Node tool/task |
Super-linter summary
Super-linter detected linting errors For more information, see the GitHub Actions workflow run Powered by Super-linter TRIVY |
With emitDecoratorMetadata enabled, tsyringe needs runtime type references for constructor-injected dependencies. Reverts import type back to value imports for all DI-injected classes. Also fixes Number.isNaN/isFinite line breaks and disables useImportType in biome.json to prevent conflicts with tsyringe.
Super-linter summary
Super-linter detected linting errors For more information, see the GitHub Actions workflow run Powered by Super-linter TRIVY |
Super-linter summary
Super-linter detected linting errors For more information, see the GitHub Actions workflow run Powered by Super-linter TRIVY |
Super-linter summary
Super-linter detected linting errors For more information, see the GitHub Actions workflow run Powered by Super-linter TRIVY |
Re-enables the useImportType rule globally and uses overrides to disable it only for the 17 tsyringe DI-decorated files that need runtime imports. Also makes the schema URL version-agnostic.
Super-linter summary
Super-linter detected linting errors For more information, see the GitHub Actions workflow run Powered by Super-linter TRIVY |
…to muiriswoulfe/github-actions-biome
Super-linter summary
All files and directories linted successfully For more information, see the GitHub Actions workflow run Powered by Super-linter |
|
TODO: Remove suppressions after merging #755 |
Summary
Enables Biome linting in the Super-Linter GitHub Actions workflow by removing the
VALIDATE_BIOME_LINT: falseoverride and resolving all resulting lint violations across the codebase.biome.jsonconfiguration scoped to TypeScript source files, disabling only thenoUselessSwitchCaserule to preserve intentional fall-through patternsNumber.isNaN()/Number.isFinite()replacements, and other recommended rulestoStringexport in the converter utility toconvertToStringto avoid shadowing the global name