Skip to main content

aptu_core/
lib.rs

1// SPDX-License-Identifier: Apache-2.0
2
3#![warn(missing_docs)]
4#![doc = include_str!("../README.md")]
5
6// ============================================================================
7// Authentication
8// ============================================================================
9
10pub use auth::TokenProvider;
11
12// ============================================================================
13// Error Handling
14// ============================================================================
15
16pub use error::AptuError;
17
18/// Convenience Result type for Aptu operations.
19///
20/// This is equivalent to `std::result::Result<T, AptuError>`.
21pub type Result<T> = std::result::Result<T, AptuError>;
22
23// ============================================================================
24// Configuration
25// ============================================================================
26
27pub use config::{
28    AiConfig, AppConfig, CacheConfig, GitHubConfig, TaskType, UiConfig, UserConfig, config_dir,
29    config_file_path, data_dir, load_config, prompts_dir,
30};
31
32// ============================================================================
33// AI Triage
34// ============================================================================
35
36pub use ai::types::{
37    IssueComment, IssueDetails, PrDetails, PrFile, PrReviewResponse, ReviewEvent, TriageResponse,
38};
39pub use ai::{AiClient, AiModel, ModelProvider, ProviderConfig, all_providers, get_provider};
40
41// ============================================================================
42// GitHub Integration
43// ============================================================================
44
45pub use github::auth::TokenSource;
46pub use github::graphql::IssueNode;
47pub use github::ratelimit::check_rate_limit;
48pub use octocrab::params::State;
49
50// ============================================================================
51// AI Integration
52// ============================================================================
53
54pub use ai::types::CreditsStatus;
55
56// ============================================================================
57// History Tracking
58// ============================================================================
59
60pub use history::{AiStats, Contribution, ContributionStatus, HistoryData};
61
62// ============================================================================
63// Repository Discovery
64// ============================================================================
65
66pub use repos::discovery::{DiscoveredRepo, DiscoveryFilter, search_repositories};
67pub use repos::{CuratedRepo, RepoFilter};
68
69// ============================================================================
70// Triage Detection
71// ============================================================================
72
73pub use triage::{
74    APTU_SIGNATURE, TriageStatus, check_already_triaged, render_pr_review_comment_body,
75    render_pr_review_markdown, render_triage_markdown,
76};
77
78// ============================================================================
79// Bulk Processing
80// ============================================================================
81
82pub use bulk::{BulkOutcome, BulkResult, process_bulk};
83
84// ============================================================================
85// Utilities
86// ============================================================================
87
88pub use utils::{
89    format_relative_time, infer_repo_from_git, parse_and_format_relative_time, truncate,
90};
91
92// ============================================================================
93// Platform-Agnostic Facade
94// ============================================================================
95
96pub use facade::{
97    add_custom_repo, analyze_issue, analyze_pr, apply_triage_labels, create_pr, discover_repos,
98    fetch_issue_for_triage, fetch_issues, fetch_pr_for_review, format_issue, label_pr,
99    list_curated_repos, list_models, list_repos, post_issue, post_pr_review, post_triage_comment,
100    remove_custom_repo, revert_issue, revert_pr, validate_model,
101};
102pub use github::issues::ApplyResult;
103pub use github::pulls::PrCreateResult;
104
105// ============================================================================
106// Security Scanning
107// ============================================================================
108
109pub use security::{
110    Confidence, Finding, FindingCache, PatternEngine, SarifReport, SecurityConfig, SecurityScanner,
111    Severity, needs_security_scan,
112};
113
114// ============================================================================
115// Modules
116// ============================================================================
117
118pub mod ai;
119#[cfg(feature = "ast-context")]
120pub mod ast_context;
121pub mod auth;
122pub mod bulk;
123pub mod cache;
124pub mod config;
125pub mod error;
126pub mod facade;
127/// Git utilities: patch application, branch management, and version gating.
128pub mod git;
129pub mod github;
130pub mod history;
131pub mod metrics;
132pub mod repos;
133pub mod retry;
134pub mod sanitize;
135pub mod security;
136pub mod triage;
137pub mod utils;
138
139pub use git::patch::{PatchError, PatchStep, apply_patch_and_push};