nixpkgs/ci/github-script
Wolfgang Walther 1479a94896 workflows/bot: migrate nixpkgs-merge-bot to GHA
Running the nixpkgs-merge-bot in GitHub Actions instead of a separate
workflow has multiple advantages:
- A much better development workflow, with improved testability.
- The ability to label PRs with a "merge-bot eligible" label from the
same codebase.
- Using more data for merge strategy decisions, for example the number
of rebuilds.

This commits re-implements most of the features from the current
nxipkgs-merge-bot directly in the bot workflow. Instead of reacting to
webhook events, this now runs on the regular 10 minute schedule. Some
merges might be delayed a few minutes, but that should not be a problem
in practice.

To give the user early feedback, there are additional workflows running
when a comment or review is posted. These react with "eyes" to make the
user aware that the comment has been recognized.

The only feature not taken over was the size check for files in the PR.
This kind of check is not really relevant for maintainer merges only -
if we want to prevent bigger files from making it into the tree, then we
need a generic CI check, which is out of scope for the merge-bot.

Other than that, everything should be implemented - any omissions are by
accident.

(cherry picked from commit eea09eb9d3)
2025-11-01 15:02:00 +00:00
..
.editorconfig ci/github-script: default to commonjs 2025-07-15 12:57:57 +00:00
.gitignore ci/github-script/commits: init from ci/check-cherry-picks 2025-07-16 10:26:08 +00:00
.npmrc ci/github-script: use real @actions/core 2025-07-16 10:26:08 +00:00
bot.js workflows/bot: migrate nixpkgs-merge-bot to GHA 2025-11-01 15:02:00 +00:00
commits.js ci/github-script/commits: split review function into separate file 2025-08-25 12:05:51 +00:00
get-teams.js ci/github-script/teams: use consistent style 2025-10-28 17:04:27 +01:00
merge.js workflows/bot: migrate nixpkgs-merge-bot to GHA 2025-11-01 15:02:00 +00:00
package-lock.json ci/github-script: use real @actions/core 2025-07-16 10:26:08 +00:00
package.json ci/github-script: use real @actions/core 2025-07-16 10:26:08 +00:00
prepare.js workflows/check: don't check github api for owners file 2025-09-30 10:38:14 +00:00
README.md ci/github-script/commits: init from ci/check-cherry-picks 2025-07-16 10:26:08 +00:00
reviews.js ci,workflows: deal with ghost reviews 2025-08-25 13:29:21 +00:00
run workflows/bot: rename from labels 2025-11-01 15:02:00 +00:00
shell.nix ci/github-script: add gh dependency to dev shell 2025-07-15 12:57:57 +00:00
withRateLimit.js ci: apply unsafe fixes with biome 2025-08-20 16:33:44 +02:00

GitHub specific CI scripts

This folder contains actions/github-script-based JavaScript code. It provides a nix-shell environment to run and test these actions locally.

To run any of the scripts locally:

  • Enter nix-shell in ./ci/github-script.
  • Ensure gh is authenticated.

Check commits

Run ./run commits OWNER REPO PR, where OWNER is your username or "NixOS", REPO is the name of your fork or "nixpkgs" and PR is the number of the pull request to check.

Labeler

Run ./run labels OWNER REPO, where OWNER is your username or "NixOS" and REPO the name of your fork or "nixpkgs".