8 releases

0.1.8 Jun 14, 2022
0.1.6 Mar 17, 2022
0.1.3 Dec 25, 2021

#952 in Asynchronous

MIT license

23KB
617 lines

Gritea

Gritea is a async gitea API sdk.

Crates.io MIT licensed

Usage example

use anyhow::Context;
use gritea::{client::Gritea, pagination::Pagination, repo::CreateHookOption, Result};
use maplit::hashmap;
use std::env;

#[tokio::main]
async fn main() -> Result<()> {
    let cli =
        Gritea::builder("git.dreamszl.cc")
            .token(env::var("ACCESS_TOKEN").with_context(|| {
                format!("get environment variable ACCESS_TOKEN failed")
            })?)
            .build()?;

    let user = cli.current_user().await?;
    println!("{:#?}", user);

    let repo = cli.get_repo("op", "jarvis").await?;
    println!("{:#?}", repo);

    let _repos = cli.list_repos(&Pagination::default()).await?;
    // println!("{:#?}", _repos);

    let hook = cli
        .create_hook(
            "op",
            "jarvis",
            &CreateHookOption {
                type_: "gitea".to_string(),
                config: hashmap! {
                    "url".to_string() => "http://foo.bar/hook".to_string(),
                    "content_type".to_string() => "json".to_string(),
                    "secret".to_string() => "foo".to_string(),
                },
                events: vec!["push".to_string()],
                branch_filter: "*".to_string(),
                active: true,
            },
        )
        .await?;
    println!("{:#?}", hook);

    Ok(())
}

License

This project is licensed under the MIT license.

Dependencies

~8–22MB
~322K SLoC