Skip to content

Rifling the GitHub/GitLab webhook listener library

License

Notifications You must be signed in to change notification settings

RedL0tus/rifling

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rifling

license crates.io docs.rs Build Status

Rifling is a library to create Github/GitLab Webhook listener, influenced by afterparty.

If you want a commandline tool rather than a library, please consult trigger.

Features

  • Supports both GitHub and GitLab.
  • Supports both application/json mode and (optionally) application/x-www-form-urlencoded mode.
  • (Potentially) support for different web frameworks.
  • Optional payload parsing support. Using serde_json's untyped parsing functionality.
  • Optional payload authentication support with ring or libraries from RustCrypto team.
  • Optional logging.

Optional features

  • Web frameworks:
  • Payload authentication (does not affect usage):
    • crypto-use-ring (default): Use ring as cryptography library. This MAY be faster but has some C code.
    • crypto-use-rustcrypto: Use libraries from RustCrypto team (hmac and sha-1). These libraries are pure Rust implementations of these algorithms, which can be linked with musl.
  • Payload content type:
    • content-type-urlencoded (enabled by default): Support for application/x-www-form-urlencoded typed content.
  • Payload parsing:
    • parse (default): Parse the payload. Parsed payload will be present in Delivery.payload as Option<Value>.
  • Logging:
    • logging (default): Use the official log crate to log.
    • logging-print: Use println macro to print log. Will be ignored when logging is enabled.

Notes

  • Debug logs are useful to find problems.
  • Events received from GitLab will be patched by lower casing and replacing " "(whitespace) with "_"(underscore).
    • e.g. Push Hook will be push_hook while registering hooks.

License

MIT License. See LICENSE.

About

Rifling the GitHub/GitLab webhook listener library

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages