fix. harden Go review flow
Fix runner bootstrap and auth handling, preserve queued SHAs, make event/job acceptance atomic, fence stale runs, correct retries and prompts, add fake end-to-end coverage, and fix deployment defaults. Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,3 +1,57 @@
|
||||
-- The Go migrator creates this logical schema with dialect-specific SQL.
|
||||
-- This file documents the compatibility baseline: webhook_events, review_jobs,
|
||||
-- review_runs, and bot_comments with the constraints described in README.md.
|
||||
-- MariaDB baseline schema. The Go startup migrator emits equivalent SQLite SQL.
|
||||
CREATE TABLE IF NOT EXISTS webhook_events (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
delivery_id VARCHAR(255) NULL UNIQUE,
|
||||
event_name VARCHAR(128) NOT NULL,
|
||||
repo VARCHAR(255) NOT NULL,
|
||||
comment_id BIGINT NULL,
|
||||
payload_sha256 VARCHAR(64) NOT NULL,
|
||||
created_at DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
||||
UNIQUE KEY uq_webhook_events_repo_comment (repo, comment_id)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS review_jobs (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
repo VARCHAR(255) NOT NULL,
|
||||
pr_number INT NOT NULL,
|
||||
head_sha VARCHAR(64) NOT NULL,
|
||||
trigger_comment_id BIGINT NOT NULL,
|
||||
command VARCHAR(64) NOT NULL,
|
||||
command_args TEXT NULL,
|
||||
requested_by VARCHAR(255) NOT NULL,
|
||||
status VARCHAR(32) NOT NULL,
|
||||
last_error TEXT NULL,
|
||||
result_json JSON NULL,
|
||||
created_at DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
||||
updated_at DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
||||
started_at DATETIME(6) NULL,
|
||||
finished_at DATETIME(6) NULL,
|
||||
UNIQUE KEY uq_review_jobs_repo_trigger_comment (repo, trigger_comment_id),
|
||||
KEY ix_review_jobs_lookup (repo, pr_number, head_sha, status, created_at)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS review_runs (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
job_id BIGINT NOT NULL,
|
||||
status VARCHAR(32) NOT NULL,
|
||||
runner_container_id VARCHAR(128) NULL,
|
||||
result_json JSON NULL,
|
||||
error_message TEXT NULL,
|
||||
started_at DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
||||
finished_at DATETIME(6) NULL,
|
||||
CONSTRAINT fk_review_runs_job FOREIGN KEY (job_id) REFERENCES review_jobs(id) ON DELETE CASCADE,
|
||||
KEY ix_review_runs_job_status (job_id, status)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS bot_comments (
|
||||
id BIGINT AUTO_INCREMENT PRIMARY KEY,
|
||||
repo VARCHAR(255) NOT NULL,
|
||||
pr_number INT NOT NULL,
|
||||
head_sha VARCHAR(64) NOT NULL,
|
||||
gitea_comment_id BIGINT NOT NULL,
|
||||
marker VARCHAR(255) NOT NULL,
|
||||
created_at DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
||||
updated_at DATETIME(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6),
|
||||
UNIQUE KEY uq_bot_comments_marker (repo, pr_number, marker),
|
||||
KEY ix_bot_comments_repo_pr (repo, pr_number)
|
||||
) ENGINE=InnoDB;
|
||||
|
||||
@@ -1 +1,2 @@
|
||||
-- Compatibility migration: add review_jobs.trigger_comment_body when absent.
|
||||
-- MariaDB compatibility migration.
|
||||
ALTER TABLE review_jobs ADD COLUMN trigger_comment_body TEXT NULL;
|
||||
|
||||
Reference in New Issue
Block a user