main
- Jira Core API-Aufrufe von `rest/api/3` auf `rest/api/2` umgestellt - Ticket-Schließung um JQL-basierte Selektion erweitert: - `JIRA_CLOSE_JQL` - `JIRA_CLOSE_JQL_MAX_RESULTS` (Default: 100) - Kombination aus expliziten Keys und per JQL gefundenen Keys implementiert (dedupliziert) - Optionales Setzen der Resolution beim Transition-Call ergänzt: - `JIRA_CLOSE_RESOLUTION_NAME` - Workflow-Logging für Close-JQL, gefundene Tickets und Resolution erweitert - Config/Help um neue Close-Parameter ergänzt - `.env.example` und README mit neuer Konfiguration aktualisiert - TeamCity-Skripte (`run-workflow.sh`, `run-workflow.ps1`) um neue ENV-Variablen ergänzt
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)JIRA_CLOSE_ISSUE_KEYS(CSV, optional; z. B.ABC-1,ABC-2)JIRA_CLOSE_JQL(optional; Tickets fuer Schliessung per JQL ermitteln)JIRA_CLOSE_JQL_MAX_RESULTS(optional; Default:100)JIRA_CLOSE_ALLOWED_STATUSES(CSV, optional; z. B.Done,Resolved)JIRA_CLOSE_TRANSITION_NAME(optional; Default:Geschlossen)JIRA_CLOSE_RESOLUTION_NAME(optional; z. B.Erledigt)
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.JIRA_CLOSE_ISSUE_KEYSenv.JIRA_CLOSE_JQLenv.JIRA_CLOSE_JQL_MAX_RESULTSenv.JIRA_CLOSE_ALLOWED_STATUSESenv.JIRA_CLOSE_TRANSITION_NAMEenv.JIRA_CLOSE_RESOLUTION_NAMEenv.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.
Languages
JavaScript
89.5%
PowerShell
5.1%
Shell
4.9%
Dockerfile
0.5%