From 28a4ff4639e3ee24eee86d3a249a0afe2d3f5f86 Mon Sep 17 00:00:00 2001 From: finalerock44 <77282157+finalerock44@users.noreply.github.com> Date: Wed, 2 Sep 2026 15:34:08 +0100 Subject: [PATCH] fix(ci): point the CLA check at our node24 fork Upstream contributor-assistant/github-action is archived and still declares node20; GitHub's forced Node 24 migration makes the step succeed then exit non-zero, so the required check failed on every PR from 2026-09-02. devicecloud-dev/cla-assistant-action@v2.6.2 is a private fork whose only change is the runtime declaration. --- .github/workflows/cla.yml | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml index ba697bc..56a1ffa 100644 --- a/.github/workflows/cla.yml +++ b/.github/workflows/cla.yml @@ -2,10 +2,24 @@ name: CLA Assistant # Gates merges on a signed Contributor License Agreement. # -# Uses CLA Assistant Lite (contributor-assistant/github-action): signatures are -# stored as a JSON file committed to a branch of THIS repo (no third-party -# service holds the data). Contributors sign by commenting the configured phrase -# on their PR; the action records it and flips the check green. +# Uses CLA Assistant Lite: signatures are stored as a JSON file committed to a +# branch of THIS repo (no third-party service holds the data). Contributors sign +# by commenting the configured phrase on their PR; the action records it and +# flips the check green. +# +# ACTION SOURCE: devicecloud-dev/cla-assistant-action, a PRIVATE fork of the +# upstream contributor-assistant/github-action, which was archived read-only on +# 2026-03-23. We forked because GitHub's Node 20 deprecation began force-running +# node20 actions on Node 24, under which the upstream step does its work, logs +# "All contributors have signed the CLA", and THEN exits non-zero — failing a +# required check on every PR (first hit 2026-09-02, last green 2026-08-31). The +# fork's only change is `using: node24`; dist is unmodified. See its FORK.md. +# +# The fork is private, so it relies on Settings -> Actions -> Access -> +# "Accessible from repositories in the devicecloud-dev organization" being set +# on THAT repo. Resolution works for outside-contributor PRs because this +# workflow is `pull_request_target`, so it runs in this repo's context rather +# than the fork's. # # AUTH: mints a token from the shared automation GitHub App (the same App # release-please uses), so signature commits show as the bot and there's no @@ -50,7 +64,7 @@ jobs: with: app-id: ${{ secrets.BOT_APP_ID }} private-key: ${{ secrets.BOT_APP_PRIVATE_KEY }} - - uses: contributor-assistant/github-action@v2.6.1 + - uses: devicecloud-dev/cla-assistant-action@v2.6.2 if: env.HAS_APP == 'true' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}