#!/bin/sh
# srht-ticket -- create a sr.ht ticket
set -eu
if [ -z "${1:-}" ] || [ -z "${2:-}" ]; then
echo "Usage: srht-ticket <tracker> <subject> [body]" >&2
exit 1
fi
TRACKER="$1"
SUBJECT="$2"
BODY="${3:-$SUBJECT}"
if command -v hut >/dev/null 2>&1; then
echo "$BODY" | hut todo ticket create -t "$TRACKER" --stdin
else
TOKEN=$(cat ~/.config/srht/token)
SUBJECT_ESC=$(echo "$SUBJECT" | sed 's/"/\\"/g')
BODY_ESC=$(echo "$BODY" | sed 's/"/\\"/g')
# First get tracker ID
TRACKER_ID=$(curl -s --oauth2-bearer "$TOKEN" -H 'Content-Type: application/json' \
-d "{\"query\": \"{ me { tracker(name: \\\"$TRACKER\\\") { id } } }\"}" \
https://todo.sr.ht/query | jq -r '.data.me.tracker.id')
curl -s --oauth2-bearer "$TOKEN" -H 'Content-Type: application/json' \
-d "{\"query\": \"mutation { submitTicket(trackerId: $TRACKER_ID, input: {subject: \\\"$SUBJECT_ESC\\\", body: \\\"$BODY_ESC\\\"}) { id ref subject } }\"}" \
https://todo.sr.ht/query | jq -r '.data.submitTicket | "#\(.ref): \(.subject)"'
fi