#!/usr/bin/env bash WEBHOOK_URL="https://open.larksuite.com/open-apis/bot/v2/hook/3acf274a-1828-494b-a4a2-a3185f5e466d" set -u EVENT="" SERVICE_NAME="" NAMESPACE="" IMAGE_REPO="" IMAGE_TAG="" VERSION_TAG="" while [[ $# -gt 0 ]]; do case "$1" in --event) EVENT="$2" shift 2 ;; --service-name) SERVICE_NAME="$2" shift 2 ;; --namespace) NAMESPACE="$2" shift 2 ;; --image-repo) IMAGE_REPO="$2" shift 2 ;; --image-tag) IMAGE_TAG="$2" shift 2 ;; --version-tag) VERSION_TAG="$2" shift 2 ;; *) echo "Unknown argument: $1" exit 1 ;; esac done escape_json() { python3 -c 'import json,sys; print(json.dumps(sys.stdin.read())[1:-1])' } commit_message() { git log -1 --pretty=%s } header_color() { case "$CIRCLE_BRANCH" in dev) echo "green" ;; staging) echo "blue" ;; prod) echo "red" ;; onprem-dev) echo "orange" ;; onprem-release) echo "purple" ;; *) echo "grey" ;; esac } build_deploy_payload() { local color="$1" local short_sha="${CIRCLE_SHA1:0:8}" local message local username local branch local job local service_name local namespace local image local commit local full_sha message=$(commit_message | escape_json) username=$(printf '%s' "$CIRCLE_USERNAME" | escape_json) branch=$(printf '%s' "$CIRCLE_BRANCH" | escape_json) job=$(printf '%s' "$CIRCLE_JOB" | escape_json) service_name=$(printf '%s' "$SERVICE_NAME" | escape_json) namespace=$(printf '%s' "$NAMESPACE" | escape_json) if [[ -n "$IMAGE_REPO" && -n "$VERSION_TAG" ]]; then image=$(printf '%s' "$IMAGE_REPO:$VERSION_TAG" | escape_json) else image="-" fi commit=$(printf '%s' "$short_sha" | escape_json) full_sha=$(printf '%s' "$CIRCLE_SHA1" | escape_json) cat <