From 0c31a54dead4b68e337fef0d40a1a688f4e56c7f Mon Sep 17 00:00:00 2001 From: Lex <115115137+lex-ibm@users.noreply.github.com> Date: Tue, 11 Jun 2024 12:30:12 -0500 Subject: [PATCH] feat: add Github Enterprise support (#1926) --- check_tags.sh | 9 +++++++-- release.sh | 2 +- stores/snapcraft/check_version.sh | 5 ++++- update_qualityjson.sh | 2 +- update_version.sh | 13 +++++++++---- 5 files changed, 22 insertions(+), 9 deletions(-) diff --git a/check_tags.sh b/check_tags.sh index bea9184..bac519e 100755 --- a/check_tags.sh +++ b/check_tags.sh @@ -3,17 +3,22 @@ set -e -if [[ -z "${GITHUB_TOKEN}" ]]; then +if [[ -z "${GH_TOKEN}" ]] && [[ -z "${GITHUB_TOKEN}" ]] && [[ -z "${GH_ENTERPRISE_TOKEN}" ]] && [[ -z "${GITHUB_ENTERPRISE_TOKEN}" ]]; then echo "Will not build because no GITHUB_TOKEN defined" exit 0 +else + GITHUB_TOKEN="${GH_TOKEN:-${GITHUB_TOKEN:-${GH_ENTERPRISE_TOKEN:-${GITHUB_ENTERPRISE_TOKEN}}}}" fi +# Support for GitHub Enterprise +GH_HOST="${GH_HOST:-github.com}" + APP_NAME_LC="$( echo "${APP_NAME}" | awk '{print tolower($0)}' )" if [[ "${SHOULD_DEPLOY}" == "no" ]]; then ASSETS="null" else - GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" "https://api.github.com/repos/${ASSETS_REPOSITORY}/releases/latest" ) + GITHUB_RESPONSE=$( curl -s -H "Authorization: token ${GITHUB_TOKEN}" "https://api.${GH_HOST}/repos/${ASSETS_REPOSITORY}/releases/latest" ) LATEST_VERSION=$( echo "${GITHUB_RESPONSE}" | jq -c -r '.tag_name' ) RECHECK_ASSETS="${SHOULD_BUILD}" diff --git a/release.sh b/release.sh index 314f3fd..c03eee6 100755 --- a/release.sh +++ b/release.sh @@ -2,7 +2,7 @@ set -e -if [[ -z "${GITHUB_TOKEN}" ]]; then +if [[ -z "${GH_TOKEN}" ]] && [[ -z "${GITHUB_TOKEN}" ]] && [[ -z "${GH_ENTERPRISE_TOKEN}" ]] && [[ -z "${GITHUB_ENTERPRISE_TOKEN}" ]]; then echo "Will not release because no GITHUB_TOKEN defined" exit fi diff --git a/stores/snapcraft/check_version.sh b/stores/snapcraft/check_version.sh index c0f23f0..4585160 100755 --- a/stores/snapcraft/check_version.sh +++ b/stores/snapcraft/check_version.sh @@ -7,10 +7,13 @@ export SHOULD_BUILD="no" export SHOULD_DEPLOY_TO_RELEASE="no" export SHOULD_DEPLOY_TO_STORE="no" +# Support for GitHub Enterprise +GH_HOST="${GH_HOST:-github.com}" + if [[ "${GENERATE_ASSETS}" == "true" ]]; then export SHOULD_BUILD="yes" else - wget --quiet "https://api.github.com/repos/${ASSETS_REPOSITORY}/releases" -O gh_latest.json + wget --quiet "https://api.${GH_HOST}/repos/${ASSETS_REPOSITORY}/releases" -O gh_latest.json SNAP_URL=$( jq -r 'map(select(.tag_name == "'"${RELEASE_VERSION}"'"))|first.assets[].browser_download_url|select(endswith("'"_${ARCHITECTURE}.snap"'"))' gh_latest.json ) if [[ -z "${SNAP_URL}" ]]; then diff --git a/update_qualityjson.sh b/update_qualityjson.sh index 06235b3..b948cf9 100755 --- a/update_qualityjson.sh +++ b/update_qualityjson.sh @@ -7,7 +7,7 @@ if [[ "${SHOULD_BUILD}" != "yes" ]]; then exit 0 fi -if [[ -z "${GITHUB_TOKEN}" ]]; then +if [[ -z "${GH_TOKEN}" ]] && [[ -z "${GITHUB_TOKEN}" ]] && [[ -z "${GH_ENTERPRISE_TOKEN}" ]] && [[ -z "${GITHUB_ENTERPRISE_TOKEN}" ]]; then echo "Will not update ${VSCODE_QUALITY}.json because no GITHUB_TOKEN defined" exit 0 fi diff --git a/update_version.sh b/update_version.sh index 481cc14..d2db6b7 100755 --- a/update_version.sh +++ b/update_version.sh @@ -8,11 +8,16 @@ if [[ "${SHOULD_BUILD}" != "yes" && "${FORCE_UPDATE}" != "true" ]]; then exit 0 fi -if [[ -z "${GITHUB_TOKEN}" ]]; then +if [[ -z "${GH_TOKEN}" ]] && [[ -z "${GITHUB_TOKEN}" ]] && [[ -z "${GH_ENTERPRISE_TOKEN}" ]] && [[ -z "${GITHUB_ENTERPRISE_TOKEN}" ]]; then echo "Will not update version JSON because no GITHUB_TOKEN defined" exit 0 +else + GITHUB_TOKEN="${GH_TOKEN:-${GITHUB_TOKEN:-${GH_ENTERPRISE_TOKEN:-${GITHUB_ENTERPRISE_TOKEN}}}}" fi +# Support for GitHub Enterprise +GH_HOST="${GH_HOST:-github.com}" + if [[ "${FORCE_UPDATE}" == "true" ]]; then . version.sh fi @@ -47,7 +52,7 @@ fi # `sha256hash` in .sha256 REPOSITORY_NAME="${VERSIONS_REPOSITORY/*\//}" -URL_BASE="https://github.com/${ASSETS_REPOSITORY}/releases/download/${RELEASE_VERSION}" +URL_BASE="https://${GH_HOST}/${ASSETS_REPOSITORY}/releases/download/${RELEASE_VERSION}" generateJson() { local url name version productVersion sha1hash sha256hash timestamp @@ -115,12 +120,12 @@ updateLatestVersion() { # init versions repo for later commiting + pushing the json file to it # thank you https://www.vinaygopinath.me/blog/tech/commit-to-master-branch-on-github-using-travis-ci/ -git clone "https://github.com/${VERSIONS_REPOSITORY}.git" +git clone "https://${GH_HOST}/${VERSIONS_REPOSITORY}.git" cd "${REPOSITORY_NAME}" || { echo "'${REPOSITORY_NAME}' dir not found"; exit 1; } git config user.email "$( echo "${GITHUB_USERNAME}" | awk '{print tolower($0)}' )-ci@not-real.com" git config user.name "${GITHUB_USERNAME} CI" git remote rm origin -git remote add origin "https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@github.com/${VERSIONS_REPOSITORY}.git" &> /dev/null +git remote add origin "https://${GITHUB_USERNAME}:${GITHUB_TOKEN}@${GH_HOST}/${VERSIONS_REPOSITORY}.git" &> /dev/null cd .. if [[ "${OS_NAME}" == "osx" ]]; then