- add npm workflow to fetch recent Jira issues, summarize them, and create a target Jira ticket - generate HTML report and optional SMTP email output - add Docker runtime and TeamCity runner scripts (sh/ps1) - support optional SOLUTION_VERSION, XRAY_REPORT_URL, SONAR_REPORT_URL - map SOLUTION_VERSION to Jira fixVersions on ticket creation - update README and .env.example with new configuration
2.5 KiB
2.5 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.
- 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)
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:/app/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.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.