|
@@ -644,7 +644,10 @@ impl Repository {
|
|
..
|
|
..
|
|
} = query;
|
|
} = query;
|
|
|
|
|
|
- let use_issues = exclude_labels.is_empty() || filters.iter().any(|&(key, _)| key == "no");
|
|
|
|
|
|
+ let use_issues = exclude_labels.is_empty()
|
|
|
|
+ && filters
|
|
|
|
+ .iter()
|
|
|
|
+ .all(|&(key, _)| key != "no" && key != "closed-days-ago");
|
|
// negating filters can only be handled by the search api
|
|
// negating filters can only be handled by the search api
|
|
let url = if use_issues {
|
|
let url = if use_issues {
|
|
self.build_issues_url(filters, include_labels)
|
|
self.build_issues_url(filters, include_labels)
|
|
@@ -704,7 +707,15 @@ impl Repository {
|
|
) -> String {
|
|
) -> String {
|
|
let filters = filters
|
|
let filters = filters
|
|
.iter()
|
|
.iter()
|
|
- .map(|(key, val)| format!("{}:{}", key, val))
|
|
|
|
|
|
+ .map(|(key, val)| {
|
|
|
|
+ if *key == "closed-days-ago" {
|
|
|
|
+ let last_week =
|
|
|
|
+ Utc::now() - chrono::Duration::days(val.parse::<i64>().unwrap());
|
|
|
|
+ format!("closed:>={}", last_week.format("%Y-%m-%d"))
|
|
|
|
+ } else {
|
|
|
|
+ format!("{}:{}", key, val)
|
|
|
|
+ }
|
|
|
|
+ })
|
|
.chain(
|
|
.chain(
|
|
include_labels
|
|
include_labels
|
|
.iter()
|
|
.iter()
|