PR #397 #1182
codeql
on: dynamic
Matrix: analyze
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.
|