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
|
||||
env:
|
||||
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