Skip to content

Commit bed6858

Browse files
committed
Move the load_workqueue function to pr_tracking
1 parent 63eaec4 commit bed6858

File tree

3 files changed

+18
-22
lines changed

3 files changed

+18
-22
lines changed

src/handlers/pr_tracking.rs

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,22 @@ pub(super) async fn handle_input<'a>(
130130
Ok(())
131131
}
132132

133+
/// Loads the workqueue (mapping of open PRs assigned to users) from GitHub
134+
pub async fn load_workqueue(client: &Octocrab) -> anyhow::Result<ReviewerWorkqueue> {
135+
tracing::debug!("Loading workqueue for rust-lang/rust");
136+
let prs = retrieve_pull_request_assignments("rust-lang", "rust", &client).await?;
137+
138+
// Aggregate PRs by user
139+
let aggregated: HashMap<UserId, HashSet<PullRequestNumber>> =
140+
prs.into_iter().fold(HashMap::new(), |mut acc, (user, pr)| {
141+
let prs = acc.entry(user.id).or_default();
142+
prs.insert(pr);
143+
acc
144+
});
145+
tracing::debug!("PR assignments\n{aggregated:?}");
146+
Ok(ReviewerWorkqueue::new(aggregated))
147+
}
148+
133149
/// Retrieve tuples of (user, PR number) where
134150
/// the given user is assigned as a reviewer for that PR.
135151
/// Only non-draft, non-rollup and open PRs are taken into account.
Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
1-
use crate::github::PullRequestNumber;
2-
use crate::github::UserId;
3-
use crate::handlers::pr_tracking::{retrieve_pull_request_assignments, ReviewerWorkqueue};
1+
use crate::handlers::pr_tracking::load_workqueue;
42
use crate::jobs::Job;
53
use async_trait::async_trait;
6-
use octocrab::Octocrab;
7-
use std::collections::{HashMap, HashSet};
84

95
pub struct PullRequestAssignmentUpdate;
106

@@ -23,19 +19,3 @@ impl Job for PullRequestAssignmentUpdate {
2319
Ok(())
2420
}
2521
}
26-
27-
/// Loads the workqueue (mapping of open PRs assigned to users) from GitHub
28-
pub async fn load_workqueue(client: &Octocrab) -> anyhow::Result<ReviewerWorkqueue> {
29-
tracing::debug!("Loading workqueue for rust-lang/rust");
30-
let prs = retrieve_pull_request_assignments("rust-lang", "rust", &client).await?;
31-
32-
// Aggregate PRs by user
33-
let aggregated: HashMap<UserId, HashSet<PullRequestNumber>> =
34-
prs.into_iter().fold(HashMap::new(), |mut acc, (user, pr)| {
35-
let prs = acc.entry(user.id).or_default();
36-
prs.insert(pr);
37-
acc
38-
});
39-
tracing::debug!("PR assignments\n{aggregated:?}");
40-
Ok(ReviewerWorkqueue::new(aggregated))
41-
}

src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ use tokio::{task, time};
1212
use tower::{Service, ServiceExt};
1313
use tracing as log;
1414
use tracing::Instrument;
15+
use triagebot::handlers::pr_tracking::load_workqueue;
1516
use triagebot::handlers::pr_tracking::ReviewerWorkqueue;
16-
use triagebot::handlers::pull_requests_assignment_update::load_workqueue;
1717
use triagebot::jobs::{
1818
default_jobs, JOB_PROCESSING_CADENCE_IN_SECS, JOB_SCHEDULING_CADENCE_IN_SECS,
1919
};

0 commit comments

Comments
 (0)