// Code generated by sqlc. DO NOT EDIT. // versions: // sqlc v1.31.1 // source: checks.sql package checksdb import ( "context" "github.com/jackc/pgx/v5/pgtype" ) const createCheckRun = `-- name: CreateCheckRun :one INSERT INTO check_runs ( suite_id, repo_id, head_sha, name, status, conclusion, started_at, completed_at, details_url, output, external_id ) VALUES ( $1, $2, $3, $4, $5, $8::check_conclusion, $9::timestamptz, $10::timestamptz, $6, $7, $11::text ) RETURNING id, suite_id, repo_id, head_sha, name, status, conclusion, started_at, completed_at, details_url, output, external_id, created_at, updated_at ` type CreateCheckRunParams struct { SuiteID int64 RepoID int64 HeadSha string Name string Status CheckStatus DetailsUrl string Output []byte Conclusion NullCheckConclusion StartedAt pgtype.Timestamptz CompletedAt pgtype.Timestamptz ExternalID pgtype.Text } func (q *Queries) CreateCheckRun(ctx context.Context, db DBTX, arg CreateCheckRunParams) (CheckRun, error) { row := db.QueryRow(ctx, createCheckRun, arg.SuiteID, arg.RepoID, arg.HeadSha, arg.Name, arg.Status, arg.DetailsUrl, arg.Output, arg.Conclusion, arg.StartedAt, arg.CompletedAt, arg.ExternalID, ) var i CheckRun err := row.Scan( &i.ID, &i.SuiteID, &i.RepoID, &i.HeadSha, &i.Name, &i.Status, &i.Conclusion, &i.StartedAt, &i.CompletedAt, &i.DetailsUrl, &i.Output, &i.ExternalID, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const getCheckRun = `-- name: GetCheckRun :one SELECT id, suite_id, repo_id, head_sha, name, status, conclusion, started_at, completed_at, details_url, output, external_id, created_at, updated_at FROM check_runs WHERE id = $1 ` func (q *Queries) GetCheckRun(ctx context.Context, db DBTX, id int64) (CheckRun, error) { row := db.QueryRow(ctx, getCheckRun, id) var i CheckRun err := row.Scan( &i.ID, &i.SuiteID, &i.RepoID, &i.HeadSha, &i.Name, &i.Status, &i.Conclusion, &i.StartedAt, &i.CompletedAt, &i.DetailsUrl, &i.Output, &i.ExternalID, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const getCheckRunByExternalID = `-- name: GetCheckRunByExternalID :one SELECT id, suite_id, repo_id, head_sha, name, status, conclusion, started_at, completed_at, details_url, output, external_id, created_at, updated_at FROM check_runs WHERE repo_id = $1 AND head_sha = $2 AND name = $3 AND external_id = $4 ` type GetCheckRunByExternalIDParams struct { RepoID int64 HeadSha string Name string ExternalID pgtype.Text } // ─── check_runs ────────────────────────────────────────────────────── // External-system create dedupe: lookup by (repo, head_sha, name, // external_id). NULL external_id never matches via this query. func (q *Queries) GetCheckRunByExternalID(ctx context.Context, db DBTX, arg GetCheckRunByExternalIDParams) (CheckRun, error) { row := db.QueryRow(ctx, getCheckRunByExternalID, arg.RepoID, arg.HeadSha, arg.Name, arg.ExternalID, ) var i CheckRun err := row.Scan( &i.ID, &i.SuiteID, &i.RepoID, &i.HeadSha, &i.Name, &i.Status, &i.Conclusion, &i.StartedAt, &i.CompletedAt, &i.DetailsUrl, &i.Output, &i.ExternalID, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const getCheckSuite = `-- name: GetCheckSuite :one SELECT id, repo_id, head_sha, app_slug, status, conclusion, created_at, updated_at FROM check_suites WHERE id = $1 ` func (q *Queries) GetCheckSuite(ctx context.Context, db DBTX, id int64) (CheckSuite, error) { row := db.QueryRow(ctx, getCheckSuite, id) var i CheckSuite err := row.Scan( &i.ID, &i.RepoID, &i.HeadSha, &i.AppSlug, &i.Status, &i.Conclusion, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const getCheckSuiteForRepo = `-- name: GetCheckSuiteForRepo :one SELECT cs.id, cs.repo_id, cs.head_sha, cs.app_slug, cs.status, cs.conclusion, cs.created_at, cs.updated_at, COALESCE(pr_meta.number, 0)::bigint AS pull_number, COALESCE(pr_meta.title, '')::text AS pull_title, COALESCE(pr_meta.author_username, '')::text AS pull_author_username, COALESCE(pr_meta.head_ref, '')::text AS head_ref, COALESCE(pr_meta.base_ref, '')::text AS base_ref FROM check_suites cs LEFT JOIN LATERAL ( SELECT i.number, i.title, COALESCE(u.username, '') AS author_username, pr.head_ref, pr.base_ref FROM pull_requests pr JOIN issues i ON i.id = pr.issue_id AND i.kind = 'pr' LEFT JOIN users u ON u.id = i.author_user_id WHERE i.repo_id = cs.repo_id AND pr.head_oid = cs.head_sha ORDER BY i.updated_at DESC, i.number DESC LIMIT 1 ) pr_meta ON true WHERE cs.repo_id = $1 AND cs.id = $2 ` type GetCheckSuiteForRepoParams struct { RepoID int64 ID int64 } type GetCheckSuiteForRepoRow struct { ID int64 RepoID int64 HeadSha string AppSlug string Status CheckStatus Conclusion NullCheckConclusion CreatedAt pgtype.Timestamptz UpdatedAt pgtype.Timestamptz PullNumber int64 PullTitle string PullAuthorUsername string HeadRef string BaseRef string } func (q *Queries) GetCheckSuiteForRepo(ctx context.Context, db DBTX, arg GetCheckSuiteForRepoParams) (GetCheckSuiteForRepoRow, error) { row := db.QueryRow(ctx, getCheckSuiteForRepo, arg.RepoID, arg.ID) var i GetCheckSuiteForRepoRow err := row.Scan( &i.ID, &i.RepoID, &i.HeadSha, &i.AppSlug, &i.Status, &i.Conclusion, &i.CreatedAt, &i.UpdatedAt, &i.PullNumber, &i.PullTitle, &i.PullAuthorUsername, &i.HeadRef, &i.BaseRef, ) return i, err } const getLatestCheckRunByName = `-- name: GetLatestCheckRunByName :one SELECT id, suite_id, repo_id, head_sha, name, status, conclusion, started_at, completed_at, details_url, output, external_id, created_at, updated_at FROM check_runs WHERE repo_id = $1 AND head_sha = $2 AND name = $3 ORDER BY created_at DESC LIMIT 1 ` type GetLatestCheckRunByNameParams struct { RepoID int64 HeadSha string Name string } // Required-check evaluator: most recent run with the given name on the // specified head_sha. func (q *Queries) GetLatestCheckRunByName(ctx context.Context, db DBTX, arg GetLatestCheckRunByNameParams) (CheckRun, error) { row := db.QueryRow(ctx, getLatestCheckRunByName, arg.RepoID, arg.HeadSha, arg.Name) var i CheckRun err := row.Scan( &i.ID, &i.SuiteID, &i.RepoID, &i.HeadSha, &i.Name, &i.Status, &i.Conclusion, &i.StartedAt, &i.CompletedAt, &i.DetailsUrl, &i.Output, &i.ExternalID, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const getOrCreateCheckSuite = `-- name: GetOrCreateCheckSuite :one INSERT INTO check_suites (repo_id, head_sha, app_slug) VALUES ($1, $2, $3) ON CONFLICT (repo_id, head_sha, app_slug) DO UPDATE SET app_slug = EXCLUDED.app_slug RETURNING id, repo_id, head_sha, app_slug, status, conclusion, created_at, updated_at ` type GetOrCreateCheckSuiteParams struct { RepoID int64 HeadSha string AppSlug string } // SPDX-License-Identifier: AGPL-3.0-or-later // ─── check_suites ──────────────────────────────────────────────────── // Idempotent suite-by-(repo, head_sha, app_slug) lookup. Used by every // check-run create so consumers don't need to manage suite ids. ON // CONFLICT … DO UPDATE returns the existing row when the unique // (repo_id, head_sha, app_slug) already exists; otherwise returns the // freshly inserted one. func (q *Queries) GetOrCreateCheckSuite(ctx context.Context, db DBTX, arg GetOrCreateCheckSuiteParams) (CheckSuite, error) { row := db.QueryRow(ctx, getOrCreateCheckSuite, arg.RepoID, arg.HeadSha, arg.AppSlug) var i CheckSuite err := row.Scan( &i.ID, &i.RepoID, &i.HeadSha, &i.AppSlug, &i.Status, &i.Conclusion, &i.CreatedAt, &i.UpdatedAt, ) return i, err } const listCheckRunsBySuite = `-- name: ListCheckRunsBySuite :many SELECT id, suite_id, repo_id, head_sha, name, status, conclusion, started_at, completed_at, details_url, output, external_id, created_at, updated_at FROM check_runs WHERE suite_id = $1 ORDER BY name ` func (q *Queries) ListCheckRunsBySuite(ctx context.Context, db DBTX, suiteID int64) ([]CheckRun, error) { rows, err := db.Query(ctx, listCheckRunsBySuite, suiteID) if err != nil { return nil, err } defer rows.Close() items := []CheckRun{} for rows.Next() { var i CheckRun if err := rows.Scan( &i.ID, &i.SuiteID, &i.RepoID, &i.HeadSha, &i.Name, &i.Status, &i.Conclusion, &i.StartedAt, &i.CompletedAt, &i.DetailsUrl, &i.Output, &i.ExternalID, &i.CreatedAt, &i.UpdatedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const listCheckRunsForCommit = `-- name: ListCheckRunsForCommit :many SELECT id, suite_id, repo_id, head_sha, name, status, conclusion, started_at, completed_at, details_url, output, external_id, created_at, updated_at FROM check_runs WHERE repo_id = $1 AND head_sha = $2 ORDER BY name ` type ListCheckRunsForCommitParams struct { RepoID int64 HeadSha string } func (q *Queries) ListCheckRunsForCommit(ctx context.Context, db DBTX, arg ListCheckRunsForCommitParams) ([]CheckRun, error) { rows, err := db.Query(ctx, listCheckRunsForCommit, arg.RepoID, arg.HeadSha) if err != nil { return nil, err } defer rows.Close() items := []CheckRun{} for rows.Next() { var i CheckRun if err := rows.Scan( &i.ID, &i.SuiteID, &i.RepoID, &i.HeadSha, &i.Name, &i.Status, &i.Conclusion, &i.StartedAt, &i.CompletedAt, &i.DetailsUrl, &i.Output, &i.ExternalID, &i.CreatedAt, &i.UpdatedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const listCheckSuiteIDsForHead = `-- name: ListCheckSuiteIDsForHead :many SELECT id FROM check_suites WHERE repo_id = $1 AND head_sha = $2 AND status <> 'completed' ` type ListCheckSuiteIDsForHeadParams struct { RepoID int64 HeadSha string } // Used by the stale-on-push hook to flip queued/in_progress suites on // the previous head to conclusion='stale'. func (q *Queries) ListCheckSuiteIDsForHead(ctx context.Context, db DBTX, arg ListCheckSuiteIDsForHeadParams) ([]int64, error) { rows, err := db.Query(ctx, listCheckSuiteIDsForHead, arg.RepoID, arg.HeadSha) if err != nil { return nil, err } defer rows.Close() items := []int64{} for rows.Next() { var id int64 if err := rows.Scan(&id); err != nil { return nil, err } items = append(items, id) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const listCheckSuitesForCommit = `-- name: ListCheckSuitesForCommit :many SELECT id, repo_id, head_sha, app_slug, status, conclusion, created_at, updated_at FROM check_suites WHERE repo_id = $1 AND head_sha = $2 ORDER BY app_slug ` type ListCheckSuitesForCommitParams struct { RepoID int64 HeadSha string } func (q *Queries) ListCheckSuitesForCommit(ctx context.Context, db DBTX, arg ListCheckSuitesForCommitParams) ([]CheckSuite, error) { rows, err := db.Query(ctx, listCheckSuitesForCommit, arg.RepoID, arg.HeadSha) if err != nil { return nil, err } defer rows.Close() items := []CheckSuite{} for rows.Next() { var i CheckSuite if err := rows.Scan( &i.ID, &i.RepoID, &i.HeadSha, &i.AppSlug, &i.Status, &i.Conclusion, &i.CreatedAt, &i.UpdatedAt, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const listCheckSuitesForRepo = `-- name: ListCheckSuitesForRepo :many SELECT cs.id, cs.repo_id, cs.head_sha, cs.app_slug, cs.status, cs.conclusion, cs.created_at, cs.updated_at, COALESCE(pr_meta.number, 0)::bigint AS pull_number, COALESCE(pr_meta.title, '')::text AS pull_title, COALESCE(pr_meta.author_username, '')::text AS pull_author_username, COALESCE(pr_meta.head_ref, '')::text AS head_ref, COALESCE(pr_meta.base_ref, '')::text AS base_ref FROM check_suites cs LEFT JOIN LATERAL ( SELECT i.number, i.title, COALESCE(u.username, '') AS author_username, pr.head_ref, pr.base_ref FROM pull_requests pr JOIN issues i ON i.id = pr.issue_id AND i.kind = 'pr' LEFT JOIN users u ON u.id = i.author_user_id WHERE i.repo_id = cs.repo_id AND pr.head_oid = cs.head_sha ORDER BY i.updated_at DESC, i.number DESC LIMIT 1 ) pr_meta ON true WHERE cs.repo_id = $1 ORDER BY cs.updated_at DESC, cs.id DESC LIMIT $2 OFFSET $3 ` type ListCheckSuitesForRepoParams struct { RepoID int64 Limit int32 Offset int32 } type ListCheckSuitesForRepoRow struct { ID int64 RepoID int64 HeadSha string AppSlug string Status CheckStatus Conclusion NullCheckConclusion CreatedAt pgtype.Timestamptz UpdatedAt pgtype.Timestamptz PullNumber int64 PullTitle string PullAuthorUsername string HeadRef string BaseRef string } func (q *Queries) ListCheckSuitesForRepo(ctx context.Context, db DBTX, arg ListCheckSuitesForRepoParams) ([]ListCheckSuitesForRepoRow, error) { rows, err := db.Query(ctx, listCheckSuitesForRepo, arg.RepoID, arg.Limit, arg.Offset) if err != nil { return nil, err } defer rows.Close() items := []ListCheckSuitesForRepoRow{} for rows.Next() { var i ListCheckSuitesForRepoRow if err := rows.Scan( &i.ID, &i.RepoID, &i.HeadSha, &i.AppSlug, &i.Status, &i.Conclusion, &i.CreatedAt, &i.UpdatedAt, &i.PullNumber, &i.PullTitle, &i.PullAuthorUsername, &i.HeadRef, &i.BaseRef, ); err != nil { return nil, err } items = append(items, i) } if err := rows.Err(); err != nil { return nil, err } return items, nil } const markCheckSuiteStale = `-- name: MarkCheckSuiteStale :exec UPDATE check_suites SET status = 'completed', conclusion = 'stale' WHERE id = $1 ` func (q *Queries) MarkCheckSuiteStale(ctx context.Context, db DBTX, id int64) error { _, err := db.Exec(ctx, markCheckSuiteStale, id) return err } const updateCheckRun = `-- name: UpdateCheckRun :exec UPDATE check_runs SET status = $2, conclusion = $5::check_conclusion, started_at = $6::timestamptz, completed_at = $7::timestamptz, details_url = $3, output = $4 WHERE id = $1 ` type UpdateCheckRunParams struct { ID int64 Status CheckStatus DetailsUrl string Output []byte Conclusion NullCheckConclusion StartedAt pgtype.Timestamptz CompletedAt pgtype.Timestamptz } func (q *Queries) UpdateCheckRun(ctx context.Context, db DBTX, arg UpdateCheckRunParams) error { _, err := db.Exec(ctx, updateCheckRun, arg.ID, arg.Status, arg.DetailsUrl, arg.Output, arg.Conclusion, arg.StartedAt, arg.CompletedAt, ) return err } const updateCheckSuiteRollup = `-- name: UpdateCheckSuiteRollup :exec UPDATE check_suites SET status = $2, conclusion = $3::check_conclusion WHERE id = $1 ` type UpdateCheckSuiteRollupParams struct { ID int64 Status CheckStatus Conclusion NullCheckConclusion } // Persists the rollup result computed in Go (suite_rollup.go). func (q *Queries) UpdateCheckSuiteRollup(ctx context.Context, db DBTX, arg UpdateCheckSuiteRollupParams) error { _, err := db.Exec(ctx, updateCheckSuiteRollup, arg.ID, arg.Status, arg.Conclusion) return err }