Unverified Commit e5306ea0 authored by Morgan Jones's avatar Morgan Jones Committed by Tristan Ross
Browse files

ci/eval/compare: support optional byName argument

Sometimes it is quite useful to output names instead of GitHub IDs, e.g.
for maintainer scripts that show you who you would ping. Add this as an
option, but keep the existing default.
parent a71ef34c
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
  beforeResultDir,
  afterResultDir,
  touchedFilesJson,
  byName ? false,
}:
let
  /*
@@ -119,6 +120,7 @@ let
  maintainers = import ./maintainers.nix {
    changedattrs = lib.attrNames (lib.groupBy (a: a.name) rebuildsPackagePlatformAttrs);
    changedpathsjson = touchedFilesJson;
    inherit byName;
  };
in
runCommand "compare"
+7 −2
Original line number Diff line number Diff line
# Almost directly vendored from https://github.com/NixOS/ofborg/blob/5a4e743f192fb151915fcbe8789922fa401ecf48/ofborg/src/maintainers.nix
{ changedattrs, changedpathsjson }:
{
  changedattrs,
  changedpathsjson,
  byName ? false,
}:
let
  pkgs = import ../../.. {
    system = "x86_64-linux";
@@ -94,12 +98,13 @@ let
    pkg:
    builtins.map (maintainer: {
      id = maintainer.githubId;
      inherit (maintainer) github;
      packageName = pkg.name;
      dueToFiles = pkg.filenames;
    }) pkg.maintainers
  ) attrsWithModifiedFiles;

  byMaintainer = lib.groupBy (ping: toString ping.id) listToPing;
  byMaintainer = lib.groupBy (ping: toString ping.${if byName then "github" else "id"}) listToPing;

  packagesPerMaintainer = lib.attrsets.mapAttrs (
    maintainer: packages: builtins.map (pkg: pkg.packageName) packages