2026-10-23T20:58:03.4625671Z Current runner version: '2.338.0' 2026-10-23T20:58:03.4643363Z ##[group]Runner Image Provisioner 2026-10-23T20:58:03.4643906Z Hosted Compute Agent 2026-10-23T20:58:03.4644260Z Version: 20261012.601 2026-10-23T20:58:03.4644688Z Commit: f3dc54e1fb89da6852db922499a0233137369e1d 2026-10-23T20:58:03.4645122Z Build Date: 2026-10-12T17:48:21Z 2026-10-23T20:58:03.4645580Z Worker ID: {40da5c58-cf5a-4a36-9e87-1bc58fa9b544} 2026-10-23T20:58:03.4646014Z Region: centralus 2026-10-23T20:58:03.4646355Z Cloud: Azure 2026-10-23T20:58:03.4646746Z ##[endgroup] 2026-10-23T20:58:03.4647615Z ##[group]Operating System 2026-10-23T20:58:03.4648048Z Ubuntu 2026-10-23T20:58:03.4648380Z 24.04.5 2026-10-23T20:58:03.4648696Z LTS 2026-10-23T20:58:03.4649043Z ##[endgroup] 2026-10-23T20:58:03.4649376Z ##[group]Runner Image 2026-10-23T20:58:03.4649757Z Image: ubuntu-24.04 2026-10-23T20:58:03.4650144Z Version: 20261012.334.1 2026-10-23T20:58:03.4650885Z Included Software: https://github.com/actions/runner-images/blob/ubuntu24/20261012.334/images/ubuntu/Ubuntu2404-Readme.md 2026-10-23T20:58:03.4651810Z Image Release: https://github.com/actions/runner-images/releases/tag/ubuntu24%2F20261012.334 2026-10-23T20:58:03.4652397Z ##[endgroup] 2026-10-23T20:58:03.4653153Z ##[group]GITHUB_TOKEN Permissions 2026-10-23T20:58:03.4654276Z Contents: read 2026-10-23T20:58:03.4654713Z Metadata: read 2026-10-23T20:58:03.4655086Z Packages: read 2026-10-23T20:58:03.4655456Z ##[endgroup] 2026-10-23T20:58:03.4656768Z Secret source: Actions 2026-10-23T20:58:03.4657878Z Cache mode: write 2026-10-23T20:58:03.4658369Z Prepare workflow directory 2026-10-23T20:58:03.4870174Z Prepare all required actions 2026-10-23T20:58:03.4908721Z Getting action download info 2026-10-23T20:58:03.7335056Z Download action repository 'actions/checkout@v4' (SHA:11d5960a326750d5838078e36cf38b85af677262) 2026-10-23T20:58:03.8119230Z Download action repository 'hacs/action@main' (SHA:1ebf01c408f29afcb6406bd431bc98fd8cbb15aa) 2026-10-23T20:58:04.0602455Z Complete job name: hacs 2026-10-23T20:58:04.0955181Z ##[group]Pull down action image 'ghcr.io/hacs/action:main' 2026-10-23T20:58:04.1037451Z ##[command]/usr/bin/docker pull ghcr.io/hacs/action:main 2026-10-23T20:58:04.7152035Z main: Pulling from hacs/action 2026-10-23T20:58:04.8458634Z e2de96513ba9: Already exists 2026-10-23T20:58:04.8484695Z 48f6a2588427: Pulling fs layer 2026-10-23T20:58:04.8485343Z 2a22c5887fa2: Pulling fs layer 2026-10-23T20:58:04.8485715Z d486488257d0: Pulling fs layer 2026-10-23T20:58:04.8486059Z 1681a10524cc: Pulling fs layer 2026-10-23T20:58:04.8486430Z 218aa9bdf485: Pulling fs layer 2026-10-23T20:58:04.8486945Z bdd1851e0e09: Pulling fs layer 2026-10-23T20:58:04.8487309Z 1681a10524cc: Waiting 2026-10-23T20:58:04.8487633Z 218aa9bdf485: Waiting 2026-10-23T20:58:04.8487960Z bdd1851e0e09: Waiting 2026-10-23T20:58:05.0113541Z d486488257d0: Verifying Checksum 2026-10-23T20:58:05.0114403Z d486488257d0: Download complete 2026-10-23T20:58:05.0538720Z 48f6a2588427: Verifying Checksum 2026-10-23T20:58:05.0540418Z 48f6a2588427: Download complete 2026-10-23T20:58:05.1805891Z 1681a10524cc: Download complete 2026-10-23T20:58:05.2127574Z 2a22c5887fa2: Verifying Checksum 2026-10-23T20:58:05.2128385Z 2a22c5887fa2: Download complete 2026-10-23T20:58:05.2254113Z 218aa9bdf485: Verifying Checksum 2026-10-23T20:58:05.2254910Z 218aa9bdf485: Download complete 2026-10-23T20:58:06.1110539Z bdd1851e0e09: Verifying Checksum 2026-10-23T20:58:06.1112230Z bdd1851e0e09: Download complete 2026-10-23T20:58:11.3861824Z 48f6a2588427: Pull complete 2026-10-23T20:58:12.0552629Z 2a22c5887fa2: Pull complete 2026-10-23T20:58:12.0649681Z d486488257d0: Pull complete 2026-10-23T20:58:12.0915014Z 1681a10524cc: Pull complete 2026-10-23T20:58:12.1142338Z 218aa9bdf485: Pull complete 2026-10-23T20:58:32.8659595Z bdd1851e0e09: Pull complete 2026-10-23T20:58:32.8712476Z Digest: sha256:187499a09c5d41f9f0d42ff80d203ed87b974c028290140913b61e005fb0aab2 2026-10-23T20:58:32.8759491Z Status: Downloaded newer image for ghcr.io/hacs/action:main 2026-10-23T20:58:32.8789010Z ghcr.io/hacs/action:main 2026-10-23T20:58:32.8808144Z ##[endgroup] 2026-10-23T20:58:32.9005804Z ##[group]Run actions/checkout@v4 2026-10-23T20:58:32.9006079Z with: 2026-10-23T20:58:32.9006226Z repository: Mezzle/govee-bluetooth 2026-10-23T20:58:32.9007890Z token: *** 2026-10-23T20:58:32.9008009Z ssh-strict: true 2026-10-23T20:58:32.9008129Z ssh-user: git 2026-10-23T20:58:32.9008262Z persist-credentials: true 2026-10-23T20:58:32.9008409Z clean: true 2026-10-23T20:58:32.9008535Z sparse-checkout-cone-mode: true 2026-10-23T20:58:32.9008682Z fetch-depth: 1 2026-10-23T20:58:32.9008805Z fetch-tags: false 2026-10-23T20:58:32.9008923Z show-progress: true 2026-10-23T20:58:32.9009044Z lfs: false 2026-10-23T20:58:32.9009152Z submodules: false 2026-10-23T20:58:32.9009271Z set-safe-directory: true 2026-10-23T20:58:32.9009412Z allow-unsafe-pr-checkout: false 2026-10-23T20:58:32.9009651Z ##[endgroup] 2026-10-23T20:58:32.9707924Z Syncing repository: Mezzle/govee-bluetooth 2026-10-23T20:58:32.9709292Z ##[group]Getting Git version info 2026-10-23T20:58:32.9709800Z Working directory is '/home/runner/work/govee-bluetooth/govee-bluetooth' 2026-10-23T20:58:32.9710320Z [command]/usr/bin/git version 2026-10-23T20:58:32.9769330Z git version 2.55.0 2026-10-23T20:58:32.9782729Z ##[endgroup] 2026-10-23T20:58:32.9806394Z Temporarily overriding HOME='/home/runner/work/_temp/28c42452-b5e3-4a42-9465-03b99e92ac93' before making global git config changes 2026-10-23T20:58:32.9807850Z Adding repository directory to the temporary git global config as a safe directory 2026-10-23T20:58:32.9808981Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/govee-bluetooth/govee-bluetooth 2026-10-23T20:58:32.9847672Z Deleting the contents of '/home/runner/work/govee-bluetooth/govee-bluetooth' 2026-10-23T20:58:32.9861091Z ##[group]Initializing the repository 2026-10-23T20:58:32.9862038Z [command]/usr/bin/git init /home/runner/work/govee-bluetooth/govee-bluetooth 2026-10-23T20:58:32.9961625Z hint: Using 'master' as the name for the initial branch. This default branch name 2026-10-23T20:58:32.9963022Z hint: will change to "main" in Git 3.0. To configure the initial branch name 2026-10-23T20:58:32.9963481Z hint: to use in all of your new repositories, which will suppress this warning, 2026-10-23T20:58:32.9963792Z hint: call: 2026-10-23T20:58:32.9963948Z hint: 2026-10-23T20:58:32.9964273Z hint: git config --global init.defaultBranch 2026-10-23T20:58:32.9964547Z hint: 2026-10-23T20:58:32.9964821Z hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and 2026-10-23T20:58:32.9965172Z hint: 'development'. The just-created branch can be renamed via this command: 2026-10-23T20:58:32.9965383Z hint: 2026-10-23T20:58:32.9965499Z hint: git branch -m 2026-10-23T20:58:32.9965630Z hint: 2026-10-23T20:58:32.9965804Z hint: Disable this message with "git config set advice.defaultBranchName false" 2026-10-23T20:58:32.9966150Z Initialized empty Git repository in /home/runner/work/govee-bluetooth/govee-bluetooth/.git/ 2026-10-23T20:58:32.9975863Z [command]/usr/bin/git remote add origin https://github.com/Mezzle/govee-bluetooth 2026-10-23T20:58:33.0031155Z ##[endgroup] 2026-10-23T20:58:33.0031577Z ##[group]Disabling automatic garbage collection 2026-10-23T20:58:33.0031933Z [command]/usr/bin/git config --local gc.auto 0 2026-10-23T20:58:33.0066965Z ##[endgroup] 2026-10-23T20:58:33.0067332Z ##[group]Setting up auth 2026-10-23T20:58:33.0074012Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand 2026-10-23T20:58:33.0110857Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" 2026-10-23T20:58:33.0424795Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader 2026-10-23T20:58:33.0456018Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" 2026-10-23T20:58:33.0642587Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: 2026-10-23T20:58:33.0673977Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url 2026-10-23T20:58:33.0852449Z [command]/usr/bin/git config --local http.https://github.com/.extraheader AUTHORIZATION: basic *** 2026-10-23T20:58:33.0947596Z ##[endgroup] 2026-10-23T20:58:33.0948130Z ##[group]Fetching the repository 2026-10-23T20:58:33.0954052Z [command]/usr/bin/git -c protocol.version=2 fetch --no-tags --prune --no-recurse-submodules --depth=1 origin +64b2f0e47220ecd4717e00fdc13b2b85ac9854d6:refs/remotes/origin/refactor/shared-frame-exchange 2026-10-23T20:58:33.5391926Z From https://github.com/Mezzle/govee-bluetooth 2026-10-23T20:58:33.5392355Z * [new ref] 64b2f0e47220ecd4717e00fdc13b2b85ac9854d6 -> origin/refactor/shared-frame-exchange 2026-10-23T20:58:33.5396635Z ##[endgroup] 2026-10-23T20:58:33.5397178Z ##[group]Determining the checkout info 2026-10-23T20:58:33.5400202Z ##[endgroup] 2026-10-23T20:58:33.5405755Z [command]/usr/bin/git sparse-checkout disable 2026-10-23T20:58:33.5457921Z [command]/usr/bin/git config --local --unset-all extensions.worktreeConfig 2026-10-23T20:58:33.5489569Z ##[group]Checking out the ref 2026-10-23T20:58:33.5497861Z [command]/usr/bin/git checkout --progress --force -B refactor/shared-frame-exchange refs/remotes/origin/refactor/shared-frame-exchange 2026-10-23T20:58:33.5605257Z Switched to a new branch 'refactor/shared-frame-exchange' 2026-10-23T20:58:33.5613269Z branch 'refactor/shared-frame-exchange' set up to track 'origin/refactor/shared-frame-exchange'. 2026-10-23T20:58:33.5617324Z ##[endgroup] 2026-10-23T20:58:33.5659284Z [command]/usr/bin/git log -1 --format=%H 2026-10-23T20:58:33.5686316Z 64b2f0e47220ecd4717e00fdc13b2b85ac9854d6 2026-10-23T20:58:33.5862187Z ##[group]Run hacs/action@main 2026-10-23T20:58:33.5862361Z with: 2026-10-23T20:58:33.5862474Z category: integration 2026-10-23T20:58:33.5862596Z comment: true 2026-10-23T20:58:33.5863825Z github_token: *** 2026-10-23T20:58:33.5863941Z ##[endgroup] 2026-10-23T20:58:33.5929272Z ##[command]/usr/bin/docker run --name ghcriohacsactionmain_821594 --label ea00bd --workdir /github/workspace --rm -e "INPUT_CATEGORY" -e "INPUT_IGNORE" -e "INPUT_REPOSITORY" -e "INPUT_COMMENT" -e "INPUT_GITHUB_TOKEN" -e "HOME" -e "GITHUB_JOB" -e "GITHUB_REF" -e "GITHUB_SHA" -e "GITHUB_REPOSITORY" -e "GITHUB_REPOSITORY_OWNER" -e "GITHUB_REPOSITORY_OWNER_ID" -e "GITHUB_RUN_ID" -e "GITHUB_RUN_NUMBER" -e "GITHUB_RETENTION_DAYS" -e "GITHUB_RUN_ATTEMPT" -e "GITHUB_ACTOR_ID" -e "GITHUB_ACTOR" -e "GITHUB_WORKFLOW" -e "GITHUB_HEAD_REF" -e "GITHUB_BASE_REF" -e "GITHUB_EVENT_NAME" -e "GITHUB_SERVER_URL" -e "GITHUB_API_URL" -e "GITHUB_GRAPHQL_URL" -e "GITHUB_REF_NAME" -e "GITHUB_REF_PROTECTED" -e "GITHUB_REF_TYPE" -e "GITHUB_WORKFLOW_REF" -e "GITHUB_WORKFLOW_SHA" -e "GITHUB_REPOSITORY_ID" -e "GITHUB_TRIGGERING_ACTOR" -e "GITHUB_WORKSPACE" -e "GITHUB_ACTION" -e "GITHUB_EVENT_PATH" -e "GITHUB_ACTION_REPOSITORY" -e "GITHUB_ACTION_REF" -e "GITHUB_PATH" -e "GITHUB_ENV" -e "GITHUB_STEP_SUMMARY" -e "GITHUB_STATE" -e "GITHUB_OUTPUT" -e "GITHUB_ARTIFACTS" -e "GITHUB_ARTIFACTS_LIST" -e "RUNNER_OS" -e "RUNNER_ARCH" -e "RUNNER_NAME" -e "RUNNER_ENVIRONMENT" -e "RUNNER_TOOL_CACHE" -e "RUNNER_TEMP" -e "RUNNER_WORKSPACE" -e "ACTIONS_RUNTIME_URL" -e "ACTIONS_RUNTIME_TOKEN" -e "ACTIONS_CACHE_URL" -e "ACTIONS_RESULTS_URL" -e "ACTIONS_CACHE_MODE" -e "ACTIONS_ORCHESTRATION_ID" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp":"/github/runner_temp" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/govee-bluetooth/govee-bluetooth":"/github/workspace" ghcr.io/hacs/action:main 2026-10-23T20:58:38.4801594Z ::INFO:: Category: integration 2026-10-23T20:58:38.4802030Z ::INFO:: Repository: Mezzle/govee-bluetooth@refs/heads/refactor/shared-frame-exchange 2026-10-23T20:58:39.5190086Z ::INFO:: completed 2026-10-23T20:58:39.5209558Z ##[warning] The integration manifest has no categories, see https://contributors.home-assistant.io/core/integrations/categories/ 2026-10-23T20:58:39.5215300Z ::INFO:: completed 2026-10-23T20:58:39.5215525Z ::INFO:: completed 2026-10-23T20:58:39.5215700Z ::INFO:: completed 2026-10-23T20:58:39.5216005Z ::INFO:: completed 2026-10-23T20:58:39.5216389Z ::INFO:: completed 2026-10-23T20:58:39.5216563Z ::INFO:: completed 2026-10-23T20:58:39.5216737Z ::INFO:: completed 2026-10-23T20:58:39.5217170Z ::INFO:: completed 2026-10-23T20:58:39.7759631Z ::INFO:: completed 2026-10-23T20:58:39.7759912Z ::INFO:: All (10) checks passed 2026-10-23T20:58:40.7774677Z ::INFO:: Validation completed 2026-10-23T20:58:40.7791613Z ##[group]data 2026-10-23T20:58:40.7791836Z { 2026-10-23T20:58:40.7791991Z "data": { 2026-10-23T20:58:40.7792167Z "archived": false, 2026-10-23T20:58:40.7792373Z "authors": [ 2026-10-23T20:58:40.7792552Z "@mezzle" 2026-10-23T20:58:40.7792730Z ], 2026-10-23T20:58:40.7792909Z "category": "integration", 2026-10-23T20:58:40.7793134Z "config_flow": true, 2026-10-23T20:58:40.7793331Z "default_branch": "main", 2026-10-23T20:58:40.7793679Z "description": "Home Assistant integration for Govee LED strips over Bluetooth LE, via local adapters or ESPHome Bluetooth proxies. No cloud.", 2026-10-23T20:58:40.7794371Z "domain": "govee_bluetooth", 2026-10-23T20:58:40.7794519Z "downloads": 0, 2026-10-23T20:58:40.7794765Z "etag_repository": "W/\"02fefe574267f266e6817e5adc0ff3db2e44217829a076baa9577149c913d790\"", 2026-10-23T20:58:40.7795017Z "etag_releases": null, 2026-10-23T20:58:40.7795168Z "file_name": "", 2026-10-23T20:58:40.7795304Z "first_install": false, 2026-10-23T20:58:40.7795455Z "full_name": "Mezzle/govee-bluetooth", 2026-10-23T20:58:40.7795612Z "hide": false, 2026-10-23T20:58:40.7795736Z "has_issues": true, 2026-10-23T20:58:40.7795866Z "id": "1424335838", 2026-10-23T20:58:40.7796002Z "installed_commit": null, 2026-10-23T20:58:40.7796148Z "installed_version": null, 2026-10-23T20:58:40.7796288Z "installed": false, 2026-10-23T20:58:40.7796418Z "last_commit": null, 2026-10-23T20:58:40.7796561Z "last_updated": "2026-10-23T20:57:54Z", 2026-10-23T20:58:40.7796741Z "last_version": "v0.1.0", 2026-10-23T20:58:40.7797082Z "manifest_name": "Govee Bluetooth", 2026-10-23T20:58:40.7797276Z "new": true, 2026-10-23T20:58:40.7797397Z "open_issues": 1, 2026-10-23T20:58:40.7797527Z "prerelease": null, 2026-10-23T20:58:40.7797659Z "published_tags": [ 2026-10-23T20:58:40.7797781Z "v0.1.0" 2026-10-23T20:58:40.7797895Z ], 2026-10-23T20:58:40.7798004Z "releases": true, 2026-10-23T20:58:40.7798177Z "selected_tag": "refs/heads/refactor/shared-frame-exchange", 2026-10-23T20:58:40.7798368Z "show_beta": false, 2026-10-23T20:58:40.7798503Z "stargazers_count": 0, 2026-10-23T20:58:40.7798637Z "topics": [ 2026-10-23T20:58:40.7798753Z "bluetooth", 2026-10-23T20:58:40.7798880Z "bluetooth-le", 2026-10-23T20:58:40.7799006Z "esphome", 2026-10-23T20:58:40.7799121Z "govee", 2026-10-23T20:58:40.7799232Z "hacs", 2026-10-23T20:58:40.7799355Z "home-assistant", 2026-10-23T20:58:40.7799501Z "home-assistant-integration" 2026-10-23T20:58:40.7799796Z ] 2026-10-23T20:58:40.7799897Z }, 2026-10-23T20:58:40.7799999Z "manifest": { 2026-10-23T20:58:40.7800120Z "content_in_root": false, 2026-10-23T20:58:40.7800257Z "country": [], 2026-10-23T20:58:40.7800379Z "filename": null, 2026-10-23T20:58:40.7800503Z "hacs": null, 2026-10-23T20:58:40.7800630Z "hide_default_branch": false, 2026-10-23T20:58:40.7800780Z "homeassistant": "2025.6.0", 2026-10-23T20:58:40.7800918Z "manifest": { 2026-10-23T20:58:40.7801042Z "name": "Govee Bluetooth", 2026-10-23T20:58:40.7801189Z "render_readme": true, 2026-10-23T20:58:40.7801331Z "homeassistant": "2025.6.0" 2026-10-23T20:58:40.7801469Z }, 2026-10-23T20:58:40.7801582Z "name": "Govee Bluetooth", 2026-10-23T20:58:40.7801724Z "persistent_directory": null, 2026-10-23T20:58:40.7801876Z "render_readme": true, 2026-10-23T20:58:40.7802011Z "zip_release": false 2026-10-23T20:58:40.7802162Z }, 2026-10-23T20:58:40.7802273Z "release": { 2026-10-23T20:58:40.7802391Z "tag": "v0.1.0", 2026-10-23T20:58:40.7802512Z "assets": [] 2026-10-23T20:58:40.7802624Z }, 2026-10-23T20:58:40.7802734Z "category": "integration", 2026-10-23T20:58:40.7802892Z "ref": "refs/heads/refactor/shared-frame-exchange" 2026-10-23T20:58:40.7803057Z } 2026-10-23T20:58:40.7803326Z ##[endgroup] 2026-10-23T20:58:41.6226569Z Post job cleanup. 2026-10-23T20:58:41.6833722Z [command]/usr/bin/git version 2026-10-23T20:58:41.6871798Z git version 2.55.0 2026-10-23T20:58:41.6901509Z Temporarily overriding HOME='/home/runner/work/_temp/b45b7681-3a40-4dd5-86f8-bb9705132b89' before making global git config changes 2026-10-23T20:58:41.6901953Z Adding repository directory to the temporary git global config as a safe directory 2026-10-23T20:58:41.6906325Z [command]/usr/bin/git config --global --add safe.directory /home/runner/work/govee-bluetooth/govee-bluetooth 2026-10-23T20:58:41.6948195Z [command]/usr/bin/git config --local --name-only --get-regexp core\.sshCommand 2026-10-23T20:58:41.6991117Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'core\.sshCommand' && git config --local --unset-all 'core.sshCommand' || :" 2026-10-23T20:58:41.7213258Z [command]/usr/bin/git config --local --name-only --get-regexp http\.https\:\/\/github\.com\/\.extraheader 2026-10-23T20:58:41.7246506Z http.https://github.com/.extraheader 2026-10-23T20:58:41.7257506Z [command]/usr/bin/git config --local --unset-all http.https://github.com/.extraheader 2026-10-23T20:58:41.7299421Z [command]/usr/bin/git submodule foreach --recursive sh -c "git config --local --name-only --get-regexp 'http\.https\:\/\/github\.com\/\.extraheader' && git config --local --unset-all 'http.https://github.com/.extraheader' || :" 2026-10-23T20:58:41.7506103Z [command]/usr/bin/git config --local --name-only --get-regexp ^includeIf\.gitdir: 2026-10-23T20:58:41.7541225Z [command]/usr/bin/git submodule foreach --recursive git config --local --show-origin --name-only --get-regexp remote.origin.url 2026-10-23T20:58:41.7889336Z Cleaning up orphan processes 2026-10-23T20:58:41.8197691Z ##[warning]Node.js 20 is deprecated. The following actions target Node.js 20 but are being forced to run on Node.js 24: actions/checkout@v4. For more information see: https://github.blog/changelog/2025-09-19-deprecation-of-node-20-on-github-actions-runners/