Go · 8696 bytes Raw Blame History
1 // Code generated by sqlc. DO NOT EDIT.
2 // versions:
3 // sqlc v1.31.1
4 // source: workflow_run_approvals.sql
5
6 package actionsdb
7
8 import (
9 "context"
10
11 "github.com/jackc/pgx/v5/pgtype"
12 )
13
14 const approveWorkflowRun = `-- name: ApproveWorkflowRun :one
15 WITH run AS (
16 UPDATE workflow_runs r
17 SET approved_by_user_id = $2,
18 version = version + 1,
19 updated_at = now()
20 WHERE r.id = $1
21 AND r.need_approval = true
22 AND r.approved_by_user_id IS NULL
23 AND r.status = 'queued'
24 AND EXISTS (
25 SELECT 1
26 FROM workflow_run_approvals a
27 WHERE a.run_id = r.id
28 AND a.approved_at IS NULL
29 AND a.rejected_at IS NULL
30 )
31 RETURNING r.id, r.repo_id, r.run_index, r.workflow_file, r.workflow_name,
32 r.head_sha, r.head_ref, r.event, r.event_payload,
33 r.actor_user_id, r.parent_run_id, r.concurrency_group,
34 r.status, r.conclusion, r.pinned, r.need_approval, r.approved_by_user_id,
35 r.started_at, r.completed_at, r.version, r.created_at, r.updated_at, r.trigger_event_id
36 ), approval AS (
37 UPDATE workflow_run_approvals a
38 SET approved_by_user_id = $2,
39 approved_at = now(),
40 updated_at = now()
41 FROM run r
42 WHERE a.run_id = r.id
43 AND a.approved_at IS NULL
44 AND a.rejected_at IS NULL
45 RETURNING a.run_id
46 )
47 SELECT r.id, r.repo_id, r.run_index, r.workflow_file, r.workflow_name,
48 r.head_sha, r.head_ref, r.event, r.event_payload,
49 r.actor_user_id, r.parent_run_id, r.concurrency_group,
50 r.status, r.conclusion, r.pinned, r.need_approval, r.approved_by_user_id,
51 r.started_at, r.completed_at, r.version, r.created_at, r.updated_at, r.trigger_event_id
52 FROM run r
53 JOIN approval a ON a.run_id = r.id
54 `
55
56 type ApproveWorkflowRunParams struct {
57 ID int64
58 ApprovedByUserID pgtype.Int8
59 }
60
61 type ApproveWorkflowRunRow struct {
62 ID int64
63 RepoID int64
64 RunIndex int64
65 WorkflowFile string
66 WorkflowName string
67 HeadSha string
68 HeadRef string
69 Event WorkflowRunEvent
70 EventPayload []byte
71 ActorUserID pgtype.Int8
72 ParentRunID pgtype.Int8
73 ConcurrencyGroup string
74 Status WorkflowRunStatus
75 Conclusion NullCheckConclusion
76 Pinned bool
77 NeedApproval bool
78 ApprovedByUserID pgtype.Int8
79 StartedAt pgtype.Timestamptz
80 CompletedAt pgtype.Timestamptz
81 Version int32
82 CreatedAt pgtype.Timestamptz
83 UpdatedAt pgtype.Timestamptz
84 TriggerEventID string
85 }
86
87 func (q *Queries) ApproveWorkflowRun(ctx context.Context, db DBTX, arg ApproveWorkflowRunParams) (ApproveWorkflowRunRow, error) {
88 row := db.QueryRow(ctx, approveWorkflowRun, arg.ID, arg.ApprovedByUserID)
89 var i ApproveWorkflowRunRow
90 err := row.Scan(
91 &i.ID,
92 &i.RepoID,
93 &i.RunIndex,
94 &i.WorkflowFile,
95 &i.WorkflowName,
96 &i.HeadSha,
97 &i.HeadRef,
98 &i.Event,
99 &i.EventPayload,
100 &i.ActorUserID,
101 &i.ParentRunID,
102 &i.ConcurrencyGroup,
103 &i.Status,
104 &i.Conclusion,
105 &i.Pinned,
106 &i.NeedApproval,
107 &i.ApprovedByUserID,
108 &i.StartedAt,
109 &i.CompletedAt,
110 &i.Version,
111 &i.CreatedAt,
112 &i.UpdatedAt,
113 &i.TriggerEventID,
114 )
115 return i, err
116 }
117
118 const getWorkflowRunApproval = `-- name: GetWorkflowRunApproval :one
119 SELECT run_id, requested_reason, requested_at,
120 approved_by_user_id, approved_at,
121 rejected_by_user_id, rejected_at,
122 created_at, updated_at
123 FROM workflow_run_approvals
124 WHERE run_id = $1
125 `
126
127 func (q *Queries) GetWorkflowRunApproval(ctx context.Context, db DBTX, runID int64) (WorkflowRunApproval, error) {
128 row := db.QueryRow(ctx, getWorkflowRunApproval, runID)
129 var i WorkflowRunApproval
130 err := row.Scan(
131 &i.RunID,
132 &i.RequestedReason,
133 &i.RequestedAt,
134 &i.ApprovedByUserID,
135 &i.ApprovedAt,
136 &i.RejectedByUserID,
137 &i.RejectedAt,
138 &i.CreatedAt,
139 &i.UpdatedAt,
140 )
141 return i, err
142 }
143
144 const insertWorkflowRunApproval = `-- name: InsertWorkflowRunApproval :one
145
146 INSERT INTO workflow_run_approvals (run_id, requested_reason)
147 VALUES ($1, $2)
148 ON CONFLICT (run_id) DO UPDATE SET
149 requested_reason = EXCLUDED.requested_reason,
150 updated_at = now()
151 RETURNING run_id, requested_reason, requested_at,
152 approved_by_user_id, approved_at,
153 rejected_by_user_id, rejected_at,
154 created_at, updated_at
155 `
156
157 type InsertWorkflowRunApprovalParams struct {
158 RunID int64
159 RequestedReason string
160 }
161
162 // SPDX-License-Identifier: AGPL-3.0-or-later
163 func (q *Queries) InsertWorkflowRunApproval(ctx context.Context, db DBTX, arg InsertWorkflowRunApprovalParams) (WorkflowRunApproval, error) {
164 row := db.QueryRow(ctx, insertWorkflowRunApproval, arg.RunID, arg.RequestedReason)
165 var i WorkflowRunApproval
166 err := row.Scan(
167 &i.RunID,
168 &i.RequestedReason,
169 &i.RequestedAt,
170 &i.ApprovedByUserID,
171 &i.ApprovedAt,
172 &i.RejectedByUserID,
173 &i.RejectedAt,
174 &i.CreatedAt,
175 &i.UpdatedAt,
176 )
177 return i, err
178 }
179
180 const markWorkflowJobsRejected = `-- name: MarkWorkflowJobsRejected :many
181 UPDATE workflow_jobs
182 SET cancel_requested = true,
183 status = 'cancelled',
184 conclusion = 'action_required',
185 started_at = COALESCE(started_at, now()),
186 completed_at = COALESCE(completed_at, now()),
187 version = version + 1,
188 updated_at = now()
189 WHERE run_id = $1
190 AND status = 'queued'
191 RETURNING id, run_id, job_index, job_key, job_name, runs_on,
192 runner_id, needs_jobs, if_expr, timeout_minutes, permissions,
193 job_env, status, conclusion, cancel_requested,
194 started_at, completed_at, version, created_at, updated_at
195 `
196
197 func (q *Queries) MarkWorkflowJobsRejected(ctx context.Context, db DBTX, runID int64) ([]WorkflowJob, error) {
198 rows, err := db.Query(ctx, markWorkflowJobsRejected, runID)
199 if err != nil {
200 return nil, err
201 }
202 defer rows.Close()
203 items := []WorkflowJob{}
204 for rows.Next() {
205 var i WorkflowJob
206 if err := rows.Scan(
207 &i.ID,
208 &i.RunID,
209 &i.JobIndex,
210 &i.JobKey,
211 &i.JobName,
212 &i.RunsOn,
213 &i.RunnerID,
214 &i.NeedsJobs,
215 &i.IfExpr,
216 &i.TimeoutMinutes,
217 &i.Permissions,
218 &i.JobEnv,
219 &i.Status,
220 &i.Conclusion,
221 &i.CancelRequested,
222 &i.StartedAt,
223 &i.CompletedAt,
224 &i.Version,
225 &i.CreatedAt,
226 &i.UpdatedAt,
227 ); err != nil {
228 return nil, err
229 }
230 items = append(items, i)
231 }
232 if err := rows.Err(); err != nil {
233 return nil, err
234 }
235 return items, nil
236 }
237
238 const markWorkflowRunRejected = `-- name: MarkWorkflowRunRejected :one
239 UPDATE workflow_runs
240 SET status = 'completed',
241 conclusion = 'action_required',
242 started_at = COALESCE(started_at, now()),
243 completed_at = COALESCE(completed_at, now()),
244 version = version + 1,
245 updated_at = now()
246 WHERE id = $1
247 AND need_approval = true
248 AND approved_by_user_id IS NULL
249 AND status = 'queued'
250 RETURNING id, repo_id, run_index, workflow_file, workflow_name,
251 head_sha, head_ref, event, event_payload,
252 actor_user_id, parent_run_id, concurrency_group,
253 status, conclusion, pinned, need_approval, approved_by_user_id,
254 started_at, completed_at, version, created_at, updated_at, trigger_event_id
255 `
256
257 func (q *Queries) MarkWorkflowRunRejected(ctx context.Context, db DBTX, id int64) (WorkflowRun, error) {
258 row := db.QueryRow(ctx, markWorkflowRunRejected, id)
259 var i WorkflowRun
260 err := row.Scan(
261 &i.ID,
262 &i.RepoID,
263 &i.RunIndex,
264 &i.WorkflowFile,
265 &i.WorkflowName,
266 &i.HeadSha,
267 &i.HeadRef,
268 &i.Event,
269 &i.EventPayload,
270 &i.ActorUserID,
271 &i.ParentRunID,
272 &i.ConcurrencyGroup,
273 &i.Status,
274 &i.Conclusion,
275 &i.Pinned,
276 &i.NeedApproval,
277 &i.ApprovedByUserID,
278 &i.StartedAt,
279 &i.CompletedAt,
280 &i.Version,
281 &i.CreatedAt,
282 &i.UpdatedAt,
283 &i.TriggerEventID,
284 )
285 return i, err
286 }
287
288 const rejectWorkflowRunApproval = `-- name: RejectWorkflowRunApproval :one
289 UPDATE workflow_run_approvals
290 SET rejected_by_user_id = $2,
291 rejected_at = now(),
292 updated_at = now()
293 WHERE run_id = $1
294 AND approved_at IS NULL
295 AND rejected_at IS NULL
296 RETURNING run_id, requested_reason, requested_at,
297 approved_by_user_id, approved_at,
298 rejected_by_user_id, rejected_at,
299 created_at, updated_at
300 `
301
302 type RejectWorkflowRunApprovalParams struct {
303 RunID int64
304 RejectedByUserID pgtype.Int8
305 }
306
307 func (q *Queries) RejectWorkflowRunApproval(ctx context.Context, db DBTX, arg RejectWorkflowRunApprovalParams) (WorkflowRunApproval, error) {
308 row := db.QueryRow(ctx, rejectWorkflowRunApproval, arg.RunID, arg.RejectedByUserID)
309 var i WorkflowRunApproval
310 err := row.Scan(
311 &i.RunID,
312 &i.RequestedReason,
313 &i.RequestedAt,
314 &i.ApprovedByUserID,
315 &i.ApprovedAt,
316 &i.RejectedByUserID,
317 &i.RejectedAt,
318 &i.CreatedAt,
319 &i.UpdatedAt,
320 )
321 return i, err
322 }
323