34 lines
1.6 KiB
Bash
Executable File
34 lines
1.6 KiB
Bash
Executable File
#!/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 <ISSUE_ID>
|
|
# 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 <ISSUE_ID>}"
|
|
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)."
|