Skip to content

PR #397

PR #397 #1182

Triggered via dynamic May 6, 2026 19:07
Status Success
Total duration 1m 25s
Artifacts

codeql

on: dynamic
Matrix: analyze
Fit to window
Zoom out
Zoom in

Annotations

1 error and 3 warnings
Import uses '.ts' extension which breaks Node16 module resolution: src/utils/xcodebuild-domain-results.ts#L31
The new import on line 31 uses `./xcresult-test-failures.ts` instead of the `.js` extension used by every other relative import in this file. The project's tsconfig sets `module: Node16`, which requires explicit `.js` (not `.ts`) extensions on relative specifiers; under Node16/NodeNext this import will fail to compile, and at runtime the emitted JavaScript will look for a `.ts` file that does not exist. This will break the build and prevent the new xcresult-counts feature from loading.
Analyze (python)
Starting April 2026, the CodeQL Action will skip computing file coverage information on pull requests to improve analysis performance. File coverage information will still be computed on non-PR analyses. To opt out of this change, create a custom repository property with the name `github-codeql-file-coverage-on-prs` and the type "True/false", then set this property to `true` in the repository's settings.
Import uses .ts extension instead of .js: src/utils/xcodebuild-domain-results.ts#L31
The new import uses a `.ts` extension while every other import in this file (and per project standards for ES modules) uses `.js` extensions. This is inconsistent with the established coding standards and will likely break ES module resolution at runtime since TypeScript ESM imports must reference the compiled `.js` path.
parseXcresultTestSummaryCounts throws on invalid JSON instead of returning null: src/utils/xcresult-test-failures.ts#L31
The function calls JSON.parse without a try/catch and is declared to return `Counts | null`. If `xcresulttool` ever emits non-JSON output (e.g., a warning, empty string, or future format change), JSON.parse will throw a SyntaxError that propagates to callers. Although `extractTestSummaryCountsFromXcresult` wraps the exec call in try/catch, any other caller of the exported `parseXcresultTestSummaryCounts` (it is exported) will crash, and the contract implied by the `| null` return type is violated.