From b84edd4098231e460eaeb5c6ad9e68283e1dbe8d Mon Sep 17 00:00:00 2001 From: Venkumahanti Subhankar Date: Wed, 26 Aug 2026 10:12:43 +0000 Subject: [PATCH 1/2] fix(github-cli): install binary-only extensions correctly --- src/github-cli/scripts/install-extensions.sh | 16 ++++++++++++---- test/github-cli/install_extensions.sh | 1 + test/github-cli/scenarios.json | 2 +- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/src/github-cli/scripts/install-extensions.sh b/src/github-cli/scripts/install-extensions.sh index f8a893534..0fe3b8581 100644 --- a/src/github-cli/scripts/install-extensions.sh +++ b/src/github-cli/scripts/install-extensions.sh @@ -26,10 +26,12 @@ install_extension() { mkdir -p "${extensions_root}" if [ ! -d "${extensions_root}/${repo_name}" ]; then - git \ - -c credential.helper= \ - -c credential.helper='!gh auth git-credential' \ - clone --depth 1 "https://github.com/${extension}.git" "${extensions_root}/${repo_name}" + if ! gh extension install "${extension}"; then + git \ + -c credential.helper= \ + -c credential.helper='!gh auth git-credential' \ + clone --depth 1 "https://github.com/${extension}.git" "${extensions_root}/${repo_name}" + fi fi } @@ -79,6 +81,12 @@ if [ "$#" -ge 2 ]; then url="${url#ssh://git@github.com/}" url="${url#git@github.com:}" echo "$url" + elif [ -f "$d/manifest.yml" ]; then + owner="$(sed -n 's/^owner: //p' "$d/manifest.yml")" + name="$(sed -n 's/^name: //p' "$d/manifest.yml")" + if [ -n "$owner" ] && [ -n "$name" ]; then + echo "$owner/$name" + fi fi done fi diff --git a/test/github-cli/install_extensions.sh b/test/github-cli/install_extensions.sh index 78cb126f9..a12f562b3 100644 --- a/test/github-cli/install_extensions.sh +++ b/test/github-cli/install_extensions.sh @@ -9,6 +9,7 @@ check "gh-version" gh --version check "gh-extension-installed" gh extension list | grep -q 'dlvhdr/gh-dash' check "gh-extension-installed-2" gh extension list | grep -q 'github/gh-copilot' +check "gh-aw-runs" gh aw version # Report result reportResults diff --git a/test/github-cli/scenarios.json b/test/github-cli/scenarios.json index eafee3c59..e8b842f96 100644 --- a/test/github-cli/scenarios.json +++ b/test/github-cli/scenarios.json @@ -13,7 +13,7 @@ "features": { "github-cli": { "version": "latest", - "extensions": "dlvhdr/gh-dash,github/gh-copilot" + "extensions": "dlvhdr/gh-dash,github/gh-copilot,github/gh-aw" } } } From 4bb8d2c99e64c2dd5a2e1ae23571116c63b80976 Mon Sep 17 00:00:00 2001 From: Venkumahanti Subhankar Date: Wed, 26 Aug 2026 12:04:21 +0000 Subject: [PATCH 2/2] fix: regex parsing --- src/github-cli/scripts/install-extensions.sh | 4 ++-- test/github-cli/install_extensions.sh | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/github-cli/scripts/install-extensions.sh b/src/github-cli/scripts/install-extensions.sh index 0fe3b8581..05285aa7b 100644 --- a/src/github-cli/scripts/install-extensions.sh +++ b/src/github-cli/scripts/install-extensions.sh @@ -82,8 +82,8 @@ if [ "$#" -ge 2 ]; then url="${url#git@github.com:}" echo "$url" elif [ -f "$d/manifest.yml" ]; then - owner="$(sed -n 's/^owner: //p' "$d/manifest.yml")" - name="$(sed -n 's/^name: //p' "$d/manifest.yml")" + owner="$(sed -nE 's/^[[:space:]]*owner:[[:space:]]*"?([^"#]+)"?.*$/\1/p' "$d/manifest.yml" | sed -n '1p')" + name="$(sed -nE 's/^[[:space:]]*name:[[:space:]]*"?([^"#]+)"?.*$/\1/p' "$d/manifest.yml" | sed -n '1p')" if [ -n "$owner" ] && [ -n "$name" ]; then echo "$owner/$name" fi diff --git a/test/github-cli/install_extensions.sh b/test/github-cli/install_extensions.sh index a12f562b3..1538ff3f2 100644 --- a/test/github-cli/install_extensions.sh +++ b/test/github-cli/install_extensions.sh @@ -9,6 +9,7 @@ check "gh-version" gh --version check "gh-extension-installed" gh extension list | grep -q 'dlvhdr/gh-dash' check "gh-extension-installed-2" gh extension list | grep -q 'github/gh-copilot' +check "gh-extension-installed-3" gh extension list | grep -q 'github/gh-aw' check "gh-aw-runs" gh aw version # Report result