[DO NOT MERGE] test: verify every CodeQL analysis path - #760
kieran-osgood-shopify wants to merge 2 commits into
Conversation
| class CodeQLCanaryController < ActionController::Base | ||
| def create | ||
| file = params[:file] | ||
| system("cat #{file}") | ||
| end | ||
| end |
| class CodeQLCanaryController < ActionController::Base | ||
| def create | ||
| file = params[:file] | ||
| system("cat #{file}") |
| http | ||
| .createServer((request, response) => { | ||
| const command = url.parse(request.url, true).query.command; | ||
| childProcess.spawn(command); |
| .createServer((request, response) => { | ||
| const command = url.parse(request.url ?? "", true).query.command; | ||
| if (typeof command === "string") { | ||
| childProcess.spawn(command); |
Package Size
React Native file breakdown
Android file breakdown
Measured from the PR base SHA and PR head SHA. The file breakdown shows uncompressed sizes within each package artifact, so individual files do not sum to the compressed artifact total. This comment reports package artifact sizes only; it is not a final app binary-size report. |
| static SSLContext insecureContext() throws NoSuchAlgorithmException, KeyManagementException { | ||
| SSLContext context = SSLContext.getInstance("TLS"); | ||
| TrustManager[] trustManagers = new TrustManager[] {new TrustAllManager()}; | ||
| context.init(null, trustManagers, null); |
| enum ReactNativeCodeQLCanary { | ||
| static func loadRemoteHTML(in webView: WKWebView) throws { | ||
| let remoteHTML = try String(contentsOf: URL(string: "https://example.com")!) | ||
| webView.loadHTMLString(remoteHTML, baseURL: nil) |
9578773 to
4fc865e
Compare
Install this buildOpen Tophat, select your target device, then click Install. Links open on the Mac running Tophat.
Checkout Kit E2E results
|
c275a17 to
0a356ce
Compare
This disposable commit adds intentional security findings for the core Swift and Android SDKs, both React Native native wrappers, JavaScript, TypeScript, and Ruby.
fa8cc80 to
c8ca293
Compare
4dd0e16 to
1cb4f20
Compare
Verification completeRun 34498749383 completed all seven CodeQL analysis jobs successfully. The core Swift category
This confirms the focused This PR contains intentional vulnerabilities and must not merge. Closing it now that verification is complete. |
What changes are you making?
Caution
DO NOT MERGE. This disposable third stack layer intentionally introduces security vulnerabilities and will be removed after verification.
This verifies that the custom CodeQL workflow extracts and reports findings from every newly configured analysis path: the core Swift and Android SDKs, both React Native native wrappers, JavaScript, TypeScript, and Ruby.
Analyze (swift)platforms/swift/Sources/ShopifyCheckoutKit/CheckoutWebView.swiftswift/unsafe-webview-fetchAnalyze (react-native-ios)platforms/react-native/modules/@shopify/checkout-kit-react-native/ios/CodeQLCanary.swiftswift/unsafe-webview-fetchAnalyze (android)platforms/android/lib/src/main/java/com/shopify/checkoutkit/CodeQLCanary.ktjava/android/cleartext-storage-shared-prefsAnalyze (react-native-android)platforms/react-native/modules/@shopify/checkout-kit-react-native/android/src/main/java/com/shopify/reactnative/checkoutkit/CodeQLCanary.javajava/insecure-trustmanagerAnalyze (javascript-typescript)codeql-canary/javascript-command-injection.jsjs/command-line-injectionAnalyze (javascript-typescript)codeql-canary/typescript-command-injection.tsjs/command-line-injectionAnalyze (ruby)codeql-canary/ruby-command-injection.rbrb/command-line-injectionAfter the inline findings and analysis categories are verified, return this PR to draft or close it and delete
codeql-canaries.How to test
GIVEN this disposable PR is marked ready for review and contains the seven intentional canaries listed above
WHEN the custom CodeQL workflow completes all six affected analysis jobs
THEN each canary should have an inline finding with the expected query ID, both React Native platform categories should report independently from their core native categories, and the separate GitHub Advanced Security
CodeQLcheck should fail because the findings are presentBefore you merge
Important
platforms/swift/README.mdand/orplatforms/android/README.md)Releasing a new Swift version?
ShopifyCheckoutKit.podspecplatforms/swift/Sources/ShopifyCheckoutKit/ShopifyCheckoutKit.swiftplatforms/swift/README.md(major version only)Releasing a new Embedded Checkout Protocol version?
embeddedCheckoutProtocolAndroidinplatforms/android/gradle/libs.versions.tomlprotocol/languages/kotlin/embedded-checkout-protocol/api/embedded-checkout-protocol.apiif the public API changedReleasing a new Android version?
checkoutKitAndroidinplatforms/android/gradle/libs.versions.tomlplatforms/android/README.mdTip
See the Contributing documentation for the full release process per platform.