github-rust 0.1.0

Rust library for GitHub API integration with GraphQL/REST support
Documentation
//! Search for trending repositories example.
//!
//! Run with: `cargo run --example search_repositories`

use github_rust::{GitHubService, Result};

#[tokio::main]
async fn main() -> Result<()> {
    let service = GitHubService::new()?;

    println!("Searching for trending Rust repositories...\n");

    // Search for Rust repos created in the last 30 days with at least 50 stars
    let repos = service
        .search_repositories(
            30,           // days back
            10,           // limit
            Some("rust"), // language filter
            50,           // minimum stars
        )
        .await?;

    println!("Found {} repositories:\n", repos.len());

    for (i, repo) in repos.iter().enumerate() {
        println!(
            "{}. {} ({} stars)",
            i + 1,
            repo.name_with_owner,
            repo.stargazer_count
        );

        if let Some(desc) = &repo.description {
            // Truncate long descriptions (UTF-8 safe)
            let desc: String = desc.chars().take(77).collect();
            if desc.len() < repo.description.as_ref().map_or(0, |d| d.chars().count()) {
                println!("   {}...", desc);
            } else {
                println!("   {}", desc);
            }
        }

        if let Some(lang) = repo.language() {
            println!("   Language: {}", lang);
        }

        let topics = repo.topics();
        if !topics.is_empty() {
            println!(
                "   Topics: {}",
                topics
                    .iter()
                    .take(5)
                    .cloned()
                    .collect::<Vec<_>>()
                    .join(", ")
            );
        }

        println!("   URL: {}", repo.url);
        println!();
    }

    Ok(())
}