- optionales Atlassian-Wiki/Confluence-Feature über `ATLASSIAN_WIKI_*` ergänzt - neue Confluence-Integration (`src/confluence.js`) zum Anlegen von Seiten via REST API - Workflow erweitert: Wiki-Seite mit Ticket-Liste und Xray/Sonar-Links erstellen - Dry-Run-/Status-Handling und Ausgabe der Wiki-URL im Log/Mailtext ergänzt - Konfiguration, `.env.example` und README für Wiki-Optionen erweitert - TeamCity-Skripte (`run-workflow.sh/.ps1`) um Wiki-ENVs ergänzt - Docker-Base-Image auf `ubi9/nodejs-20` umgestellt - Container-Volume-Mounts auf `/opt/app-root/src/report-output` angepasst
3.2 KiB
3.2 KiB
Jira Workflow Automation (NPM + Docker + TeamCity)
Dieses Projekt automatisiert folgenden Ablauf:
- Letzte Jira Tickets anhand einer JQL abfragen.
- Zusammenfassung erzeugen (Status-Verteilung + Ticketliste).
- Neues Jira Ticket in einem anderen Projekt/Board erstellen.
- Optional Xray/Sonar Links und Loesungsversion in den Report aufnehmen.
- Optional eine Atlassian Wiki/Confluence Seite erzeugen.
- HTML-Report erzeugen und optional per E-Mail versenden.
Voraussetzungen
- Node.js 20+
- Docker
- Jira Cloud API Token
- Optional: SMTP Zugangsdaten fuer Mailversand
Lokaler Start
npm install
cp .env.example .env
npm run dry-run
Wenn alles passt:
npm start
Wichtige Umgebungsvariablen
Pflicht:
JIRA_BASE_URLJIRA_USER_EMAILJIRA_API_TOKENJIRA_TARGET_PROJECT_KEYoderJIRA_TARGET_BOARD_ID
Empfohlen:
JIRA_SOURCE_JQL(z. B.project = SRC ORDER BY updated DESC)JIRA_SOURCE_MAX_RESULTS(Default:10)JIRA_TARGET_ISSUE_TYPE(Default:Task)JIRA_TARGET_SUMMARY_PREFIX(Default:Automatischer Jira Report)JIRA_TARGET_LABELS(CSV)SOLUTION_VERSION(setzt auchfixVersionsim Jira Ticket)XRAY_REPORT_URL(optional)SONAR_REPORT_URL(optional)JIRA_DRY_RUN(true/false)OUTPUT_HTML_PATH(Default:report-output/report.html)
Atlassian Wiki / Confluence optional:
ATLASSIAN_WIKI_ENABLED(true/false, Default:false)ATLASSIAN_WIKI_SPACE_KEY(Confluence Space Key, Pflicht wenn aktiviert)ATLASSIAN_WIKI_PARENT_PAGE_ID(optional)ATLASSIAN_WIKI_TITLE_PREFIX(Default:Automatischer Jira Wiki Report)ATLASSIAN_WIKI_BASE_URL(optional, Default:JIRA_BASE_URL)ATLASSIAN_WIKI_USER_EMAIL(optional, Default:JIRA_USER_EMAIL)ATLASSIAN_WIKI_API_TOKEN(optional, Default:JIRA_API_TOKEN)
SMTP optional:
SMTP_ENABLED=trueSMTP_HOST,SMTP_PORT,SMTP_SECURESMTP_USER,SMTP_PASSSMTP_FROM,SMTP_TOSMTP_SUBJECT_PREFIX
Docker Nutzung
Image bauen:
docker build -t its-workflow-npm:local .
Container starten:
docker run --rm --env-file .env -v "$(pwd)/report-output:/opt/app-root/src/report-output" its-workflow-npm:local
TeamCity Integration
Empfohlene Build Steps:
Command Line(Linux Agent):- Script:
sh teamcity/run-workflow.sh
- Script:
- Alternativ
PowerShell(Windows Agent):- Script file:
teamcity/run-workflow.ps1
- Script file:
Lege in TeamCity die Variablen als Parameter vom Typ env.* an, z. B.:
env.JIRA_BASE_URLenv.JIRA_USER_EMAILenv.JIRA_API_TOKEN(als Password Parameter)env.JIRA_SOURCE_JQLenv.JIRA_TARGET_PROJECT_KEYenv.SOLUTION_VERSIONenv.XRAY_REPORT_URLenv.SONAR_REPORT_URLenv.ATLASSIAN_WIKI_ENABLEDenv.ATLASSIAN_WIKI_SPACE_KEYenv.ATLASSIAN_WIKI_PARENT_PAGE_IDenv.SMTP_ENABLEDenv.SMTP_HOST...
Der Report wird im Build-Workspace unter report-output/report.html abgelegt und kann als Build Artifact publiziert werden.
Ablauf im Fehlerfall
- Jira API Fehler werden mit Antwortdetails ausgegeben.
- Bei
SMTP_ENABLED=trueohne vollstaendige SMTP Daten wird der Lauf abgebrochen. - Bei
JIRA_DRY_RUN=truewird kein Ticket erstellt, aber Report + optional Mail erzeugt.