From 65244487de1b1899451d989d281d53a11b3106f1 Mon Sep 17 00:00:00 2001 From: Misha Kushakov Date: Fri, 14 Feb 2025 18:05:54 +0100 Subject: [PATCH 1/2] fix: use curl instead of github-cli --- setup.sh | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/setup.sh b/setup.sh index 3707528..54a83c1 100755 --- a/setup.sh +++ b/setup.sh @@ -14,7 +14,7 @@ info() { } # Check for required commands -command -v gh >/dev/null 2>&1 || error "GitHub CLI (gh) is required but not installed" +command -v curl >/dev/null 2>&1 || error "curl is required but not installed" command -v jq >/dev/null 2>&1 || error "jq is required but not installed" # Get inputs @@ -53,13 +53,21 @@ case "${ARCH}" in ;; esac +invoke_curl() { + curl -sL \ + -H "Accept: application/vnd.github+json" \ + -H "Authorization: Bearer ${GH_TOKEN}" \ + -H "X-GitHub-Api-Version: 2022-11-28" \ + "https://api.github.com/$?" +} + # Get release information using GitHub CLI -if [ "${VERSION}" = "latest" ]; then - RELEASE_DATA=$(gh api "repos/${OWNER}/${REPO}/releases/latest") +if [[ "${VERSION}" = "latest" ]]; then + RELEASE_DATA=$(invoke_curl "repos/${OWNER}/${REPO}/releases/latest") VERSION=$(jq -r '.tag_name' <<< "${RELEASE_DATA}") info "Resolved latest version: ${VERSION}" else - RELEASE_DATA=$(gh api "repos/${OWNER}/${REPO}/releases/tags/${VERSION}") + RELEASE_DATA=$(invoke_curl "repos/${OWNER}/${REPO}/releases/tags/${VERSION}") fi # Create cache directory From 88729ce2d2920b267adca3df12c190b6f91e68cd Mon Sep 17 00:00:00 2001 From: Misha Kushakov Date: Fri, 14 Feb 2025 18:11:54 +0100 Subject: [PATCH 2/2] feat: add test action --- .github/workflows/test.yaml | 19 +++++++++++++++++++ setup.sh | 8 +++++--- 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/test.yaml diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml new file mode 100644 index 0000000..84d7fc7 --- /dev/null +++ b/.github/workflows/test.yaml @@ -0,0 +1,19 @@ +name: Test action + +on: + push: + +jobs: + test: + runs-on: ubuntu-latest + timeout-minutes: 5 + container: + image: ubuntu:20.04 + steps: + - uses: actions/checkout@v4 + - run: apt update && apt install -y curl jq + - uses: ./ + with: + name: cli/cli + tool: gh + - run: gh --version diff --git a/setup.sh b/setup.sh index 54a83c1..54fe58c 100755 --- a/setup.sh +++ b/setup.sh @@ -54,11 +54,11 @@ case "${ARCH}" in esac invoke_curl() { - curl -sL \ + curl -sfL \ -H "Accept: application/vnd.github+json" \ -H "Authorization: Bearer ${GH_TOKEN}" \ -H "X-GitHub-Api-Version: 2022-11-28" \ - "https://api.github.com/$?" + "https://api.github.com/$1" } # Get release information using GitHub CLI @@ -98,7 +98,9 @@ else # Download and extract asset using gh cli info "Fetching ${ASSET_NAME} from ${OWNER}/${REPO}#${VERSION}" - gh release download "${VERSION}" -R "${OWNER}/${REPO}" -p "${ASSET_NAME}" + DOWNLOAD_URL=$(jq -r --arg asset "${ASSET_NAME}" '.assets[] | select(.name == $asset) | .browser_download_url' <<< "${RELEASE_DATA}") + echo "Download URL: ${DOWNLOAD_URL}" + curl -sSL -H "Authorization: token ${GH_TOKEN}" -o "${ASSET_NAME}" "${DOWNLOAD_URL}" if [[ "${ASSET_NAME}" == *.zip ]]; then info "Extracting ${ASSET_NAME}"