#github-webhook #github #axum #payload #extract #events #secure

axum-github-webhook-extract

一个用于在 Axum 中安全地保护 GitHub Webhooks 并提取 JSON 事件负载的库

4 个版本

0.2.0 2023年12月11日
0.1.2 2023年6月10日
0.1.1 2023年6月10日
0.1.0 2023年6月10日

#9 in #github-webhook

MIT 许可证

10KB
128

axum-github-webhook-extract

Build Crates.io Documentation

一个用于在 Axum 中安全地保护 GitHub Webhooks 并提取 JSON 事件负载的库。有关如何使用该库的说明,请参阅文档


lib.rs:

一个用于在 GitHub Webhooks 中安全并提取 JSON 事件负载的库。

该库是一个与 ExtractorState 配对的库,以提供所需的 Secret Token

用法示例

use axum_github_webhook_extract::{GithubToken, GithubEvent};

#[derive(Debug, Deserialize)]
struct Event {
    action: String,
}

async fn echo(GithubEvent(e): GithubEvent<Event>) -> impl IntoResponse {
    e.action
}

fn app() -> Router {
    let token = String::from("d4705034dd0777ee9e1e3078a12a06985151b76f");
    Router::new()
        .route("/", post(echo))
        .with_state(GithubToken(Arc::new(token)))
}

通常,您将从环境或配置中获取令牌。事件负载由您控制,只需确保将其配置为使用 JSON

依赖关系

~5.5–8MB
~139K SLoC