diff --git a/ci/eval/compare/default.nix b/ci/eval/compare/default.nix index 9b71c6656914c..04676476f4b2a 100644 --- a/ci/eval/compare/default.nix +++ b/ci/eval/compare/default.nix @@ -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" diff --git a/ci/eval/compare/maintainers.nix b/ci/eval/compare/maintainers.nix index 69748a629cffd..b8a45e217155a 100644 --- a/ci/eval/compare/maintainers.nix +++ b/ci/eval/compare/maintainers.nix @@ -1,5 +1,9 @@ # 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"; @@ -41,7 +45,16 @@ let ) validPackageAttributes; attrsWithMaintainers = builtins.map ( - pkg: pkg // { maintainers = (pkg.package.meta or { }).maintainers or [ ]; } + pkg: + let + meta = pkg.package.meta or { }; + in + pkg + // { + # TODO: Refactor this so we can ping entire teams instead of the individual members. + # Note that this will require keeping track of GH team IDs in "maintainers/teams.nix". + maintainers = meta.maintainers or [ ]; + } ) attrsWithPackages; relevantFilenames = @@ -83,12 +96,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