fix: use direct HTTPS URL for libsignal dependency

The root cause was simple: Yarn converts git+https:// to SSH.

Solution: Change package.json to use direct HTTPS URL
- Before: "git+https://github.com/whiskeysockets/libsignal-node"
- After: "https://github.com/whiskeysockets/libsignal-node.git"

This eliminates SSH conversion completely and works with all package managers.

Also simplified workflow by removing unnecessary workarounds:
- Removed temporary package.json patching step
- Removed retry logic
- Restored simple 'yarn install --immutable'

Clean, permanent solution. 🎯
This commit is contained in:
Claude
2026-02-11 04:02:26 +00:00
parent 9a37c3ad52
commit 8ac374c133
2 changed files with 4 additions and 22 deletions
+3 -21
View File
@@ -61,30 +61,12 @@ jobs:
node_modules
.yarn/cache
.yarn/install-state.gz
# Include git config in cache key to bust cache when git rules change
key: ${{ runner.os }}-yarn-https-v3-${{ hashFiles('**/yarn.lock') }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-https-v3-
- name: Fix libsignal URL for Yarn
run: |
# Yarn 4.x ignores git config and converts git+https:// to SSH
# Temporarily replace git+https:// with direct HTTPS tarball URL
echo "🔧 Patching package.json to use HTTPS instead of git+https://"
sed -i 's|"libsignal": "git+https://github.com/whiskeysockets/libsignal-node"|"libsignal": "https://github.com/whiskeysockets/libsignal-node/archive/refs/heads/master.tar.gz"|g' package.json
# Verify change
grep libsignal package.json
${{ runner.os }}-yarn-
- name: Install packages
run: |
# Try install with immutable mode first
if ! yarn install --immutable; then
echo "⚠️ Immutable install failed. This might be due to SSH references in cache."
echo "Clearing node_modules and retrying without immutable mode..."
rm -rf node_modules
yarn install
fi
run: yarn install --immutable
- name: Update WhatsApp Web Version
id: update_version