[CI][Feature]: Add deterministic native CodeQL scanning - #754
Open
kieran-osgood-shopify wants to merge 2 commits into
Open
kieran-osgood-shopify wants to merge 2 commits into
kieran-osgood-shopify wants to merge 2 commits into
Conversation
|
You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool. What Enabling Code Scanning Means:
For more information about GitHub Code Scanning, check out the documentation. |
kieran-osgood-shopify
force-pushed
the
codeql
branch
5 times, most recently
from
September 9, 2026 17:01
3819166 to
aea223d
Compare
kieran-osgood-shopify
marked this pull request as ready for review
September 9, 2026 17:24
kieran-osgood-shopify
force-pushed
the
codeql
branch
2 times, most recently
from
September 10, 2026 10:27
81ffc56 to
c377280
Compare
kieran-osgood-shopify
added this pull request to stack #759
September 10, 2026 10:27
Checkout Kit E2E resultsNo E2E tests to run for this change. |
11 tasks
kieran-osgood-shopify
force-pushed
the
codeql
branch
2 times, most recently
from
September 10, 2026 15:54
fa8cc80 to
c8ca293
Compare
kieran-osgood-shopify
removed this pull request from stack #759
September 10, 2026 17:01
kieran-osgood-shopify
added this pull request to stack #762
September 10, 2026 17:02
kieran-osgood-shopify
force-pushed
the
codeql
branch
2 times, most recently
from
September 10, 2026 17:03
80afb63 to
88013a7
Compare
kieran-osgood-shopify
force-pushed
the
codeql
branch
from
September 11, 2026 11:35
88013a7 to
55fb731
Compare
kieran-osgood-shopify
force-pushed
the
codeql
branch
from
September 11, 2026 14:48
55fb731 to
24fad70
Compare
Assisted-By: devx/c44b22ed-e92b-422a-8245-d34957f21f33
kieran-osgood-shopify
force-pushed
the
codeql
branch
from
September 15, 2026 16:10
24fad70 to
c106def
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TLDR
Enable CodeQL on all languages we utilise
CodeQL has been silently failing for a while despite showing green on PR's
How
This uses CodeQL Advanced setup with the
security-extendedquery suite and explicit production-only extraction:CodeQLstatus always materializes.A normal traced
xcodebuildcontained all 93 production Swift files but omitted executable control-flow and data-flow bodies for most Swift package dependency methods. The core Swift job therefore:swiftc -typecheckpass for each production module after initialization.React Native iOS separately type-checks the six shipped wrapper sources against the published Shopify SDK and a minimal React declaration shim. This preserves real SDK type checking without tracing React Native's full CocoaPods dependency graph.
Future
We might want to explore whether there is better tooling available to Shopify for native applications, this has proved painful to setup and took an agent half a day of churn to setup
How to test
GIVEN the current-head CodeQL workflow run is complete
WHEN the reviewer opens https://github.com/Shopify/checkout-kit/actions/runs/34612331981
THEN Actions, JavaScript/TypeScript, Ruby, Android, React Native Android, Swift, and React Native iOS analysis should all be green
AND the GitHub Advanced Security aggregate
CodeQLcheck should be greenGIVEN disposable canary PR #760 exercised every analysis path and is closed
WHEN the reviewer opens https://github.com/Shopify/checkout-kit/security/code-scanning/10
THEN CodeQL should show
swift/unsafe-webview-fetchatplatforms/swift/Sources/ShopifyCheckoutKit/CheckoutWebView.swift:1142from the canary refAND no canary source should exist in either mergeable branch
Verification
ShopifyCheckoutKit, 528EmbeddedCheckoutProtocol, 25CheckoutKitTelemetry, and 210ShopifyAcceleratedCheckoutsnamed functions.