add delete-only-untagged-versions param (#94)

Add a new boolean parameter to action `delete-only-untagged-versions`. When true, only versions that do not have any tags will be deleted.
This commit is contained in:
Anupam
2023-03-03 16:42:34 +05:30
committed by GitHub
parent b9ed39f728
commit 029d95066b
10 changed files with 207 additions and 12 deletions
+19 -3
View File
@@ -38,6 +38,9 @@ function finalIds(input) {
Then compute number of versions to delete (toDelete) based on the inputs.
*/
value = value.filter(info => !input.ignoreVersions.test(info.version));
if (input.deleteUntaggedVersions === 'true') {
value = value.filter(info => !info.tagged);
}
let toDelete = 0;
if (input.minVersionsToKeep < 0) {
toDelete = Math.min(value.length, Math.min(input.numOldVersionsToDelete, exports.RATE_LIMIT));
@@ -88,7 +91,8 @@ const defaultParams = {
minVersionsToKeep: 0,
ignoreVersions: new RegExp(''),
deletePreReleaseVersions: '',
token: ''
token: '',
deleteUntaggedVersions: ''
};
class Input {
constructor(params) {
@@ -103,6 +107,7 @@ class Input {
this.deletePreReleaseVersions = validatedParams.deletePreReleaseVersions;
this.token = validatedParams.token;
this.numDeleted = 0;
this.deleteUntaggedVersions = validatedParams.deleteUntaggedVersions;
}
hasOldestVersionQueryInfo() {
return !!(this.owner &&
@@ -123,6 +128,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.minVersionsToKeep >= 0) {
this.numOldVersionsToDelete = 0;
}
@@ -214,10 +222,17 @@ function getOldestVersions(owner, packageName, packageType, numVersions, page, t
}), (0, operators_1.map)(response => {
const resp = {
versions: response.data.map((version) => {
let tagged = false;
if (package_type === 'container' &&
version.metadata &&
version.metadata.container) {
tagged = version.metadata.container.tags.length > 0;
}
return {
id: version.id,
version: version.name,
created_at: version.created_at
created_at: version.created_at,
tagged
};
}),
page,
@@ -43916,7 +43931,8 @@ function getActionInput() {
minVersionsToKeep: Number((0, core_1.getInput)('min-versions-to-keep')),
ignoreVersions: RegExp((0, core_1.getInput)('ignore-versions')),
deletePreReleaseVersions: (0, core_1.getInput)('delete-only-pre-release-versions').toLowerCase(),
token: (0, core_1.getInput)('token')
token: (0, core_1.getInput)('token'),
deleteUntaggedVersions: (0, core_1.getInput)('delete-only-untagged-versions').toLowerCase()
});
}
function run() {