Parse issue list
This commit is contained in:
parent
1db4778dc4
commit
b3e0270e38
5 changed files with 56 additions and 29 deletions
|
|
@ -4,19 +4,31 @@ use anyhow::Context as _;
|
|||
|
||||
pub async fn collect_tasks(ctx: &crate::Context) -> anyhow::Result<Vec<task::Task>> {
|
||||
let issues = list_all_issues(ctx).await?;
|
||||
let issues: Vec<_> = issues
|
||||
.iter()
|
||||
.map(|i| {
|
||||
format!(
|
||||
"#{} — {}",
|
||||
i.number.unwrap_or(-1),
|
||||
i.title.as_deref().unwrap_or("")
|
||||
)
|
||||
})
|
||||
.collect();
|
||||
dbg!(issues);
|
||||
|
||||
todo!()
|
||||
let tasks = issues
|
||||
.into_iter()
|
||||
.map(|issue| {
|
||||
task_from_issue(&issue).with_context(|| {
|
||||
format!(
|
||||
"Error while converting issue #{} to task",
|
||||
issue.number.unwrap_or(-1)
|
||||
)
|
||||
})
|
||||
})
|
||||
.collect::<anyhow::Result<Vec<_>>>()?;
|
||||
|
||||
Ok(tasks)
|
||||
}
|
||||
|
||||
fn task_from_issue(issue: &forgejo_api::structs::Issue) -> anyhow::Result<task::Task> {
|
||||
Ok(task::Task {
|
||||
issue_number: issue
|
||||
.number
|
||||
.context("Missing issue number")?
|
||||
.try_into()
|
||||
.context("Failed converting issue number")?,
|
||||
title: issue.title.as_ref().context("Missing issue title")?.clone(),
|
||||
})
|
||||
}
|
||||
|
||||
async fn list_all_issues(ctx: &crate::Context) -> anyhow::Result<Vec<forgejo_api::structs::Issue>> {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue