this repo has no description
1#!/bin/bash 2set -o errexit 3set -o nounset 4set -o pipefail 5 6source "$(dirname "$0")/../pds.env" 7 8# PDS_HOSTNAME= 9 10# curl a URL and fail if the request fails. 11function curl_cmd_get { 12 curl --fail --silent --show-error "$@" 13} 14 15# curl a URL and fail if the request fails. 16function curl_cmd_post { 17 curl --fail --silent --show-error --request POST --header "Content-Type: application/json" "$@" 18} 19 20# curl a URL but do not fail if the request fails. 21function curl_cmd_post_nofail { 22 curl --silent --show-error --request POST --header "Content-Type: application/json" "$@" 23} 24 25USERNAME="${1:-}" 26 27if [[ "${USERNAME}" == "" ]]; then 28 read -p "Enter a username: " USERNAME 29fi 30 31if [[ "${USERNAME}" == "" ]]; then 32 echo "ERROR: missing USERNAME parameter." >/dev/stderr 33 echo "Usage: $0 ${SUBCOMMAND} <USERNAME>" >/dev/stderr 34 exit 1 35fi 36 37SESS_RESULT="$(curl_cmd_post \ 38 --data "$(cat <<EOF 39{ 40 "identifier": "$USERNAME", 41 "password": "password" 42} 43EOF 44 )" \ 45 https://pds.tngl.boltless.dev/xrpc/com.atproto.server.createSession 46)" 47 48echo $SESS_RESULT | jq 49 50DID="$(echo $SESS_RESULT | jq --raw-output '.did')" 51ACCESS_JWT="$(echo $SESS_RESULT | jq --raw-output '.accessJwt')" 52 53function add_label_def { 54 local color=$1 55 local name=$2 56 echo $color 57 echo $name 58 local json_payload=$(cat <<EOF 59{ 60 "repo": "$DID", 61 "collection": "sh.tangled.label.definition", 62 "rkey": "$name", 63 "record": { 64 "name": "$name", 65 "color": "$color", 66 "scope": ["sh.tangled.repo.issue"], 67 "multiple": false, 68 "createdAt": "2025-09-22T11:14:35+01:00", 69 "valueType": {"type": "null", "format": "any"} 70 } 71} 72EOF 73) 74 echo $json_payload 75 echo $json_payload | jq 76 RESULT="$(curl_cmd_post \ 77 --data "$json_payload" \ 78 -H "Authorization: Bearer ${ACCESS_JWT}" \ 79 "https://${PDS_HOSTNAME}/xrpc/com.atproto.repo.createRecord")" 80 echo $RESULT | jq 81} 82 83add_label_def '#64748b' 'wontfix' 84add_label_def '#8B5CF6' 'good-first-issue' 85add_label_def '#ef4444' 'duplicate' 86add_label_def '#06b6d4' 'documentation' 87json_payload=$(cat <<EOF 88{ 89 "repo": "$DID", 90 "collection": "sh.tangled.label.definition", 91 "rkey": "assignee", 92 "record": { 93 "name": "assignee", 94 "color": "#10B981", 95 "scope": ["sh.tangled.repo.issue", "sh.tangled.repo.pull"], 96 "multiple": false, 97 "createdAt": "2025-09-22T11:14:35+01:00", 98 "valueType": {"type": "string", "format": "did"} 99 } 100} 101EOF 102) 103curl_cmd_post \ 104 --data "$json_payload" \ 105 -H "Authorization: Bearer ${ACCESS_JWT}" \ 106 "https://${PDS_HOSTNAME}/xrpc/com.atproto.repo.createRecord"