Add pull request milestone features
This commit is contained in:
@@ -55,6 +55,8 @@ pub struct Preferences {
|
||||
#[serde(default = "open_status")]
|
||||
pub pull_status: String,
|
||||
#[serde(default)]
|
||||
pub pull_filters: BTreeMap<String, PullFilter>,
|
||||
#[serde(default)]
|
||||
pub appearance: AppearanceMode,
|
||||
}
|
||||
|
||||
@@ -67,6 +69,7 @@ impl Default for Preferences {
|
||||
issue_status: open_status(),
|
||||
issue_filters: BTreeMap::new(),
|
||||
pull_status: open_status(),
|
||||
pull_filters: BTreeMap::new(),
|
||||
appearance: AppearanceMode::default(),
|
||||
}
|
||||
}
|
||||
@@ -86,6 +89,18 @@ impl IssueFilter {
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone, Default, Deserialize, Eq, PartialEq, Serialize)]
|
||||
pub struct PullFilter {
|
||||
#[serde(default)]
|
||||
pub milestone: String,
|
||||
}
|
||||
|
||||
impl PullFilter {
|
||||
pub fn is_active(&self, status: &str) -> bool {
|
||||
status != "open" || self != &Self::default()
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct RepositoryData {
|
||||
pub owner: String,
|
||||
@@ -127,6 +142,7 @@ pub struct IssueDetails {
|
||||
pub struct MilestoneDetails {
|
||||
pub milestone: models::Milestone,
|
||||
pub issues: Vec<models::Issue>,
|
||||
pub pulls: Vec<models::Issue>,
|
||||
}
|
||||
|
||||
pub struct PullDetails {
|
||||
@@ -154,5 +170,13 @@ mod tests {
|
||||
}
|
||||
.is_active("open")
|
||||
);
|
||||
assert!(!PullFilter::default().is_active("open"));
|
||||
assert!(PullFilter::default().is_active("closed"));
|
||||
assert!(
|
||||
PullFilter {
|
||||
milestone: "v1".into(),
|
||||
}
|
||||
.is_active("open")
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user