#!/usr/bin/env bash
set -euo pipefail

path="${1:-}"
case "$path" in
  /rest/api/3/myself|/rest/api/3/issue/*|/rest/servicedeskapi/request/*) ;;
  *)
    echo "usage: jira-get.sh /rest/api/3/issue/..." >&2
    exit 2
    ;;
esac

if [[ "$path" == *$'\n'* || "$path" == *$'\r'* ]]; then
  echo "invalid Jira path" >&2
  exit 2
fi

: "${JIRA_USERNAME:?JIRA_USERNAME is unavailable}"
: "${JIRA_API_TOKEN:?JIRA_API_TOKEN is unavailable}"

base_url="${JIRA_BASE_URL:-https://tidb.atlassian.net}"
curl --fail --silent --show-error \
  --request GET \
  --user "${JIRA_USERNAME}:${JIRA_API_TOKEN}" \
  --header 'Accept: application/json' \
  "${base_url%/}${path}"
