The `EventFilter::Not` variant would not correctly deserialize, resulting in the
following error:
deserializing nested enum in EventFilter::Not from YAML is not supported yet
This can be fixed by using `#[serde(with = "serde_yml::with::singleton_map")]`
on that variant.
A test case is provided to show that a `Not` case can be deserialized correctly.
The change also includes some improvements to `EventFilter`:
- Add `PartialEq` and `Eq` for testing equality in testing
- The `And` and `Or` variants do not need the `Box`, since the `Vec` acts as a
size pointer for the recursive `Self` – unlike the `Not` variant.
Add a check for auditing the project via `cargo audit`.
Note that a RUSTSEC is ignored due to it not affecting the project – this is
recoreded in `.cargo/audit.toml`.
Adds a `flake.nix` for building and testing the radicle-ci-broker using Nix.
Auditing and license denial configurations are also added as part of the `nix
flake check`s.
Note that one of the tests is ignore as part of the nextest check, since it
relies on using the Git repository itself. This is discouraged, since the check
runs in a sandboxed environment.
While setting up a Nix flake, a series of tests were failing due to shell
invocations. The falling were the changes required:
- Use `!#/bin/sh` instead of `!#/bin/bash`
- Use `$$` instead of `$BASHPID`
- Use `true` and `false` instead of `/bin/true` and `/bin/false`
It was also noted that the `git-remote-helper` is needed alongside the `rad`
binary for some of the acceptance tests to work.