Skip to main content

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};