hanko 1.1.0

Keeps your Git allowed signers file up to date with signing keys configured on software development platforms like GitHub and GitLab.
Documentation
{
  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.11";
    flake-utils.url = "github:numtide/flake-utils";
    rust-overlay.url = "github:oxalica/rust-overlay";
    crane.url = "github:ipetkov/crane";
  };

  outputs = { self, nixpkgs, flake-utils, rust-overlay, crane }:
    flake-utils.lib.eachDefaultSystem (system:
      let
        overlays = [ (import rust-overlay) ];
        pkgs = import nixpkgs { inherit system overlays; };

        rustToolchain =
          pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;

        gitRev = self.shortRev or self.dirtyShortRev or null;

        build = import ./nix/build.nix { inherit pkgs crane rustToolchain gitRev; };

        packaging = import ./nix/package.nix {
          inherit pkgs;
          inherit (build) packages;
        };

      in
      {
        packages = {
          hanko              = build.packages.${build.nativeTarget};
          default            = build.packages.${build.nativeTarget};
          rust-toolchain     = rustToolchain;
          rust-analyzer      = pkgs.rust-analyzer;
          release-artifacts  = packaging.releaseArtifacts;
          release-containers = packaging.releaseContainers;
        } // build.packages
          // pkgs.lib.mapAttrs'
            (target: archive: pkgs.lib.nameValuePair "archive-${target}" archive)
            packaging.archives
          // pkgs.lib.mapAttrs'
            (target: deb: pkgs.lib.nameValuePair "deb-${target}" deb)
            packaging.debs
          // pkgs.lib.mapAttrs'
            (target: img: pkgs.lib.nameValuePair "container-${target}" img)
            packaging.containerImages;

        devShells.default = pkgs.mkShell {
          packages = with pkgs; [
            rustToolchain
            rust-analyzer
            cargo-deny
            git
            just
            gh
          ];
        };
      }
    );
}