#!/bin/sh # srht-ticket -- create a sr.ht ticket set -eu if [ -z "${1:-}" ] || [ -z "${2:-}" ]; then echo "Usage: srht-ticket [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