From 096789cb6133a78e375def3f16264a0e013e1ff2 Mon Sep 17 00:00:00 2001 From: carlos-alm Date: Wed, 17 Jun 2026 16:56:00 -0600 Subject: [PATCH 1/2] fix(ci): force HTTPS for SSH-locked git deps on Windows runners MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit tree-sitter-gleam and tree-sitter-clojure were locked in package-lock.json as git+ssh:// URLs. Windows CI runners have no SSH key configured for GitHub, so npm install hangs cloning these deps and times out at the 20-minute limit — causing every Windows CI job to fail on PR branches. Two changes: - package-lock.json: rewrite both resolved URLs from git+ssh:// to git+https:// so future installs use HTTPS directly - ci.yml: add git url.insteadOf config before every npm install as defense-in-depth so any future lockfile regeneration that captures SSH URLs does not break CI again --- .github/workflows/ci.yml | 10 ++++++++++ package-lock.json | 4 ++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cb01bbac..588a07ea 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,6 +32,8 @@ jobs: timeout-minutes: 20 shell: bash run: | + git config --global url."https://github.com/".insteadOf "ssh://git@github.com/" + git config --global url."https://github.com/".insteadOf "git@github.com:" for attempt in 1 2 3; do npm install && break if [ "$attempt" -lt 3 ]; then @@ -115,6 +117,8 @@ jobs: timeout-minutes: 20 shell: bash run: | + git config --global url."https://github.com/".insteadOf "ssh://git@github.com/" + git config --global url."https://github.com/".insteadOf "git@github.com:" for attempt in 1 2 3; do npm install && break if [ "$attempt" -lt 3 ]; then @@ -154,6 +158,8 @@ jobs: timeout-minutes: 20 shell: bash run: | + git config --global url."https://github.com/".insteadOf "ssh://git@github.com/" + git config --global url."https://github.com/".insteadOf "git@github.com:" for attempt in 1 2 3; do npm install && break if [ "$attempt" -lt 3 ]; then @@ -238,6 +244,8 @@ jobs: timeout-minutes: 20 shell: bash run: | + git config --global url."https://github.com/".insteadOf "ssh://git@github.com/" + git config --global url."https://github.com/".insteadOf "git@github.com:" for attempt in 1 2 3; do npm install && break if [ "$attempt" -lt 3 ]; then @@ -384,6 +392,8 @@ jobs: timeout-minutes: 20 shell: bash run: | + git config --global url."https://github.com/".insteadOf "ssh://git@github.com/" + git config --global url."https://github.com/".insteadOf "git@github.com:" for attempt in 1 2 3; do npm install && break if [ "$attempt" -lt 3 ]; then diff --git a/package-lock.json b/package-lock.json index d5a3bd6c..a25acb6a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7304,7 +7304,7 @@ }, "node_modules/tree-sitter-clojure": { "version": "0.0.13", - "resolved": "git+ssh://git@github.com/sogaiu/tree-sitter-clojure.git#e43eff80d17cf34852dcd92ca5e6986d23a7040f", + "resolved": "git+https://github.com/sogaiu/tree-sitter-clojure.git#e43eff80d17cf34852dcd92ca5e6986d23a7040f", "dev": true }, "node_modules/tree-sitter-cpp": { @@ -7425,7 +7425,7 @@ }, "node_modules/tree-sitter-gleam": { "version": "1.0.0", - "resolved": "git+ssh://git@github.com/gleam-lang/tree-sitter-gleam.git#c610c282ef73f830d80c1f0999dce8e83f024ef5", + "resolved": "git+https://github.com/gleam-lang/tree-sitter-gleam.git#c610c282ef73f830d80c1f0999dce8e83f024ef5", "integrity": "sha512-ZpX7xyHHP5uWbtG1agroI1IZNoCAgsdhZplm8CUAbhuqOZ7D82hToeeWO3JM+VUPC9D2GAA5Uv2VpNWTmTgtlQ==", "dev": true, "license": "Apache-2.0", From 0cacb7a6f94365798d7f839904ae8f5b1a7e9794 Mon Sep 17 00:00:00 2001 From: carlos-alm Date: Wed, 17 Jun 2026 20:29:10 -0600 Subject: [PATCH 2/2] fix(ci): add --add flag to second git config insteadOf to prevent silent overwrite --- .github/workflows/ci.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 588a07ea..175969b2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -33,7 +33,7 @@ jobs: shell: bash run: | git config --global url."https://github.com/".insteadOf "ssh://git@github.com/" - git config --global url."https://github.com/".insteadOf "git@github.com:" + git config --global --add url."https://github.com/".insteadOf "git@github.com:" for attempt in 1 2 3; do npm install && break if [ "$attempt" -lt 3 ]; then @@ -118,7 +118,7 @@ jobs: shell: bash run: | git config --global url."https://github.com/".insteadOf "ssh://git@github.com/" - git config --global url."https://github.com/".insteadOf "git@github.com:" + git config --global --add url."https://github.com/".insteadOf "git@github.com:" for attempt in 1 2 3; do npm install && break if [ "$attempt" -lt 3 ]; then @@ -159,7 +159,7 @@ jobs: shell: bash run: | git config --global url."https://github.com/".insteadOf "ssh://git@github.com/" - git config --global url."https://github.com/".insteadOf "git@github.com:" + git config --global --add url."https://github.com/".insteadOf "git@github.com:" for attempt in 1 2 3; do npm install && break if [ "$attempt" -lt 3 ]; then @@ -245,7 +245,7 @@ jobs: shell: bash run: | git config --global url."https://github.com/".insteadOf "ssh://git@github.com/" - git config --global url."https://github.com/".insteadOf "git@github.com:" + git config --global --add url."https://github.com/".insteadOf "git@github.com:" for attempt in 1 2 3; do npm install && break if [ "$attempt" -lt 3 ]; then @@ -393,7 +393,7 @@ jobs: shell: bash run: | git config --global url."https://github.com/".insteadOf "ssh://git@github.com/" - git config --global url."https://github.com/".insteadOf "git@github.com:" + git config --global --add url."https://github.com/".insteadOf "git@github.com:" for attempt in 1 2 3; do npm install && break if [ "$attempt" -lt 3 ]; then