feat(workflow): automate Jira summary pipeline with optional Xray/Sonar links and solution version

- 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
This commit is contained in:
2026-03-19 13:11:02 +01:00
commit fae1771c61
13 changed files with 1154 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
const nodemailer = require("nodemailer");
async function sendReportMail({ smtpConfig, subject, html, text }) {
if (!smtpConfig.enabled) {
return { skipped: true, reason: "SMTP_ENABLED=false" };
}
if (
!smtpConfig.host ||
!smtpConfig.port ||
!smtpConfig.user ||
!smtpConfig.pass ||
!smtpConfig.from ||
smtpConfig.to.length === 0
) {
throw new Error(
"SMTP ist aktiviert, aber SMTP_HOST/PORT/USER/PASS/FROM/TO sind nicht vollstaendig gesetzt."
);
}
const transport = nodemailer.createTransport({
host: smtpConfig.host,
port: smtpConfig.port,
secure: smtpConfig.secure,
auth: {
user: smtpConfig.user,
pass: smtpConfig.pass,
},
});
const info = await transport.sendMail({
from: smtpConfig.from,
to: smtpConfig.to.join(", "),
subject,
text,
html,
});
return { skipped: false, messageId: info.messageId };
}
module.exports = {
sendReportMail,
};