diff --git a/.github/workflows/changelog-pr.yml b/.github/workflows/changelog-pr.yml index 8dd722833..2ef5ed85f 100644 --- a/.github/workflows/changelog-pr.yml +++ b/.github/workflows/changelog-pr.yml @@ -97,71 +97,60 @@ jobs: per_page: 100, }); - pulls.filter(pr => + const filteredPRs = pulls.filter(pr => pr.merged_at && new Date(pr.merged_at) > latestDateInChangelog && !pr.labels.some(label => ["invalid", "wontdo", process.env.AUTOMATED_PR_LABEL].includes(label.name.toLowerCase()) - ) - ).forEach(pr => { - - const prLabels = pr.labels.map(label => label.name.toLowerCase()); - if (pr.user.login === "push-app-to-main") { - const scriptName = pr.title; - if (scriptName) { - try { - const { data: relatedIssues } = await github.rest.issues.listForRepo({ - owner: context.repo.owner, - repo: "ProxmoxVED", - state: "all", - label: "Started Migration To ProxmoxVE", - per_page: 5 - }); - const matchingIssue = relatedIssues.find(issue => - issue.title.toLowerCase().includes(scriptName.toLowerCase()) - ); - if (matchingIssue) { - const issueAuthor = matchingIssue.user.login; - const issueAuthorUrl = `https://github.com/${issueAuthor}`; - const prNote = `- ${pr.title} [@${issueAuthor}](${issueAuthorUrl}) ([#${pr.number}](${pr.html_url}))`; - } else { - const prNote = `- ${pr.title} ([#${pr.number}](${pr.html_url}))`; - } - } catch (error) { - console.error(`Error fetching related issues: ${error}`); - const prNote = `- ${pr.title} ([#${pr.number}](${pr.html_url}))`; + ) + ); + + for (const pr of filteredPRs) { // ✅ for...of unterstützt await + const prLabels = pr.labels.map(label => label.name.toLowerCase()); + + let prNote = `- ${pr.title} [@${pr.user.login}](https://github.com/${pr.user.login}) ([#${pr.number}](${pr.html_url}))`; + + if (pr.user.login === "push-app-to-main") { + const scriptName = pr.title; + if (scriptName) { + try { + const { data: relatedIssues } = await github.rest.issues.listForRepo({ + owner: context.repo.owner, + repo: "ProxmoxVED", + state: "all", + labels: ["Started Migration To ProxmoxVE"], // "label" -> "labels" + per_page: 5 + }); + const matchingIssue = relatedIssues.find(issue => + issue.title.toLowerCase().includes(scriptName.toLowerCase()) + ); + if (matchingIssue) { + const issueAuthor = matchingIssue.user.login; + const issueAuthorUrl = `https://github.com/${issueAuthor}`; + prNote = `- ${pr.title} [@${issueAuthor}](${issueAuthorUrl}) ([#${pr.number}](${pr.html_url}))`; } - } else { - const prNote = `- ${pr.title} ([#${pr.number}](${pr.html_url}))`; - - }else{ - const prNote = `- ${pr.title} [@${pr.user.login}](https://github.com/${pr.user.login}) ([#${pr.number}](${pr.html_url}))`; - } - const updateScriptsCategory = categorizedPRs.find(category => - category.labels.some(label => prLabels.includes(label)) - ); - - if (updateScriptsCategory) { - - const subCategory = updateScriptsCategory.subCategories.find(sub => - sub.labels.some(label => prLabels.includes(label)) - ); - - if (subCategory) { - subCategory.notes.push(prNote); - } else { - updateScriptsCategory.notes.push(prNote); + } catch (error) { + console.error(`Error fetching related issues: ${error}`); } } - }); - - console.log(JSON.stringify(categorizedPRs, null, 2)); - - return categorizedPRs; + } + + const updateScriptsCategory = categorizedPRs.find(category => + category.labels.some(label => prLabels.includes(label)) + ); + + if (updateScriptsCategory) { + const subCategory = updateScriptsCategory.subCategories.find(sub => + sub.labels.some(label => prLabels.includes(label)) + ); + + if (subCategory) { + subCategory.notes.push(prNote); + } else { + updateScriptsCategory.notes.push(prNote); + } + } } - main().catch(error => { - console.error("Error in script:", error); - }); - name: Update CHANGELOG.md uses: actions/github-script@v7 @@ -184,8 +173,6 @@ jobs: const hasMainNotes = notes.length > 0; const hasSubNotes = hasSubcategories && subCategories.some(sub => sub.notes && sub.notes.length > 0); - - if (hasMainNotes || hasSubNotes) { newReleaseNotes += `### ${title}\n\n`; } @@ -202,7 +189,6 @@ jobs: } } } - const changelogContent = await fs.readFile(changelogPath, 'utf-8'); const changelogIncludesTodaysReleaseNotes = changelogContent.includes(`\n## ${today}`);