This commit is contained in:
team3
2026-05-21 19:53:43 +02:00
parent 0de869f0fd
commit 6cbf1a1dd3
10 changed files with 81 additions and 18 deletions

View File

@@ -1,8 +1,9 @@
#!/bin/bash
# Usage: redmine-fetch <ticket-nr>
# stdout: Issue-JSON + Wiki-JSON (Newline-getrennt; Wiki = leer wenn nicht vorhanden)
# stdout: Issue-JSON + alle Wiki-JSONs deren Titel mit #<ticket-nr> beginnt
# (Newline-getrennt; Wikis = nichts wenn keine Treffer)
# stderr: Hinweis auf Bilder-Speicherort (wenn Bilder vorhanden)
# Side effect: Bilder von Issue + Wiki nach /tmp/redmine-{nr}/
# Side effect: Bilder von Issue + Wikis nach /tmp/redmine-{nr}/
TICKET_NR="$1"
URL="https://servicecenter.mitho-media.de"
@@ -17,8 +18,21 @@ PROJECT_IDENTIFIER=$(curl -s -H "X-Redmine-API-Key: $API_KEY" \
"$URL/projects/$PROJECT_ID.json" \
| python3 -c "import sys,json;print(json.load(sys.stdin)['project']['identifier'])")
WIKI_JSON=$(curl -sf -H "X-Redmine-API-Key: $API_KEY" \
"$URL/projects/$PROJECT_IDENTIFIER/wiki/%23$TICKET_NR.json?include=attachments" || echo "")
WIKI_INDEX=$(curl -sf -H "X-Redmine-API-Key: $API_KEY" \
"$URL/projects/$PROJECT_IDENTIFIER/wiki/index.json" || echo "")
WIKI_TITLES=$(echo "$WIKI_INDEX" | TICKET_NR="$TICKET_NR" python3 -c "
import sys, json, os
try:
pages = json.load(sys.stdin).get('wiki_pages', [])
except Exception:
sys.exit(0)
prefix = '#' + os.environ['TICKET_NR']
for p in pages:
t = p.get('title', '')
if t == prefix or t.startswith(prefix + '_'):
print(t)
")
rm -rf "$ATTACH_DIR"
mkdir -p "$ATTACH_DIR"
@@ -39,10 +53,21 @@ for a in container.get('attachments', []):
}
download_images "$ISSUE_JSON"
download_images "$WIKI_JSON"
WIKI_OUTPUT=""
while IFS= read -r title; do
[ -z "$title" ] && continue
encoded=$(python3 -c "import urllib.parse,sys;print(urllib.parse.quote(sys.argv[1], safe=''))" "$title")
wiki=$(curl -sf -H "X-Redmine-API-Key: $API_KEY" \
"$URL/projects/$PROJECT_IDENTIFIER/wiki/$encoded.json?include=attachments" || echo "")
if [ -n "$wiki" ]; then
download_images "$wiki"
WIKI_OUTPUT="${WIKI_OUTPUT}${wiki}"$'\n'
fi
done <<< "$WIKI_TITLES"
COUNT=$(find "$ATTACH_DIR" -maxdepth 1 -type f 2>/dev/null | wc -l)
[ "$COUNT" -gt 0 ] && echo "$COUNT Bild(er) gespeichert in $ATTACH_DIR" >&2
echo "$ISSUE_JSON"
echo "$WIKI_JSON"
printf '%s' "$WIKI_OUTPUT"