1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
//! torii-lib — domain library for the torii (Gitorii) ecosystem.
//!
//! Everything the CLI, the TUI and the IDE share lives here: VCS
//! operations over the object database, platform clients
//! (GitHub / GitLab / Gitea / Sourcehut / Radicle / Bitbucket / Azure),
//! multi-repo workspaces, mirrors, config, auth and versioning helpers.
//!
//! ## API tiers
//!
//! - **Domain API** — the documented surface. Returns plain data
//! (`RepoStatus`, `PullRequest`, `Pipeline`, …) and never exposes
//! `git2` types. This is the contract the IDE builds on, and the
//! boundary where the future `VcsEngine` trait (torii-vcs) plugs in.
//! - **Porcelain helpers** — a handful of `git2`-typed functions
//! (`commit_inner`, `resolve_signature`, `signature_letter`) still
//! consumed by the TUI in the twin `gitorii` crate. Internal contract,
//! slated for migration behind the domain API.
// ── Top-level modules (organised by concern) ─────────────────────────────────
//
// Each subdir owns one slice of the codebase:
// - platforms/ : github/gitlab/gitea/sourcehut/radicle clients
// - vcs/ : libgit2 wrappers around the object database
// - workspace/ : remote, mirror, multi-repo orchestration
// - util/ : config, auth, URL parsing, HTTP/SSH/gpg/radicle helpers
// - cloud/ : gitorii.com cloud (api key, sync)
// - transport/ : libgit2 transport plumbing
// - versioning/: SemVer + conventional commits helpers
// ── Backwards-compatible re-exports ─────────────────────────────────────────
//
// Until 0.7.16 every module sat directly under `src/`. Hundreds of
// `use crate::pr::` / `use crate::core::` / etc. call-sites depend on
// those paths — both inside this library and in the `gitorii` binary
// crate, which mirrors this list with `pub use torii_core::…`. New code
// should prefer the canonical `crate::platforms::pr` etc. paths.
// platforms/
pub use pr;
pub use issue;
pub use pipeline;
pub use package;
pub use release;
pub use runner;
pub use registry as platforms_registry;
// vcs/
pub use core;
pub use core_extensions;
pub use core_tag;
pub use sign;
pub use tag;
pub use snapshot;
pub use patch;
pub use history_reauthor;
pub use commit_scan;
pub use scanner;
// workspace/
pub use mirror;
pub use remote;
// `workspace::workspace` keeps its nested name to avoid colliding with
// the parent module; the call-sites that need `WorkspaceManager`
// already reference the long path.
// util/
pub use auth;
pub use config;
pub use duration;
pub use url;
pub use toriignore;
pub use hooks;
pub use updater;
pub use http;
pub use oauth;
pub use ssh;
pub use graph;
pub use gpg;
pub use radicle;