Improve delete-only-untagged-versions flag and minor bug fix (#97)

Improve `delete-only-untagged-versions` flag and minor bug fix
This commit is contained in:
Anupam
2023-03-09 15:31:35 +05:30
committed by GitHub
parent 564c9d0297
commit 8c3a64de32
5 changed files with 29 additions and 6 deletions

View File

@@ -84,6 +84,8 @@ This action deletes versions of a package from [GitHub Packages](https://github.
- `num-old-versions-to-delete` + `ignore-versions`
- `min-versions-to-keep` + `ignore-versions`
- `min-versions-to-keep` + `delete-only-pre-release-versions`
- `delete-only-untagged-versions`
- `min-versions-to-keep` + `delete-only-untagged-versions`
# Scenarios

View File

@@ -58,6 +58,8 @@ inputs:
delete-only-untagged-versions:
description: >
Deletes only untagged versions in case of a container package. Does not work for other package types.
The number of untagged versions to keep can be specified by min-versions-to-keep.
When this is set num-old-versions-to-delete will not be taken into account.
By default this is set to false
required: false
default: "false"

15
dist/index.js vendored
View File

@@ -31,6 +31,9 @@ function finalIds(input) {
(0, operators_1.map)(value => {
// we need to delete oldest versions first
value.sort((a, b) => {
if (a.created_at === b.created_at) {
return a.id - b.id;
}
return (new Date(a.created_at).getTime() - new Date(b.created_at).getTime());
});
/*
@@ -116,8 +119,13 @@ class Input {
this.token);
}
checkInput() {
if (this.packageType.toLowerCase() !== 'container') {
this.deleteUntaggedVersions = 'false';
}
if (this.numOldVersionsToDelete > 1 &&
(this.minVersionsToKeep >= 0 || this.deletePreReleaseVersions === 'true')) {
(this.minVersionsToKeep >= 0 ||
this.deletePreReleaseVersions === 'true' ||
this.deleteUntaggedVersions === 'true')) {
return false;
}
if (this.packageType === '' || this.packageName === '') {
@@ -128,8 +136,9 @@ class Input {
this.minVersionsToKeep > 0 ? this.minVersionsToKeep : 0;
this.ignoreVersions = new RegExp('^(0|[1-9]\\d*)((\\.(0|[1-9]\\d*))*)$');
}
if (this.packageType.toLowerCase() !== 'container') {
this.deleteUntaggedVersions = 'false';
if (this.deleteUntaggedVersions === 'true') {
this.minVersionsToKeep =
this.minVersionsToKeep > 0 ? this.minVersionsToKeep : 0;
}
if (this.minVersionsToKeep >= 0) {
this.numOldVersionsToDelete = 0;

View File

@@ -63,6 +63,9 @@ export function finalIds(input: Input): Observable<string[]> {
map(value => {
// we need to delete oldest versions first
value.sort((a, b) => {
if (a.created_at === b.created_at) {
return a.id - b.id
}
return (
new Date(a.created_at).getTime() - new Date(b.created_at).getTime()
)

View File

@@ -63,9 +63,15 @@ export class Input {
}
checkInput(): boolean {
if (this.packageType.toLowerCase() !== 'container') {
this.deleteUntaggedVersions = 'false'
}
if (
this.numOldVersionsToDelete > 1 &&
(this.minVersionsToKeep >= 0 || this.deletePreReleaseVersions === 'true')
(this.minVersionsToKeep >= 0 ||
this.deletePreReleaseVersions === 'true' ||
this.deleteUntaggedVersions === 'true')
) {
return false
}
@@ -80,8 +86,9 @@ export class Input {
this.ignoreVersions = new RegExp('^(0|[1-9]\\d*)((\\.(0|[1-9]\\d*))*)$')
}
if (this.packageType.toLowerCase() !== 'container') {
this.deleteUntaggedVersions = 'false'
if (this.deleteUntaggedVersions === 'true') {
this.minVersionsToKeep =
this.minVersionsToKeep > 0 ? this.minVersionsToKeep : 0
}
if (this.minVersionsToKeep >= 0) {