#![allow(dead_code)]
use serde::Deserialize;
#[derive(Debug, Clone, Deserialize)]
pub struct User {
pub login: String,
#[serde(default)]
pub avatar_url: Option<String>,
#[serde(default)]
pub html_url: Option<String>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct Notification {
pub id: String,
pub reason: String,
#[serde(default)]
pub updated_at: Option<String>,
pub subject: NotificationSubject,
pub repository: NotificationRepo,
}
#[derive(Debug, Clone, Deserialize)]
pub struct NotificationSubject {
#[serde(default)]
pub title: String,
#[serde(default)]
pub url: Option<String>,
#[serde(rename = "type", default)]
pub kind: String,
}
#[derive(Debug, Clone, Deserialize)]
pub struct NotificationRepo {
pub name: String,
pub owner: User,
#[serde(default)]
pub html_url: Option<String>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct PullRequest {
pub number: u64,
#[serde(default)]
pub title: String,
#[serde(default)]
pub html_url: String,
#[serde(default)]
pub state: String,
#[serde(default)]
pub draft: bool,
#[serde(default)]
pub merged: bool,
#[serde(default)]
pub merged_at: Option<String>,
#[serde(default)]
pub closed_at: Option<String>,
#[serde(default)]
pub updated_at: Option<String>,
#[serde(default)]
pub merge_commit_sha: Option<String>,
pub user: Option<User>,
#[serde(default)]
pub merged_by: Option<User>,
#[serde(default)]
pub requested_reviewers: Vec<User>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct Review {
pub id: u64,
pub user: Option<User>,
#[serde(default)]
pub state: String,
#[serde(default)]
pub submitted_at: Option<String>,
#[serde(default)]
pub html_url: Option<String>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct ReviewComment {
pub id: u64,
pub user: Option<User>,
#[serde(default)]
pub body: String,
#[serde(default)]
pub in_reply_to_id: Option<u64>,
#[serde(default)]
pub html_url: Option<String>,
#[serde(default)]
pub created_at: Option<String>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct IssueComment {
pub id: u64,
pub user: Option<User>,
#[serde(default)]
pub body: String,
#[serde(default)]
pub html_url: Option<String>,
#[serde(default)]
pub created_at: Option<String>,
}
#[derive(Debug, Clone)]
pub struct PrData {
pub pull_request: PullRequest,
pub reviews: Vec<Review>,
pub review_comments: Vec<ReviewComment>,
pub issue_comments: Vec<IssueComment>,
}