import { env } from "cloudflare:workers";
import { repoDb } from "../scoped-db";
import { jobDb } from "./scope";
import { decryptRepoSecret } from "../secrets";
import { loadRepoById } from "../repos";
import { setCommitStatus } from "../statuses";
import { runUrl, statusContext } from "./scheduler";
import { environmentIdFor, loadSecretRows } from "./config-values";
import { markDeploymentStarted, settleDeployment } from "./deployments";
import { cloudRunnerSize } from "./runner-sizes";
import { withJobDefaults } from "./compile";
import type { CompiledJob } from "./compile";
import { jobSeconds, meterCompletedJob, runnerMeter } from "../metering/ci";
import { captureServerEvent } from "../analytics";
import { releaseJobHold } from "./job-hold";
import { mintHeldRepoToken, releaseRepoToken } from "../git/artifacts";
import type { Conclusion, JobStatus, RepoRow, RunStatus } from "~/lib/types";
export type WorkflowRunRow = {
id: string;
repo_id: string;
source_repo_id: string;
run_number: number;
workflow_path: string;
workflow_name: string;
event: string;
ref: string;
sha: string;
title: string;
actor_id: string | null;
pr_number: number | null;
approval_required: number;
workflow_source: string | null;
context: string | null;
trigger_depth: number;
rerun_of: string | null;
untrusted: number;
status: RunStatus;
conclusion: Conclusion | null;
created_at: number;