Files
upstream-mirror a774ac673a
Some checks failed
Deploy analytics worker / Deploy analytics worker to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
i18n upload strings / Upload latest strings (push) Failing after 1s
Deploy bemo / Deploy bemo to ${{ (github.ref == 'refs/heads/bemo-production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Failing after 1s
Deploy grafana resources / ${{ github.event_name == 'push' && 'Deploy grafana resources' || 'Validate grafana resources (dry run)' }} (push) Failing after 0s
End to end tests (dotcom) / Check for relevant changes (push) Failing after 0s
End to end tests (examples) / Check for relevant changes (push) Failing after 0s
End to end tests (mermaid readability) / Check for relevant changes (push) Failing after 1s
End to end tests (perf) / Check for relevant changes (push) Failing after 0s
Publish editor extensions / Publish editor extensions (push) Failing after 1s
Publish SDK packages / Remove the publish-packages label (push) Has been skipped
Checks / Tests & checks (push) Has been cancelled
Checks / Build all projects (push) Has been cancelled
Deploy templates / Deploy templates (push) Has been cancelled
End to end tests (dotcom) / End to end tests (dotcom) (push) Has been cancelled
End to end tests (mermaid readability) / End to end tests (mermaid readability) (push) Has been cancelled
End to end tests (perf) / End to end tests (perf) (push) Has been cancelled
Deploy .com / Deploy dotcom to ${{ (github.ref == 'refs/heads/production' && 'production') || (github.ref == 'refs/heads/main' && 'staging') || 'preview' }} (push) Has been cancelled
End to end tests (examples) / End to end tests (examples) (push) Has been cancelled
Publish SDK packages / Publish SDK packages (push) Has been cancelled
Publish SDK packages / Tell user released version (push) Has been cancelled
Publish SDK packages / Publishes code templates to separate repositories (push) Has been cancelled
Publish SDK packages / Deploys the template demos with the new SDK version (push) Has been cancelled
snapshot of https://github.com/tldraw/tldraw.git (main, 2026-09-23; blobs > 131072B omitted)
2026-09-23 16:12:52 +05:00

59 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Batch fetch PR details for changelog categorization
#
# Usage: ./fetch-pr-batch.sh <pr1> <pr2> ...
# or: echo "1234 5678" | ./fetch-pr-batch.sh
# Output: JSON array of PR details
set -e
# Collect PR numbers from arguments or stdin
prs=()
if [ $# -gt 0 ]; then
prs=("$@")
else
while read -r line; do
for pr in $line; do
prs+=("$pr")
done
done
fi
if [ ${#prs[@]} -eq 0 ]; then
echo "Usage: $0 <pr1> <pr2> ..." >&2
echo " or: echo '1234 5678' | $0" >&2
exit 1
fi
# Build GraphQL query for batch fetching
# This is much faster than individual gh pr view calls
query='query($owner: String!, $repo: String!) {'
for i in "${!prs[@]}"; do
pr="${prs[$i]}"
query+="
pr$i: repository(owner: \$owner, name: \$repo) {
pullRequest(number: $pr) {
number
title
author { login }
mergedAt
labels(first: 10) { nodes { name } }
body
}
}"
done
query+='}'
# Execute query
result=$(gh api graphql -f query="$query" -f owner="tldraw" -f repo="tldraw" 2>/dev/null)
# Transform into cleaner JSON array
echo "$result" | jq '[.data | to_entries[] | .value.pullRequest | select(. != null) | {
number: .number,
title: .title,
author: .author.login,
merged_at: .mergedAt,
labels: [.labels.nodes[].name],
body: .body
}] | sort_by(.number) | reverse'