summaryrefslogtreecommitdiff
path: root/src/types.rs
diff options
context:
space:
mode:
authorpennae <github@quasiparticle.net>2022-10-05 16:25:31 +0200
committerpennae <github@quasiparticle.net>2022-10-07 19:51:10 +0200
commit3de7d62a33d772cb5ae4fbc19fb91b632b2be667 (patch)
treead6cceab9af517c15cd5d0c75ad5e2f968a1432d /src/types.rs
parent50068653801991e67487f1b555b83f9232a3bd48 (diff)
downloadlabel-tracker-3de7d62a33d772cb5ae4fbc19fb91b632b2be667.tar.gz
label-tracker-3de7d62a33d772cb5ae4fbc19fb91b632b2be667.tar.xz
label-tracker-3de7d62a33d772cb5ae4fbc19fb91b632b2be667.zip
add tracking for PRs landing in channels
Diffstat (limited to 'src/types.rs')
-rw-r--r--src/types.rs19
1 files changed, 17 insertions, 2 deletions
diff --git a/src/types.rs b/src/types.rs
index a960647..a18331c 100644
--- a/src/types.rs
+++ b/src/types.rs
@@ -1,6 +1,6 @@
#![allow(non_camel_case_types)]
-use std::collections::BTreeMap;
+use std::collections::{BTreeMap, BTreeSet};
use serde::{Deserialize, Serialize};
@@ -59,9 +59,23 @@ pub struct PullRequest {
pub last_update: DateTime,
pub url: String,
pub base_ref: String,
+ pub merge_commit: Option<String>,
+
+ // non-github fields
+ #[serde(default)]
+ pub landed_in: BTreeSet<String>,
}
-#[derive(Debug, PartialEq, Eq, Clone, Copy, Serialize, Deserialize)]
+impl PullRequest {
+ pub fn update(&mut self, from: PullRequest) {
+ *self = PullRequest {
+ landed_in: std::mem::replace(&mut self.landed_in, BTreeSet::new()),
+ ..from
+ }
+ }
+}
+
+#[derive(Debug, PartialOrd, Ord, PartialEq, Eq, Clone, Serialize, Deserialize)]
#[serde(deny_unknown_fields)]
pub enum PullAction {
New,
@@ -69,4 +83,5 @@ pub enum PullAction {
NewClosed,
Merged,
NewMerged,
+ Landed(Vec<String>)
}