summaryrefslogtreecommitdiff
path: root/makima/src/db/repository.rs
diff options
context:
space:
mode:
Diffstat (limited to 'makima/src/db/repository.rs')
-rw-r--r--makima/src/db/repository.rs24
1 files changed, 23 insertions, 1 deletions
diff --git a/makima/src/db/repository.rs b/makima/src/db/repository.rs
index ed4a1fa..71ad524 100644
--- a/makima/src/db/repository.rs
+++ b/makima/src/db/repository.rs
@@ -5198,6 +5198,7 @@ pub struct DirectiveCompletionCheck {
pub completion_task_id: Uuid,
pub task_status: String,
pub pr_url: Option<String>,
+ pub task_name: String,
}
/// Get idle directives that need a completion task spawned.
@@ -5212,6 +5213,7 @@ pub async fn get_idle_directives_needing_completion(
FROM directives d
WHERE d.status = 'idle'
AND d.completion_task_id IS NULL
+ AND d.pr_branch IS NULL
AND d.repository_url IS NOT NULL
AND EXISTS (
SELECT 1 FROM directive_steps ds
@@ -5225,13 +5227,33 @@ pub async fn get_idle_directives_needing_completion(
.await
}
+/// Get directives that attempted completion (pr_branch set) but have no PR URL yet
+/// and no active completion task. These need a verification task spawned.
+pub async fn get_directives_needing_verification(
+ pool: &PgPool,
+) -> Result<Vec<Directive>, sqlx::Error> {
+ sqlx::query_as::<_, Directive>(
+ r#"
+ SELECT d.*
+ FROM directives d
+ WHERE d.status = 'idle'
+ AND d.pr_branch IS NOT NULL
+ AND d.pr_url IS NULL
+ AND d.completion_task_id IS NULL
+ AND d.repository_url IS NOT NULL
+ "#,
+ )
+ .fetch_all(pool)
+ .await
+}
+
/// Get directives with active completion tasks, joined with task status.
pub async fn get_completion_tasks_to_check(
pool: &PgPool,
) -> Result<Vec<DirectiveCompletionCheck>, sqlx::Error> {
sqlx::query_as::<_, DirectiveCompletionCheck>(
r#"
- SELECT d.id as directive_id, d.owner_id, d.completion_task_id, t.status as task_status, d.pr_url
+ SELECT d.id as directive_id, d.owner_id, d.completion_task_id, t.status as task_status, d.pr_url, t.name as task_name
FROM directives d
JOIN tasks t ON t.id = d.completion_task_id
WHERE d.completion_task_id IS NOT NULL