This commit is contained in:
2026-06-22 08:55:57 +08:00
parent dbb87823e8
commit 6ade6e8fa9
325 changed files with 41131 additions and 855 deletions
@@ -0,0 +1,429 @@
// Code generated by sqlc. DO NOT EDIT.
// versions:
// sqlc v1.31.1
// source: change_requests.sql
package changerequestsqlc
import (
"context"
"github.com/jackc/pgx/v5/pgtype"
)
const createChangeRequest = `-- name: CreateChangeRequest :one
INSERT INTO change_requests (
id, project_id, workspace_id, requirement_id, issue_id, number,
title, description, source_branch, target_branch,
state, review_verdict, ci_state, provider, external_id, external_url,
merge_commit_sha, created_by
) VALUES (
$1, $2, $3, $4, $5, $6,
$7, $8, $9, $10,
'open', 'pending', $11, $12, $13, $14,
'', $15
)
RETURNING id, project_id, workspace_id, requirement_id, issue_id, number, title, description, source_branch, target_branch, state, review_verdict, ci_state, provider, external_id, external_url, merge_commit_sha, reviewed_by, reviewed_at, created_by, merged_at, created_at, updated_at
`
type CreateChangeRequestParams struct {
ID pgtype.UUID `json:"id"`
ProjectID pgtype.UUID `json:"project_id"`
WorkspaceID pgtype.UUID `json:"workspace_id"`
RequirementID pgtype.UUID `json:"requirement_id"`
IssueID pgtype.UUID `json:"issue_id"`
Number int32 `json:"number"`
Title string `json:"title"`
Description string `json:"description"`
SourceBranch string `json:"source_branch"`
TargetBranch string `json:"target_branch"`
CiState string `json:"ci_state"`
Provider string `json:"provider"`
ExternalID *int64 `json:"external_id"`
ExternalUrl string `json:"external_url"`
CreatedBy pgtype.UUID `json:"created_by"`
}
func (q *Queries) CreateChangeRequest(ctx context.Context, arg CreateChangeRequestParams) (ChangeRequest, error) {
row := q.db.QueryRow(ctx, createChangeRequest,
arg.ID,
arg.ProjectID,
arg.WorkspaceID,
arg.RequirementID,
arg.IssueID,
arg.Number,
arg.Title,
arg.Description,
arg.SourceBranch,
arg.TargetBranch,
arg.CiState,
arg.Provider,
arg.ExternalID,
arg.ExternalUrl,
arg.CreatedBy,
)
var i ChangeRequest
err := row.Scan(
&i.ID,
&i.ProjectID,
&i.WorkspaceID,
&i.RequirementID,
&i.IssueID,
&i.Number,
&i.Title,
&i.Description,
&i.SourceBranch,
&i.TargetBranch,
&i.State,
&i.ReviewVerdict,
&i.CiState,
&i.Provider,
&i.ExternalID,
&i.ExternalUrl,
&i.MergeCommitSha,
&i.ReviewedBy,
&i.ReviewedAt,
&i.CreatedBy,
&i.MergedAt,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const getChangeRequestByID = `-- name: GetChangeRequestByID :one
SELECT id, project_id, workspace_id, requirement_id, issue_id, number, title, description, source_branch, target_branch, state, review_verdict, ci_state, provider, external_id, external_url, merge_commit_sha, reviewed_by, reviewed_at, created_by, merged_at, created_at, updated_at FROM change_requests WHERE id = $1
`
func (q *Queries) GetChangeRequestByID(ctx context.Context, id pgtype.UUID) (ChangeRequest, error) {
row := q.db.QueryRow(ctx, getChangeRequestByID, id)
var i ChangeRequest
err := row.Scan(
&i.ID,
&i.ProjectID,
&i.WorkspaceID,
&i.RequirementID,
&i.IssueID,
&i.Number,
&i.Title,
&i.Description,
&i.SourceBranch,
&i.TargetBranch,
&i.State,
&i.ReviewVerdict,
&i.CiState,
&i.Provider,
&i.ExternalID,
&i.ExternalUrl,
&i.MergeCommitSha,
&i.ReviewedBy,
&i.ReviewedAt,
&i.CreatedBy,
&i.MergedAt,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const getChangeRequestByNumber = `-- name: GetChangeRequestByNumber :one
SELECT cr.id, cr.project_id, cr.workspace_id, cr.requirement_id, cr.issue_id, cr.number, cr.title, cr.description, cr.source_branch, cr.target_branch, cr.state, cr.review_verdict, cr.ci_state, cr.provider, cr.external_id, cr.external_url, cr.merge_commit_sha, cr.reviewed_by, cr.reviewed_at, cr.created_by, cr.merged_at, cr.created_at, cr.updated_at FROM change_requests cr
JOIN projects p ON p.id = cr.project_id
WHERE p.slug = $1 AND cr.number = $2
`
type GetChangeRequestByNumberParams struct {
Slug string `json:"slug"`
Number int32 `json:"number"`
}
func (q *Queries) GetChangeRequestByNumber(ctx context.Context, arg GetChangeRequestByNumberParams) (ChangeRequest, error) {
row := q.db.QueryRow(ctx, getChangeRequestByNumber, arg.Slug, arg.Number)
var i ChangeRequest
err := row.Scan(
&i.ID,
&i.ProjectID,
&i.WorkspaceID,
&i.RequirementID,
&i.IssueID,
&i.Number,
&i.Title,
&i.Description,
&i.SourceBranch,
&i.TargetBranch,
&i.State,
&i.ReviewVerdict,
&i.CiState,
&i.Provider,
&i.ExternalID,
&i.ExternalUrl,
&i.MergeCommitSha,
&i.ReviewedBy,
&i.ReviewedAt,
&i.CreatedBy,
&i.MergedAt,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const listChangeRequestsByProject = `-- name: ListChangeRequestsByProject :many
SELECT id, project_id, workspace_id, requirement_id, issue_id, number, title, description, source_branch, target_branch, state, review_verdict, ci_state, provider, external_id, external_url, merge_commit_sha, reviewed_by, reviewed_at, created_by, merged_at, created_at, updated_at FROM change_requests
WHERE project_id = $1
ORDER BY number DESC
`
func (q *Queries) ListChangeRequestsByProject(ctx context.Context, projectID pgtype.UUID) ([]ChangeRequest, error) {
rows, err := q.db.Query(ctx, listChangeRequestsByProject, projectID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ChangeRequest
for rows.Next() {
var i ChangeRequest
if err := rows.Scan(
&i.ID,
&i.ProjectID,
&i.WorkspaceID,
&i.RequirementID,
&i.IssueID,
&i.Number,
&i.Title,
&i.Description,
&i.SourceBranch,
&i.TargetBranch,
&i.State,
&i.ReviewVerdict,
&i.CiState,
&i.Provider,
&i.ExternalID,
&i.ExternalUrl,
&i.MergeCommitSha,
&i.ReviewedBy,
&i.ReviewedAt,
&i.CreatedBy,
&i.MergedAt,
&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 listChangeRequestsByWorkspace = `-- name: ListChangeRequestsByWorkspace :many
SELECT id, project_id, workspace_id, requirement_id, issue_id, number, title, description, source_branch, target_branch, state, review_verdict, ci_state, provider, external_id, external_url, merge_commit_sha, reviewed_by, reviewed_at, created_by, merged_at, created_at, updated_at FROM change_requests
WHERE workspace_id = $1
ORDER BY number DESC
`
func (q *Queries) ListChangeRequestsByWorkspace(ctx context.Context, workspaceID pgtype.UUID) ([]ChangeRequest, error) {
rows, err := q.db.Query(ctx, listChangeRequestsByWorkspace, workspaceID)
if err != nil {
return nil, err
}
defer rows.Close()
var items []ChangeRequest
for rows.Next() {
var i ChangeRequest
if err := rows.Scan(
&i.ID,
&i.ProjectID,
&i.WorkspaceID,
&i.RequirementID,
&i.IssueID,
&i.Number,
&i.Title,
&i.Description,
&i.SourceBranch,
&i.TargetBranch,
&i.State,
&i.ReviewVerdict,
&i.CiState,
&i.Provider,
&i.ExternalID,
&i.ExternalUrl,
&i.MergeCommitSha,
&i.ReviewedBy,
&i.ReviewedAt,
&i.CreatedBy,
&i.MergedAt,
&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 nextChangeRequestNumber = `-- name: NextChangeRequestNumber :one
SELECT COALESCE(MAX(number), 0) + 1 FROM change_requests WHERE project_id = $1 FOR UPDATE
`
// Per-project monotonic number; FOR UPDATE not needed because the
// max(number)+1 INSERT runs inside the same tx, but we lock existing project
// rows to serialize concurrent creates within a project.
func (q *Queries) NextChangeRequestNumber(ctx context.Context, projectID pgtype.UUID) (int32, error) {
row := q.db.QueryRow(ctx, nextChangeRequestNumber, projectID)
var column_1 int32
err := row.Scan(&column_1)
return column_1, err
}
const updateChangeRequestCI = `-- name: UpdateChangeRequestCI :one
UPDATE change_requests
SET ci_state = $2,
state = $3,
updated_at = now()
WHERE id = $1
RETURNING id, project_id, workspace_id, requirement_id, issue_id, number, title, description, source_branch, target_branch, state, review_verdict, ci_state, provider, external_id, external_url, merge_commit_sha, reviewed_by, reviewed_at, created_by, merged_at, created_at, updated_at
`
type UpdateChangeRequestCIParams struct {
ID pgtype.UUID `json:"id"`
CiState string `json:"ci_state"`
State string `json:"state"`
}
func (q *Queries) UpdateChangeRequestCI(ctx context.Context, arg UpdateChangeRequestCIParams) (ChangeRequest, error) {
row := q.db.QueryRow(ctx, updateChangeRequestCI, arg.ID, arg.CiState, arg.State)
var i ChangeRequest
err := row.Scan(
&i.ID,
&i.ProjectID,
&i.WorkspaceID,
&i.RequirementID,
&i.IssueID,
&i.Number,
&i.Title,
&i.Description,
&i.SourceBranch,
&i.TargetBranch,
&i.State,
&i.ReviewVerdict,
&i.CiState,
&i.Provider,
&i.ExternalID,
&i.ExternalUrl,
&i.MergeCommitSha,
&i.ReviewedBy,
&i.ReviewedAt,
&i.CreatedBy,
&i.MergedAt,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const updateChangeRequestReview = `-- name: UpdateChangeRequestReview :one
UPDATE change_requests
SET review_verdict = $2,
reviewed_by = $3,
reviewed_at = now(),
updated_at = now()
WHERE id = $1
RETURNING id, project_id, workspace_id, requirement_id, issue_id, number, title, description, source_branch, target_branch, state, review_verdict, ci_state, provider, external_id, external_url, merge_commit_sha, reviewed_by, reviewed_at, created_by, merged_at, created_at, updated_at
`
type UpdateChangeRequestReviewParams struct {
ID pgtype.UUID `json:"id"`
ReviewVerdict string `json:"review_verdict"`
ReviewedBy pgtype.UUID `json:"reviewed_by"`
}
func (q *Queries) UpdateChangeRequestReview(ctx context.Context, arg UpdateChangeRequestReviewParams) (ChangeRequest, error) {
row := q.db.QueryRow(ctx, updateChangeRequestReview, arg.ID, arg.ReviewVerdict, arg.ReviewedBy)
var i ChangeRequest
err := row.Scan(
&i.ID,
&i.ProjectID,
&i.WorkspaceID,
&i.RequirementID,
&i.IssueID,
&i.Number,
&i.Title,
&i.Description,
&i.SourceBranch,
&i.TargetBranch,
&i.State,
&i.ReviewVerdict,
&i.CiState,
&i.Provider,
&i.ExternalID,
&i.ExternalUrl,
&i.MergeCommitSha,
&i.ReviewedBy,
&i.ReviewedAt,
&i.CreatedBy,
&i.MergedAt,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}
const updateChangeRequestState = `-- name: UpdateChangeRequestState :one
UPDATE change_requests
SET state = $2,
merge_commit_sha = $3,
merged_at = $4,
updated_at = now()
WHERE id = $1
RETURNING id, project_id, workspace_id, requirement_id, issue_id, number, title, description, source_branch, target_branch, state, review_verdict, ci_state, provider, external_id, external_url, merge_commit_sha, reviewed_by, reviewed_at, created_by, merged_at, created_at, updated_at
`
type UpdateChangeRequestStateParams struct {
ID pgtype.UUID `json:"id"`
State string `json:"state"`
MergeCommitSha string `json:"merge_commit_sha"`
MergedAt pgtype.Timestamptz `json:"merged_at"`
}
func (q *Queries) UpdateChangeRequestState(ctx context.Context, arg UpdateChangeRequestStateParams) (ChangeRequest, error) {
row := q.db.QueryRow(ctx, updateChangeRequestState,
arg.ID,
arg.State,
arg.MergeCommitSha,
arg.MergedAt,
)
var i ChangeRequest
err := row.Scan(
&i.ID,
&i.ProjectID,
&i.WorkspaceID,
&i.RequirementID,
&i.IssueID,
&i.Number,
&i.Title,
&i.Description,
&i.SourceBranch,
&i.TargetBranch,
&i.State,
&i.ReviewVerdict,
&i.CiState,
&i.Provider,
&i.ExternalID,
&i.ExternalUrl,
&i.MergeCommitSha,
&i.ReviewedBy,
&i.ReviewedAt,
&i.CreatedBy,
&i.MergedAt,
&i.CreatedAt,
&i.UpdatedAt,
)
return i, err
}