Expand description
§Aptu Core
Core library for the Aptu CLI - AI-powered OSS issue triage.
This crate provides reusable components for:
- GitHub API integration (authentication, issues, GraphQL)
- AI-assisted issue triage via
OpenRouter - Configuration management
- Contribution history tracking
- Curated repository discovery
§Quick Start
use aptu_core::{load_config, AiClient, IssueDetails, ai::AiProvider};
use anyhow::Result;
// Load configuration
let config = load_config()?;
// Create AI client (reuse for multiple requests)
let client = AiClient::new(&config.ai.provider, &config.ai)?;
// Create issue details
let issue = IssueDetails::builder()
.owner("block".to_string())
.repo("goose".to_string())
.number(123)
.title("Example issue".to_string())
.body("Issue description...".to_string())
.labels(vec![])
.comments(vec![])
.url("https://github.com/block/goose/issues/123".to_string())
.build();
// Analyze with AI
let ai_response = client.analyze_issue(&issue).await?;
println!("Summary: {}", ai_response.triage.summary);§Modules
Re-exports§
pub use auth::TokenProvider;pub use error::AptuError;pub use config::AiConfig;pub use config::AppConfig;pub use config::CacheConfig;pub use config::GitHubConfig;pub use config::UiConfig;pub use config::UserConfig;pub use config::config_dir;pub use config::config_file_path;pub use config::data_dir;pub use config::load_config;pub use cache::CacheEntry;pub use ai::types::IssueComment;pub use ai::types::IssueDetails;pub use ai::types::PrDetails;pub use ai::types::PrFile;pub use ai::types::PrReviewResponse;pub use ai::types::ReviewEvent;pub use ai::types::TriageResponse;pub use ai::AiClient;pub use ai::AiModel;pub use ai::ModelInfo;pub use ai::ModelProvider;pub use ai::ProviderConfig;pub use ai::all_providers;pub use ai::get_provider;pub use github::auth::TokenSource;pub use github::graphql::IssueNode;pub use github::ratelimit::RateLimitStatus;pub use github::ratelimit::check_rate_limit;pub use ai::types::CreditsStatus;pub use history::Contribution;pub use history::ContributionStatus;pub use history::HistoryData;pub use repos::CuratedRepo;pub use repos::RepoFilter;pub use triage::APTU_SIGNATURE;pub use triage::TriageStatus;pub use triage::check_already_triaged;pub use retry::is_retryable_anyhow;pub use retry::is_retryable_http;pub use retry::retry_backoff;pub use utils::format_relative_time;pub use utils::parse_and_format_relative_time;pub use utils::truncate;pub use utils::truncate_with_suffix;pub use facade::add_custom_repo;pub use facade::analyze_issue;pub use facade::fetch_issues;pub use facade::label_pr;pub use facade::list_curated_repos;pub use facade::list_repos;pub use facade::post_pr_review;pub use facade::remove_custom_repo;pub use facade::review_pr;
Modules§
- ai
- AI integration module.
- auth
- Token provider abstraction for multi-platform credential resolution.
- cache
- TTL-based file caching for GitHub API responses.
- config
- Configuration management for the Aptu CLI.
- error
- Error types for the Aptu CLI.
- facade
- Platform-agnostic facade functions for FFI and CLI integration.
- github
- GitHub integration module.
- history
- Local contribution history tracking.
- repos
- Curated and custom repository management for Aptu.
- retry
- Retry logic with exponential backoff for transient failures.
- triage
- Triage status detection for GitHub issues.
- utils
- Text utility functions for Aptu.
Enums§
- State
- The status of a issue or pull request.
Type Aliases§
- Result
- Convenience Result type for Aptu operations.