import: contenido inicial de la skill gitea
This commit is contained in:
57
scripts/pr-comments.sh
Normal file
57
scripts/pr-comments.sh
Normal file
@@ -0,0 +1,57 @@
|
||||
#!/usr/bin/env bash
|
||||
# gitea skill — leer comentarios de un PR.
|
||||
#
|
||||
# Uso:
|
||||
# pr-comments.sh <owner>/<repo> <number>
|
||||
# pr-comments.sh <repo> <number>
|
||||
#
|
||||
# Los PRs son issues con un flag "pull_request" en Gitea — los comentarios viven
|
||||
# en /issues/{n}/comments, no en /pulls/{n}/comments. Para review-comments
|
||||
# (sobre líneas de código) ver query.sh /repos/.../pulls/{n}/reviews.
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
SKILL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
||||
QUERY="$SKILL_DIR/scripts/query.sh"
|
||||
|
||||
if [[ $# -lt 2 ]]; then
|
||||
cat >&2 <<EOF
|
||||
Uso: pr-comments.sh <owner>/<repo> <number>
|
||||
pr-comments.sh <repo> <number>
|
||||
EOF
|
||||
exit 2
|
||||
fi
|
||||
|
||||
repo_arg="$1"
|
||||
number="$2"
|
||||
|
||||
if [[ "$repo_arg" == */* ]]; then
|
||||
owner="${repo_arg%%/*}"
|
||||
repo="${repo_arg##*/}"
|
||||
else
|
||||
set -a; source "$SKILL_DIR/.env"; set +a
|
||||
owner="${GITEA_DEFAULT_OWNER:?owner no especificado y GITEA_DEFAULT_OWNER vacío}"
|
||||
repo="$repo_arg"
|
||||
fi
|
||||
|
||||
resp="$("$QUERY" "/repos/${owner}/${repo}/issues/${number}/comments")"
|
||||
|
||||
if [[ "${resp:0:1}" != "[" ]]; then
|
||||
echo "ERROR: respuesta inesperada:" >&2
|
||||
echo "$resp" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "$resp" | PYTHONIOENCODING=utf-8 python -c "
|
||||
import json, sys
|
||||
comments = json.load(sys.stdin)
|
||||
print(f'{len(comments)} comentario(s) en PR #$number ($owner/$repo):')
|
||||
print()
|
||||
for c in comments:
|
||||
user = (c.get('user') or {}).get('login','?')
|
||||
created = (c.get('created_at') or '')[:19].replace('T',' ')
|
||||
body = (c.get('body') or '').strip()
|
||||
print(f'─── {user} @ {created} ───')
|
||||
print(body)
|
||||
print()
|
||||
"
|
||||
Reference in New Issue
Block a user