use chrono::DateTime;
use rusqlite::Connection;
use serde::{Deserialize, Serialize};
use sha2::{Digest, Sha256};
use std::collections::{BTreeSet, HashMap};
use std::fmt::Write as _;

use super::truncation::{
    MAX_DISCUSSION_BYTES, MAX_DOCUMENT_BYTES_HARD, NoteContent, pre_truncate_description,
    truncate_discussion, truncate_hard_cap,
};
use crate::core::error::Result;
use crate::core::time::ms_to_iso;
use tracing::warn;

include!("common.rs");
include!("issues.rs");
include!("mrs.rs");
include!("discussions.rs");
include!("notes.rs");

#[cfg(test)]
#[path = "extractor_tests.rs"]
mod tests;
