From ddcc690c56f7b04f16ec3915097194e60a2a904c Mon Sep 17 00:00:00 2001 From: Michel Roegl-Brunner Date: Mon, 24 Mar 2025 12:53:01 +0100 Subject: [PATCH] Workflow Update --- .github/workflows/changelog-pr.yaml | 73 ++++++++++++++--------------- 1 file changed, 35 insertions(+), 38 deletions(-) diff --git a/.github/workflows/changelog-pr.yaml b/.github/workflows/changelog-pr.yaml index 0bd49a2..d09efa5 100644 --- a/.github/workflows/changelog-pr.yaml +++ b/.github/workflows/changelog-pr.yaml @@ -97,15 +97,19 @@ jobs: per_page: 100, }); - 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()) + 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 => { + ); + for (const pr of filteredPRs) { 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) { @@ -114,7 +118,7 @@ jobs: owner: context.repo.owner, repo: "ProxmoxVED", state: "all", - label: "Started Migration To ProxmoxVE", + labels: ["Started Migration To ProxmoxVE"], per_page: 5 }); const matchingIssue = relatedIssues.find(issue => @@ -123,45 +127,41 @@ jobs: 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}))`; + prNote = `- ${pr.title} [@${issueAuthor}](${issueAuthorUrl}) ([#${pr.number}](${pr.html_url}))`; } } catch (error) { console.error(`Error fetching related issues: ${error}`); - const prNote = `- ${pr.title} ([#${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); + prNote = `- ${pr.title} ([#${pr.number}](${pr.html_url}))`; } } - }); - console.log(JSON.stringify(categorizedPRs, null, 2)); + // Find matching category + for (const category of categorizedPRs) { + if (category.labels.some(label => prLabels.includes(label))) { + // Check if PR belongs to a subcategory + if (category.subCategories && category.subCategories.length > 0) { + const subCategory = category.subCategories.find(sub => + sub.labels.some(label => prLabels.includes(label)) + ); + + if (subCategory) { + subCategory.notes.push(prNote); + } else { + category.notes.push(prNote); + } + } else { + category.notes.push(prNote); + } + } + } + } return categorizedPRs; } - main().catch(error => { - console.error("Error in script:", error); - }); + + return await main(); - name: Update CHANGELOG.md uses: actions/github-script@v7 @@ -184,8 +184,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 +200,6 @@ jobs: } } } - const changelogContent = await fs.readFile(changelogPath, 'utf-8'); const changelogIncludesTodaysReleaseNotes = changelogContent.includes(`\n## ${today}`);