浏览代码

feat: add Github Enterprise support (#1926)

Lex 1 年之前
父节点
当前提交
0c31a54dea
共有 5 个文件被更改,包括 22 次插入9 次删除
  1. 7 2
      check_tags.sh
  2. 1 1
      release.sh
  3. 4 1
      stores/snapcraft/check_version.sh
  4. 1 1
      update_qualityjson.sh
  5. 9 4
      update_version.sh

+ 7 - 2
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}"
 

+ 1 - 1
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

+ 4 - 1
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

+ 1 - 1
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

+ 9 - 4
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 <filename>.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