No description
  • Rust 84.6%
  • Nix 15.4%
Find a file
2025-06-02 21:21:35 +02:00
.forgejo/workflows workflow updates 2025-06-02 21:21:35 +02:00
nix fmt 2025-06-02 21:21:11 +02:00
src cleanup not-modified handling 2024-12-26 15:28:21 +01:00
.dockerignore docker setup 2021-01-07 21:01:46 +01:00
.envrc flake 2022-07-17 13:01:44 +02:00
.gitignore flake 2022-07-17 13:01:44 +02:00
Cargo.lock send user agent 2024-12-26 00:53:17 +01:00
Cargo.toml deal with not-modified responses 2024-12-26 01:16:44 +01:00
docker.nix fmt 2025-06-02 21:21:11 +02:00
flake.lock flake update 2025-06-02 21:21:00 +02:00
flake.nix fmt 2025-06-02 21:21:11 +02:00
LICENSE add license info 2024-01-09 22:02:31 +01:00
README.md fmt 2025-06-02 21:21:11 +02:00

rss-webhook-trigger

Trigger webhooks from rss/atom feeds.

Send a POST request to a webhook every time an rss/atom feed changes.

Note that this will only detect changes made while the program is running, it is not able to detect changes made to the feeds on program start.

Configuration

interval = 600 # optional, defaults to 30 minutes

[[feed]]
feed = "https://example.com/feed1.xml"
hook = "https://hook.example.com/hook1/call"

[[feed]]
feed = "https://example.com/feed2.xml"
hook = "https://hook.example.com/hook2/call"
headers = { authorization = "...." }
body = { event_type = "build" }

# you can load header values from external files to keep your screts separate
[[feed]]
feed = "https://example.com/feed3.xml"
hook = "https://hook.example.com/hook3/call"
headers = { authorization = "/run/secrets/hook-auth" }
body = { event_type = "build" }

# trigger on docker hub updates instead of rss feed update
[[feed]]
feed = "docker-hub://matrixdotorg/synapse"
hook = "https://hook.example.com/hook2/call"

Usage in NixOS

A NixOS module is included and can be used like this:

{
  inputs.rss-webhook-trigger.url = "github:icewind1991/rss-webhook-trigger";

  outputs = { self, nixpkgs, rss-webhook-trigger }: {
    nixosConfigurations.my-machine = nixpkgs.lib.nixosSystem {
      modules =
        [
          rss-webhook-trigger.nixosModules.default
          {
            services.rss-webhook-trigger = {
              enable = true;
              hooks = [
                {
                  feed = "https://example.com/feed1.xml";
                  hook = "https://hook.example.com/hook1/call";
                }
              ];
            };
          }
          # ... other configuration ...
        ];
    };
  };
}