#!/usr/bin/env bash # Halb-/Vollautomatik: GitLab-Issue "Neues Wissen" -> tools.yaml-Eintrag -> MR (mit Vorschau). # Voraussetzungen: glab (GitLab CLI) eingeloggt, python-venv aktiv, CONFLUENCE_* gesetzt. # # Aufruf: scripts/issue_to_mr.sh # Wiring-Optionen: manuell durch Reviewer ODER GitLab-Webhook (Issue-Event) ODER # scheduled Job, der offene Issues mit Label "neues-wissen" abarbeitet. set -euo pipefail ISSUE_ID="${1:?Usage: issue_to_mr.sh }" BRANCH="wissen/issue-${ISSUE_ID}" echo "1) Issue ${ISSUE_ID} lesen und Eintrag erzeugen ..." glab issue view "${ISSUE_ID}" --output json | python -c 'import sys,json;print(json.load(sys.stdin).get("description",""))' \ | python scripts/issue_to_source.py --append echo "2) Branch + Commit ..." git checkout -B "${BRANCH}" git add config/tools.yaml git commit -m "feat(wissen): neue Quelle aus Issue #${ISSUE_ID}" echo "3) Vorschau erzeugen (nur die neue Quelle) ..." # Tool-Slug = letzter hinzugefuegter id-Eintrag TOOL=$(grep -E '^\s*- id:' config/tools.yaml | tail -1 | sed 's/.*id:\s*//') python -m src.main --config config/tools.yaml --data preview --only "${TOOL}" || true echo "4) MR anlegen (Vorschau-Hinweis im Body) ..." git push -u origin "${BRANCH}" glab mr create --fill --yes \ --description "Automatisch aus Issue #${ISSUE_ID}. Vorschau-Markdown siehe CI-Job 'preview' (PREVIEW_ONLY=${TOOL}). Bitte pruefen und mergen = Freigabe." \ --label "neues-wissen" || echo "MR-Anlage manuell pruefen (glab nicht verfuegbar?)" echo "Fertig. Reviewer prueft Vorschau im MR und merged (= Freigabe)."