|
|
@@ -0,0 +1,75 @@
|
|
|
+#!/usr/bin/env bash
|
|
|
+
|
|
|
+env_file_path="docker/.env"
|
|
|
+ngrok_url=""
|
|
|
+
|
|
|
+command -v ngrok >/dev/null 2>&1 || { echo "[ERROR] ngrok is required to test Preview Environments locally" >&2; exit 1; }
|
|
|
+
|
|
|
+if [ -f "$env_file_path" ]; then
|
|
|
+ env_vars="$(cat "$env_file_path" | grep -v "^#" | sed -r "/^\s*$/d" | sed "s/\#.*//")"
|
|
|
+ IFS="="
|
|
|
+ serverURLSet=0
|
|
|
+ githubAppClientIDSet=0
|
|
|
+ githubAppClientSecretSet=0
|
|
|
+ githubAppWebhookSecretSet=0
|
|
|
+ githubAppNameSet=0
|
|
|
+ githubAppIDSet=0
|
|
|
+ githubAppSecretPathSet=0
|
|
|
+ githubIncomingWebhookSecretSet=0
|
|
|
+ while read -r k v; do
|
|
|
+ if [[ "$k" == "SERVER_URL" ]]; then
|
|
|
+ if [[ "$v" != *"ngrok.io"* ]]; then
|
|
|
+ echo "[ERROR] SERVER_URL must be set to an ngrok.io URL."
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+
|
|
|
+ serverURLSet=1
|
|
|
+ ngrok_url="$v"
|
|
|
+ elif [[ "$k" == "GITHUB_APP_CLIENT_ID" ]]; then
|
|
|
+ githubAppClientIDSet=1
|
|
|
+ elif [[ "$k" == "GITHUB_APP_CLIENT_SECRET" ]]; then
|
|
|
+ githubAppClientSecretSet=1
|
|
|
+ elif [[ "$k" == "GITHUB_APP_WEBHOOK_SECRET" ]]; then
|
|
|
+ githubAppWebhookSecretSet=1
|
|
|
+ elif [[ "$k" == "GITHUB_APP_NAME" ]]; then
|
|
|
+ githubAppNameSet=1
|
|
|
+ elif [[ "$k" == "GITHUB_APP_ID" ]]; then
|
|
|
+ githubAppIDSet=1
|
|
|
+ elif [[ "$k" == "GITHUB_APP_SECRET_PATH" ]]; then
|
|
|
+ githubAppSecretPathSet=1
|
|
|
+ elif [[ "$k" == "GITHUB_INCOMING_WEBHOOK_SECRET" ]]; then
|
|
|
+ githubIncomingWebhookSecretSet=1
|
|
|
+ fi
|
|
|
+ done <<< "$env_vars"
|
|
|
+
|
|
|
+ if [[ "$serverURLSet" == "0" ]]; then
|
|
|
+ echo "[ERROR] SERVER_URL must be set to an ngrok.io URL."
|
|
|
+ exit 1
|
|
|
+ elif [[ "$githubAppClientIDSet" == 0 ]]; then
|
|
|
+ echo "[ERROR] GITHUB_APP_CLIENT_ID must be set"
|
|
|
+ exit 1
|
|
|
+ elif [[ "$githubAppClientSecretSet" == 0 ]]; then
|
|
|
+ echo "[ERROR] GITHUB_APP_CLIENT_SECRET must be set"
|
|
|
+ exit 1
|
|
|
+ elif [[ "$githubAppWebhookSecretSet" == 0 ]]; then
|
|
|
+ echo "[ERROR] GITHUB_APP_WEBHOOK_SECRET must be set"
|
|
|
+ exit 1
|
|
|
+ elif [[ "$githubAppNameSet" == 0 ]]; then
|
|
|
+ echo "[ERROR] GITHUB_APP_NAME must be set"
|
|
|
+ exit 1
|
|
|
+ elif [[ "$githubAppIDSet" == 0 ]]; then
|
|
|
+ echo "[ERROR] GITHUB_APP_ID must be set"
|
|
|
+ exit 1
|
|
|
+ elif [[ "$githubAppSecretPathSet" == 0 ]]; then
|
|
|
+ echo "[ERROR] GITHUB_APP_SECRET_PATH must be set"
|
|
|
+ exit 1
|
|
|
+ elif [[ "$githubIncomingWebhookSecretSet" == 0 ]]; then
|
|
|
+ echo "[ERROR] GITHUB_INCOMING_WEBHOOK_SECRET must be set"
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+else
|
|
|
+ echo "[ERROR] docker/.env should be set with the required variables"
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+echo "[SUCCESS] All required variables are set. MAKE SURE your GitHub app has all URLs set to $ngrok_url."
|