#github #github-webhook #webhook #github-api #app #api #rocket-web

octoapp

Octoapp 是一个用于构建 GitHub Apps 的 Rust 库

4 个版本

0.2.2 2024 年 8 月 9 日
0.2.1 2024 年 8 月 7 日
0.2.0 2024 年 8 月 7 日
0.1.0 2024 年 8 月 7 日

#582 in 网页编程

Download history 212/week @ 2024-08-02 90/week @ 2024-08-09

每月 302 次下载

MIT 许可证

41KB
614

Octoapp

GitHub Crates.io Version Crates.io Downloads (recent) GitHub Stars GitHub Issues Licence

概述

Octoapp 是一个用于构建 GitHub Apps 的 Rust 库。它提供了一个简单的接口来创建 GitHub Apps 和 处理 webhook 事件

✨ 特性

  • 专注于简单性和易用性。
  • 内置支持处理 GitHub webhook 事件。
  • 使用 octocrab 与 GitHub API 交互。
  • 支持 rocket 网页框架来处理传入的 webhook 事件。
    • 特性: rocket

🚀 快速入门

运行以下命令将 octoapp 添加到您的项目中

cargo add octoapp

🏃 开始

use anyhow::Result;
use octoapp::prelude::*;

#[tokio::main]
async fn main() -> Result<()> {
    // [optional] Load .env file if it exists
    // dotenvy::dotenv().ok();

    // Load the configuration (from environment variables)
    // Or, you can set the configuration manually
    let config = OctoAppConfig::init()
        .app_name("My App")
        .app_id(12345)
        .client_id("client_id")
        .client_secret("client_secret")
        .webhook_secret("webhook_secret")
        .build()
        .expect("Failed to build OctoAppConfig");

    println!("{}", config);

    // Create a new Octocrab instance
    let octocrab = config.octocrab();

    if let Ok(client) = octocrab {
        let repos = client.issues("42ByteLabs", "octoapp")
            .list()
            .creator("GeekMasher")
            .send()
            .await?;
    }

    Ok(())
}

📚 文档

您可以在 docs.rs 上找到此项目的文档。

♥️ 维护者 / 贡献者

🦸 支持

如果有错误或功能请求,请创建 GitHub Issues

此项目使用 语义版本化 (v2),并且主要版本发布时将发生破坏性更改。

📓 许可证

此项目根据 MIT 开源许可证的条款进行许可。有关完整条款,请参阅 MIT

依赖关系

~11–44MB
~748K SLoC