aptu-core 0.2.12

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 OpenSSF Best Practices

Features

  • AI Triage - Analyze issues with summaries, labels, and contributor guidance
  • PR Review - AI-powered pull request analysis and feedback
  • Release Notes - AI-generated release notes from PRs between tags
  • Multiple Providers - Gemini (default), Cerebras, Groq, OpenRouter, Z.AI, and ZenMux
  • 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".to_string())
        .repo("goose".to_string())
        .number(123)
        .title("Example issue".to_string())
        .body("Issue description...".to_string())
        .url("https://github.com/block/goose/issues/123".to_string())
        .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.