~kris/dots

srice

ref: e98f3b030dc24445bd55c68d95d2d81933fd68b3 srice/.local/bin/srht-ticket -rw-r--r-- 1.0 KiB
e98f3b03 — Kris Yotam chore: sync local state after restore (push updates, no pull) a month ago
                                                                                
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/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