Commit graph

9 commits

Author SHA1 Message Date
Wolfgang Walther 9021c3eb99 ci/github-script/merge: improve wording
(cherry picked from commit db8f50b4de)
2025-11-02 15:46:03 +00:00
Wolfgang Walther 12ffae8a50 ci/github-script/merge: improve maintainer check
(cherry picked from commit 2d0a8791fe)
2025-11-02 15:46:03 +00:00
Wolfgang Walther 8c5df843a0 ci/github-script/merge: move all conditions into runChecklist
No special casing anymore, all conditions are in the same place. This
also has the benefit of hiding the "has maintainers eligible for merge"
condition from comments, because it is only really relevant for
labeling.

(cherry picked from commit 6a3c294f6f)
2025-11-02 15:46:03 +00:00
Wolfgang Walther 9f4078e539 ci/github-script/merge: move API requests out of runChecklist
This makes runChecklist mostly a pure function (except for logging) to
allow calling it repeatedly later.

(cherry picked from commit 7ea127c83a)
2025-11-02 15:46:02 +00:00
Wolfgang Walther ecb87ba66a ci/github-script/merge: improve caching of team members
This removes the need to `await` committers further down in the function
and allows re-using the cache for other teams later.

(cherry picked from commit c7766c637f)
2025-11-02 15:46:02 +00:00
Wolfgang Walther fec18fbbb5
workflows/bot: avoid access teams endpoints in Test workflow
We have no chance of getting a token that can request the team endpoints
in the pull_request context. This makes sense, because non-members of
the org are also not allowed to view the teams' memberships.

Thus, just fake an empty team - that's fine for the Test workflow.

(cherry picked from commit 421974863f)
2025-11-01 19:01:21 +01:00
Wolfgang Walther 2afe2597c2
workflows/bot: set "merge-bot eligible" label
This makes it more visible which PRs are merge-bot eligible, by setting
a label respectively.

(cherry picked from commit 00e7b934fb)
2025-11-01 18:50:12 +01:00
Wolfgang Walther 0e855ef962 workflows/bot: retry failed merges
By not keeping the node_id in the comments resulting from a failed
merge, these merges will be automatically retried.

(cherry picked from commit 89ace76ff1)
2025-11-01 15:02:00 +00:00
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