Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AE Rust 勉強会: github-webhook-rs

sksat
June 07, 2023

AE Rust 勉強会: github-webhook-rs

アークエッジ・スペース Rust 勉強会の懇親会で突発 LT したやつ

#arkedge_lt
connpass: https://connpass.com/event/282286/

sksat

June 07, 2023
Tweet

More Decks by sksat

Other Decks in Programming

Transcript

  1. 自己紹介 - sksat - SW部正社員 && 学部2年生(2回目) - 中指を立てているわけではない(アイコン) -

    ビルドシステム大臣 - Rust そのものより Cargo.toml と build.rs ばかり書いている - 不自由な開発環境の森を焼き尽くして回っている - 泣きながら CMakeLists.txt も殴る - ときどき社内システム(self-hosted Renovate, hubhook, etc)
  2. なお実装 - Rust の練習で書いた - かなり雑なコード - 勢い良く unwrap() -

    まあ panic しても k8s で走ってるのでいいが...... - しかし,通知を取りこぼすのは困る - どこでコケるのか? → webhook payload JSON の deserialize
  3. GitHub webhook payload - かなり巨大な構造の JSON - serde 最高! -

    巨大すぎて struct のメンテがダルい - でもできるだけ情報は取りたい - 実物を眺めて書き起こすのは面倒 - たまーに構造が一部変わる
  4. octokit/webhooks - machine-readable, always up-to-date GitHub Webhooks specifications - 丁寧な

    JSON Schema がメンテされている - TypeScript の型にも変換されてる - これだ!!!
  5. Rust の型になってほしい!!! - serde-compatible な形で - JSON Schema -> Rust

    あるでしょ - ex: schemafy - draft 7 未対応がちで怪しい雰囲気 - 他のファイル読み出しまくってる - 素直に変換すると使い勝手の悪い型に - 共通部分もそれぞれのフィールドとしてダンプされてしまう,など
  6. Oh!