(
connection: sqlite3.Connection, occurrence_id: str
)
| 3388 | |
| 3389 | |
| 3390 | def finding_remediation_result( |
| 3391 | connection: sqlite3.Connection, occurrence_id: str |
| 3392 | ) -> dict[str, Any]: |
| 3393 | row = connection.execute( |
| 3394 | """ |
| 3395 | SELECT remediation.request_id, remediation.state, remediation.version, |
| 3396 | remediation.base_revision, remediation.base_content_digest, |
| 3397 | remediation.applied_content_digest, remediation.pending_action, |
| 3398 | remediation.pending_action_claimed_at, remediation.pending_action_claim_token, |
| 3399 | remediation.pending_action_delivered_at, |
| 3400 | remediation.patch_path, remediation.patch_digest, remediation.summary, |
| 3401 | remediation.verification_summary, remediation.updated_at, scans.scan_dir |
| 3402 | FROM finding_remediation_attempts AS remediation |
| 3403 | JOIN finding_occurrences AS occurrences ON occurrences.id = remediation.occurrence_id |
| 3404 | JOIN scans ON scans.id = occurrences.scan_id |
| 3405 | WHERE remediation.occurrence_id = ? |
| 3406 | ORDER BY remediation.created_at DESC, remediation.rowid DESC |
| 3407 | LIMIT 1 |
| 3408 | """, |
| 3409 | (occurrence_id,), |
| 3410 | ).fetchone() |
| 3411 | if row is None: |
| 3412 | return {"state": "idle"} |
| 3413 | patch, patch_stats = patch_artifact_preview( |
| 3414 | Path(row["scan_dir"]), row["patch_path"], row["patch_digest"] |
| 3415 | ) |
| 3416 | return { |
| 3417 | "baseRevision": row["base_revision"], |
| 3418 | "actionClaimedAt": row["pending_action_claimed_at"], |
| 3419 | "actionClaimToken": row["pending_action_claim_token"], |
| 3420 | "actionDeliveredAt": row["pending_action_delivered_at"], |
| 3421 | "pendingAction": row["pending_action"], |
| 3422 | "patchDigest": row["patch_digest"], |
| 3423 | "patchPath": row["patch_path"], |
| 3424 | "patch": patch, |
| 3425 | "patchStats": patch_stats, |
| 3426 | "requestId": row["request_id"], |
| 3427 | "state": row["state"], |
| 3428 | "summary": row["summary"], |
| 3429 | "updatedAt": row["updated_at"], |
| 3430 | "verificationSummary": row["verification_summary"], |
| 3431 | "version": row["version"], |
| 3432 | } |
| 3433 | |
| 3434 | |
| 3435 | def patch_artifact_preview( |
no test coverage detected