build: remove old drafts
This commit is contained in:
39
.github/workflows/main.yaml
vendored
39
.github/workflows/main.yaml
vendored
@@ -93,3 +93,42 @@ jobs:
|
|||||||
generate_release_notes: true
|
generate_release_notes: true
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
|
- name: Delete draft releases older than 7 days
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
script: |
|
||||||
|
const daysToKeep = 7;
|
||||||
|
const cutoffDate = new Date(Date.now() - daysToKeep * 24 * 60 * 60 * 1000);
|
||||||
|
|
||||||
|
const releases = await github.rest.repos.listReleases({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
per_page: 100
|
||||||
|
});
|
||||||
|
|
||||||
|
for (const release of releases.data) {
|
||||||
|
if (release.draft) {
|
||||||
|
const created = new Date(release.created_at);
|
||||||
|
if (created < cutoffDate) {
|
||||||
|
console.log(`Deleting draft release: ${release.name || release.tag_name} (${release.id})`);
|
||||||
|
await github.rest.repos.deleteRelease({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
release_id: release.id
|
||||||
|
});
|
||||||
|
|
||||||
|
try {
|
||||||
|
await github.rest.git.deleteRef({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
ref: `tags/${release.tag_name}`
|
||||||
|
});
|
||||||
|
console.log(`Deleted tag: ${release.tag_name}`);
|
||||||
|
} catch (err) {
|
||||||
|
console.log(`Tag ${release.tag_name} not found or already deleted.`);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user