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
10KB
128 行
axum-github-webhook-extract
一个用于在 Axum 中安全地保护 GitHub Webhooks 并提取 JSON 事件负载的库。有关如何使用该库的说明,请参阅文档。
lib.rs
:
一个用于在 GitHub Webhooks 中安全并提取 JSON 事件负载的库。
该库是一个与 Extractor 和 State 配对的库,以提供所需的 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