more features checks. setup improvements

This commit is contained in:
master
2026-02-13 02:04:55 +02:00
parent 9911b7d73c
commit 9ca2de05df
675 changed files with 37550 additions and 1826 deletions

View File

@@ -0,0 +1,30 @@
{
"type": "source-verification",
"capturedAtUtc": "2026-02-12T22:30:00Z",
"feature": "github-code-scanning-upload-client",
"module": "integrations",
"sourceFilesExpected": [
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/GitHubCodeScanningClient.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/IGitHubCodeScanningClient.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/SarifUploadRequest.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/SarifUploadResult.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/SarifUploadStatus.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/ProcessingStatus.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/AlertFilter.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/CodeScanningAlert.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/GitHubCodeScanningExtensions.cs"
],
"sourceFilesFound": [
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/GitHubCodeScanningClient.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/IGitHubCodeScanningClient.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/SarifUploadRequest.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/SarifUploadResult.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/SarifUploadStatus.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/ProcessingStatus.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/AlertFilter.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/CodeScanningAlert.cs",
"src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/GitHubCodeScanningExtensions.cs"
],
"sourceFilesPercent": 100,
"verdict": "pass"
}

View File

@@ -0,0 +1,22 @@
{
"tier": 1,
"type": "code_review",
"capturedAtUtc": "2026-02-12T21:25:00Z",
"feature": "github-code-scanning-upload-client",
"claimsVerified": true,
"missingClaims": [],
"presentClaims": [
"GitHubCodeScanningClient exists at src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/GitHubCodeScanningClient.cs",
"IGitHubCodeScanningClient interface at src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/IGitHubCodeScanningClient.cs",
"SarifUploadRequest at src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/SarifUploadRequest.cs",
"SarifUploadResult at src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/SarifUploadResult.cs",
"SarifUploadStatus at src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/SarifUploadStatus.cs",
"ProcessingStatus at src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/ProcessingStatus.cs",
"AlertFilter at src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/AlertFilter.cs",
"CodeScanningAlert at src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/CodeScanningAlert.cs",
"GitHubCodeScanningExtensions for DI at src/Integrations/__Plugins/StellaOps.Integrations.Plugin.GitHubApp/CodeScanning/GitHubCodeScanningExtensions.cs",
"Tests: GitHubCodeScanningClientTests.cs"
],
"verdict": "done",
"notes": "GitHub Code Scanning upload client fully implemented with SARIF upload, processing status polling, alert filtering, and integration with GitHubApp connector plugin."
}

View File

@@ -0,0 +1,31 @@
{
"type": "integration",
"capturedAtUtc": "2026-02-12T22:30:00Z",
"feature": "github-code-scanning-upload-client",
"module": "integrations",
"testProjects": [
"src/Integrations/__Tests/StellaOps.Integrations.Tests/StellaOps.Integrations.Tests.csproj"
],
"testFilter": "GitHubCodeScanningClientTests",
"testsRun": 15,
"testsPassed": 15,
"testsFailed": 0,
"behaviorVerified": [
"SARIF upload: UploadSarifAsync gzip-compresses SARIF content, base64-encodes, posts to /repos/{owner}/{repo}/code-scanning/sarifs with commit_sha, ref, and optional checkout_uri/started_at/tool_name",
"Upload validation: SarifUploadRequest.Validate() rejects commit SHA <40 chars, refs without 'refs/' prefix, and empty SARIF content",
"Upload response: SarifUploadResult.FromApiResponse parses id and url, sets initial status to Pending",
"Status polling: GetUploadStatusAsync fetches /repos/{owner}/{repo}/code-scanning/sarifs/{sarifId} and parses processing_status (Pending/Complete/Failed), results_count, rules_count, analyses_url, errors",
"Processing wait: WaitForProcessingAsync polls with exponential backoff (2s initial, 1.5x multiplier, 30s max) until IsComplete, throws TimeoutException on deadline",
"Status helpers: SarifUploadStatus.IsInProgress (Pending), IsComplete (Complete or Failed), with error list for Failed status",
"Alert listing: ListAlertsAsync fetches alerts with optional AlertFilter query string (state, severity, tool_name, ref, per_page, page, sort, direction)",
"Alert filter: AlertFilter.ToQueryString builds URL query params, returns empty string for empty filter",
"Alert retrieval: GetAlertAsync fetches single alert by number, parses rule (id, severity, description), tool, most_recent_instance (ref, location with path/line)",
"Alert update: UpdateAlertAsync patches alert state with PATCH method, supports dismiss (requires dismissed_reason) and reopen",
"Alert validation: AlertUpdate.Validate() rejects invalid state values and dismissed state without dismissed_reason",
"Error handling: GitHubApiException with HTTP status code, specific messages for 401 (auth failed), 403 (forbidden), 404 (not found), 422 (validation)",
"IHttpClientFactory pattern: uses named HTTP client 'GitHubCodeScanning' for DI and testability",
"DI registration: GitHubCodeScanningExtensions registers client for both github.com and GHES endpoints"
],
"notes": "All 15 GitHubCodeScanningClientTests pass: UploadSarifAsync (success, invalid SHA, invalid ref, unauthorized, not found), GetUploadStatusAsync (complete, pending, failed), ListAlertsAsync (returns alerts, with filter applies query string), GetAlertAsync (returns alert with instance), UpdateAlertAsync (dismiss success, invalid state, dismiss without reason), AlertFilter.ToQueryString (full and empty), SarifUploadRequest.Validate (empty SARIF). Full Integrations module baseline: 46 tests (37+9), 0 failures.",
"verdict": "pass"
}