forgejo-sdk 0.1.0

An SDK for the Forgejo REST API
Documentation
{
  description = "A Rust SDK for the Forgejo REST API";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11";
    flake-parts.url = "github:hercules-ci/flake-parts";
    flake-parts.inputs.nixpkgs-lib.follows = "nixpkgs";
    nci.url = "github:yusdacra/nix-cargo-integration";
    nci.inputs.nixpkgs.follows = "nixpkgs";
  };

  outputs = inputs@{ flake-parts, ... }:
    flake-parts.lib.mkFlake
      {
        inherit inputs;
      }
      {
        systems = [
          "x86_64-linux"
          "x86_64-darwin"
          "aarch64-linux"
          "aarch64-darwin"
        ];
        imports = [
          inputs.nci.flakeModule
        ];

        perSystem = { config, pkgs, ... }:
          let
            crate = "forgejo-sdk";
            rust = config.nci.outputs.${crate};
          in
          {
            nci.projects.${crate}.path = ./.;
            nci.crates.${crate} =
              let
                cfg = rec {
                  mkDerivation = {
                    buildInputs = [ pkgs.pkg-config pkgs.openssl ];
                  };
                  env.LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath mkDerivation.buildInputs;
                }; in
              {
                depsDrvConfig = cfg;
                drvConfig = cfg;
              };

            checks.cargo-test = rust.check;
            formatter = pkgs.nixfmt;
            devShells.default = pkgs.mkShell rec {
              nativeBuildInputs = [ pkgs.pkg-config ];
              buildInputs = [ pkgs.openssl ];
              LD_LIBRARY_PATH = pkgs.lib.makeLibraryPath buildInputs;
            };
          };
      };
}