git_next_core/config/webhook/
push.rs1use crate::config::{BranchName, RepoBranches};
3use derive_more::Constructor;
4
5#[derive(Clone, Debug, Constructor, PartialEq, Eq, derive_with::With)]
6pub struct Push {
7 branch: BranchName,
8 sha: String,
9 message: String,
10}
11impl Push {
12 pub fn branch(&self, repo_branches: &RepoBranches) -> Option<Branch> {
13 if self.branch == repo_branches.main() {
14 return Some(Branch::Main);
15 }
16 if self.branch == repo_branches.next() {
17 return Some(Branch::Next);
18 }
19 if self.branch == repo_branches.dev() {
20 return Some(Branch::Dev);
21 }
22 tracing::warn!(branch = %self.branch, "Unexpected branch");
23 None
24 }
25
26 #[must_use]
27 pub fn sha(&self) -> &str {
28 &self.sha
29 }
30
31 #[must_use]
32 pub fn message(&self) -> &str {
33 &self.message
34 }
35}
36
37#[derive(Clone, Debug, PartialEq, Eq)]
38pub enum Branch {
39 Main,
40 Next,
41 Dev,
42}