Files
npm-its-doc/README.md
T
admrene eed6681329 feat: optionale Confluence-Seite im Workflow + Docker auf UBI9 umstellen
- 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
2026-03-20 14:21:05 +00:00

119 lines
3.2 KiB
Markdown

# Jira Workflow Automation (NPM + Docker + TeamCity)
Dieses Projekt automatisiert folgenden Ablauf:
1. Letzte Jira Tickets anhand einer JQL abfragen.
2. Zusammenfassung erzeugen (Status-Verteilung + Ticketliste).
3. Neues Jira Ticket in einem anderen Projekt/Board erstellen.
4. Optional Xray/Sonar Links und Loesungsversion in den Report aufnehmen.
5. Optional eine Atlassian Wiki/Confluence Seite erzeugen.
6. 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
```bash
npm install
cp .env.example .env
npm run dry-run
```
Wenn alles passt:
```bash
npm start
```
## Wichtige Umgebungsvariablen
Pflicht:
- `JIRA_BASE_URL`
- `JIRA_USER_EMAIL`
- `JIRA_API_TOKEN`
- `JIRA_TARGET_PROJECT_KEY` oder `JIRA_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 auch `fixVersions` im 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=true`
- `SMTP_HOST`, `SMTP_PORT`, `SMTP_SECURE`
- `SMTP_USER`, `SMTP_PASS`
- `SMTP_FROM`, `SMTP_TO`
- `SMTP_SUBJECT_PREFIX`
## Docker Nutzung
Image bauen:
```bash
docker build -t its-workflow-npm:local .
```
Container starten:
```bash
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:
1. `Command Line` (Linux Agent):
- Script: `sh teamcity/run-workflow.sh`
2. Alternativ `PowerShell` (Windows Agent):
- Script file: `teamcity/run-workflow.ps1`
Lege in TeamCity die Variablen als Parameter vom Typ `env.*` an, z. B.:
- `env.JIRA_BASE_URL`
- `env.JIRA_USER_EMAIL`
- `env.JIRA_API_TOKEN` (als Password Parameter)
- `env.JIRA_SOURCE_JQL`
- `env.JIRA_TARGET_PROJECT_KEY`
- `env.SOLUTION_VERSION`
- `env.XRAY_REPORT_URL`
- `env.SONAR_REPORT_URL`
- `env.ATLASSIAN_WIKI_ENABLED`
- `env.ATLASSIAN_WIKI_SPACE_KEY`
- `env.ATLASSIAN_WIKI_PARENT_PAGE_ID`
- `env.SMTP_ENABLED`
- `env.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=true` ohne vollstaendige SMTP Daten wird der Lauf abgebrochen.
- Bei `JIRA_DRY_RUN=true` wird kein Ticket erstellt, aber Report + optional Mail erzeugt.