biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / security / gitleaks / default.nix
blob3a961dc9788239b63338fc523eaac359aa3d228b
2   lib,
3   stdenv,
4   buildGoModule,
5   fetchFromGitHub,
6   gitleaks,
7   installShellFiles,
8   testers,
9 }:
11 buildGoModule rec {
12   pname = "gitleaks";
13   version = "8.20.1";
15   src = fetchFromGitHub {
16     owner = "zricethezav";
17     repo = "gitleaks";
18     rev = "refs/tags/v${version}";
19     hash = "sha256-oIhA1+gicNXDHzpdVzFeDvJHGCrqBhwyV+KOyYwMaK8=";
20   };
22   vendorHash = "sha256-4bGpTMmQmsJQ2RNIehYe0xAwwGOh2l6FGsKdciEVLAc=";
24   ldflags = [
25     "-s"
26     "-w"
27     "-X=github.com/zricethezav/gitleaks/v${lib.versions.major version}/cmd.Version=${version}"
28   ];
30   nativeBuildInputs = [ installShellFiles ];
32   # With v8 the config tests are blocking
33   doCheck = false;
35   postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
36     installShellCompletion --cmd ${pname} \
37       --bash <($out/bin/${pname} completion bash) \
38       --fish <($out/bin/${pname} completion fish) \
39       --zsh <($out/bin/${pname} completion zsh)
40   '';
42   passthru.tests.version = testers.testVersion {
43     package = gitleaks;
44     command = "${pname} version";
45   };
47   meta = with lib; {
48     description = "Scan git repos (or files) for secrets";
49     longDescription = ''
50       Gitleaks is a SAST tool for detecting hardcoded secrets like passwords,
51       API keys and tokens in git repos.
52     '';
53     homepage = "https://github.com/zricethezav/gitleaks";
54     changelog = "https://github.com/zricethezav/gitleaks/releases/tag/v${version}";
55     license = with licenses; [ mit ];
56     maintainers = with maintainers; [ fab ];
57     mainProgram = "gitleaks";
58   };