Add issue label and milestone filters
This commit is contained in:
@@ -61,18 +61,21 @@ pub async fn load_issues(
|
||||
owner: &str,
|
||||
repository: &str,
|
||||
status: &str,
|
||||
labels: &[String],
|
||||
milestone: &str,
|
||||
) -> Result<Vec<models::Issue>, String> {
|
||||
let client =
|
||||
Client::new(&server.url, Some(&server.token)).map_err(|error| error.to_string())?;
|
||||
let labels = (!labels.is_empty()).then(|| labels.join(","));
|
||||
apis::issue_api::issue_list_issues(
|
||||
&client.configuration(),
|
||||
owner,
|
||||
repository,
|
||||
Some(status),
|
||||
None,
|
||||
labels.as_deref(),
|
||||
None,
|
||||
Some("issues"),
|
||||
None,
|
||||
(!milestone.is_empty()).then_some(milestone),
|
||||
None,
|
||||
None,
|
||||
None,
|
||||
@@ -85,6 +88,34 @@ pub async fn load_issues(
|
||||
.map_err(|error| error.to_string())
|
||||
}
|
||||
|
||||
pub async fn load_labels(
|
||||
server: &Server,
|
||||
owner: &str,
|
||||
repository: &str,
|
||||
) -> Result<Vec<models::Label>, String> {
|
||||
let client =
|
||||
Client::new(&server.url, Some(&server.token)).map_err(|error| error.to_string())?;
|
||||
let configuration = client.configuration();
|
||||
let mut labels = Vec::new();
|
||||
for page in 1.. {
|
||||
let batch = apis::issue_api::issue_list_labels(
|
||||
&configuration,
|
||||
owner,
|
||||
repository,
|
||||
Some(page),
|
||||
Some(100),
|
||||
)
|
||||
.await
|
||||
.map_err(|error| error.to_string())?;
|
||||
let done = batch.len() < 100;
|
||||
labels.extend(batch);
|
||||
if done {
|
||||
break;
|
||||
}
|
||||
}
|
||||
Ok(labels)
|
||||
}
|
||||
|
||||
pub async fn load_milestones(
|
||||
server: &Server,
|
||||
owner: &str,
|
||||
|
||||
Reference in New Issue
Block a user