ticgit_lib/lib.rs
1//! # ticgit-lib
2//!
3//! Ticket-tracking on top of [git-meta](https://crates.io/crates/git-meta-lib).
4//!
5//! Tickets live as project-target metadata under the `ticgit:` namespace:
6//!
7//! ```text
8//! ticgit:tickets:<uuid>:title # string
9//! ticgit:tickets:<uuid>:description # string (optional)
10//! ticgit:tickets:<uuid>:status # string ("open" | "closed")
11//! ticgit:tickets:<uuid>:state # string ("new" | "blocked" | ...)
12//! ticgit:tickets:<uuid>:assigned # string (optional)
13//! ticgit:tickets:<uuid>:points # string (optional integer)
14//! ticgit:tickets:<uuid>:milestone # string (optional)
15//! ticgit:tickets:<uuid>:tags # set
16//! ticgit:tickets:<uuid>:meta:<key> # string
17//! ticgit:tickets:<uuid>:comments # list of JSON-encoded {author, body}
18//! ticgit:tickets:<uuid>:created-at # RFC3339 string
19//! ticgit:tickets:<uuid>:created-by # string (email)
20//! ticgit:writeups:<uuid>:title # string
21//! ticgit:writeups:<uuid>:status # string ("open" | "closed")
22//! ticgit:writeups:<uuid>:tags # set
23//! ticgit:writeups:<uuid>:authors # set of emails
24//! ticgit:writeups:<uuid>:versions # list of markdown documents
25//! ticgit:writeups:<uuid>:tickets # set of linked ticket UUIDs
26//! ticgit:views:<name> # set of UUIDs (saved selection)
27//! ticgit:owners # set of emails
28//! ticgit:schema-version # string ("1")
29//! ```
30//!
31//! See the top-level `README.md` and `docs/schema/v1.json` for higher-level
32//! docs and the stable JSON machine-output schema.
33
34pub mod error;
35pub mod keys;
36pub mod query;
37pub mod store;
38pub mod ticket;
39pub mod writeup;
40
41#[cfg(any(test, feature = "test-support"))]
42pub mod test_support;
43
44pub use error::{Error, Result};
45pub use query::{Filter, SearchFilter, SearchScope, SortKey, SortOrder};
46pub use store::TicketStore;
47pub use ticket::{
48 validate_code_uri, Comment, NewTicketOpts, Ticket, TicketLifecycle, TicketState, TicketStatus,
49};
50pub use writeup::{NewWriteupOpts, Writeup, WriteupStatus, WriteupVersion};
51
52/// Re-exported for callers who want to talk to git-meta directly.
53pub use git_meta_lib::{MetaValue, Session, Target};