1
0
mirror of https://github.com/community-scripts/ProxmoxVE.git synced 2025-04-22 18:58:07 +00:00

Update changelog-pr.yml

This commit is contained in:
CanbiZ 2025-03-24 12:46:44 +01:00
parent 5aca671fad
commit ef839acb12

View File

@ -97,62 +97,71 @@ jobs:
per_page: 100, per_page: 100,
}); });
const filteredPRs = pulls.filter(pr => const filteredPRs = pulls.filter(pr =>
pr.merged_at && pr.merged_at &&
new Date(pr.merged_at) > latestDateInChangelog && new Date(pr.merged_at) > latestDateInChangelog &&
!pr.labels.some(label => !pr.labels.some(label =>
["invalid", "wontdo", process.env.AUTOMATED_PR_LABEL].includes(label.name.toLowerCase()) ["invalid", "wontdo", process.env.AUTOMATED_PR_LABEL].includes(label.name.toLowerCase())
) )
); );
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}))`; for (const pr of filteredPRs) {
const prLabels = pr.labels.map(label => label.name.toLowerCase());
if (pr.user.login === "push-app-to-main") {
const scriptName = pr.title; let prNote = `- ${pr.title} [@${pr.user.login}](https://github.com/${pr.user.login}) ([#${pr.number}](${pr.html_url}))`;
if (scriptName) {
try { if (pr.user.login === "push-app-to-main") {
const { data: relatedIssues } = await github.rest.issues.listForRepo({ const scriptName = pr.title;
owner: context.repo.owner, if (scriptName) {
repo: "ProxmoxVED", try {
state: "all", const { data: relatedIssues } = await github.rest.issues.listForRepo({
labels: ["Started Migration To ProxmoxVE"], owner: context.repo.owner,
per_page: 5 repo: "ProxmoxVED",
}); state: "all",
const matchingIssue = relatedIssues.find(issue => labels: ["Started Migration To ProxmoxVE"],
issue.title.toLowerCase().includes(scriptName.toLowerCase()) per_page: 5
); });
if (matchingIssue) { const matchingIssue = relatedIssues.find(issue =>
const issueAuthor = matchingIssue.user.login; issue.title.toLowerCase().includes(scriptName.toLowerCase())
const issueAuthorUrl = `https://github.com/${issueAuthor}`; );
prNote = `- ${pr.title} [@${issueAuthor}](${issueAuthorUrl}) ([#${pr.number}](${pr.html_url}))`; if (matchingIssue) {
const issueAuthor = matchingIssue.user.login;
const issueAuthorUrl = `https://github.com/${issueAuthor}`;
prNote = `- ${pr.title} [@${issueAuthor}](${issueAuthorUrl}) ([#${pr.number}](${pr.html_url}))`;
}
} catch (error) {
console.error(`Error fetching related issues: ${error}`);
} }
} catch (error) {
console.error(`Error fetching related issues: ${error}`);
}
} else {
prNote = `- ${pr.title} ([#${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 { } else {
updateScriptsCategory.notes.push(prNote); prNote = `- ${pr.title} ([#${pr.number}](${pr.html_url}))`;
}
}
// 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;
}
return await main();
- name: Update CHANGELOG.md - name: Update CHANGELOG.md
uses: actions/github-script@v7 uses: actions/github-script@v7
@ -248,4 +257,4 @@ jobs:
PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number') PR_NUMBER=$(gh pr list --head "${BRANCH_NAME}" --json number --jq '.[].number')
if [ -n "$PR_NUMBER" ]; then if [ -n "$PR_NUMBER" ]; then
gh pr review $PR_NUMBER --approve gh pr review $PR_NUMBER --approve
fi fi