aptu-core 0.2.8

Core library for Aptu - OSS issue triage with AI assistance
Documentation

aptu-core

Core library for Aptu - AI-Powered Triage Utility.

docs.rs CLI crate REUSE

Features

  • AI Triage - Analyze issues with summaries, labels, and contributor guidance
  • PR Review - AI-powered pull request analysis and feedback
  • Multiple Providers - OpenRouter, Groq, Google Gemini, and Cerebras
  • GitHub Integration - Auth, issues, PRs, and GraphQL queries
  • Resilient - Exponential backoff, circuit breaker, rate limit handling

Installation

Add to your Cargo.toml:

[dependencies]
aptu-core = "0.2"

Optional Features

Feature Description
keyring Secure token storage using system keyring (macOS Keychain, Linux Secret Service, Windows Credential Manager)

To enable optional features:

[dependencies]
aptu-core = { version = "0.2", features = ["keyring"] }

Example

use aptu_core::{load_config, AiClient, IssueDetails, ai::AiProvider};
use anyhow::Result;

#[tokio::main]
async fn main() -> Result<()> {
    // Load configuration
    let config = load_config()?;

    // Create AI client
    let client = AiClient::new(&config.ai.provider, &config.ai)?;

    // Create issue details
    let issue = IssueDetails::builder()
        .owner("block")
        .repo("goose")
        .number(123)
        .title("Example issue")
        .body("Issue description...")
        .url("https://github.com/block/goose/issues/123")
        .build();

    // Analyze with AI
    let response = client.analyze_issue(&issue).await?;
    println!("Summary: {}", response.triage.summary);

    Ok(())
}

Modules

  • ai - AI integration and triage analysis
  • config - Configuration loading and XDG paths
  • github - GitHub API and authentication
  • history - Contribution history tracking
  • repos - Curated repository list

Support

For questions and support, visit clouatre.ca.

License

Apache-2.0. See LICENSE.