use gitverse_sdk::{Client, ClientConfig};
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let token = std::env::var("GVT_TOKEN").expect("GVT_TOKEN env var required");
let client = Client::new(ClientConfig {
token,
..Default::default()
})?;
println!("=== GET /user ===");
let user = client.get_authenticated().await?;
let login = user.login.as_deref().unwrap_or("(none)");
println!(" login: {login}");
println!(" id: {:?}", user.id);
println!(" OK\n");
println!("=== GET /users/{{username}} ===");
let public_user = client.get_by_username(login).await?;
println!(" login: {:?}", public_user.login);
println!(" type: {:?}", public_user.r#type);
println!(" OK\n");
println!("=== GET /user/repos ===");
let opts = gitverse_sdk::QueryOptions {
per_page: Some(3),
..Default::default()
};
let repos = client.list_for_authenticated_user(Some(&opts)).await?;
println!(" repos count: {}", repos.len());
for repo in &repos {
println!(" - {} (stars: {})", repo.full_name, repo.stargazers_count);
}
println!(" OK\n");
println!("All smoke tests passed!");
Ok(())
}