add ignore versions property

This commit is contained in:
Namrata Jha
2021-11-12 03:46:59 +00:00
committed by GitHub
parent bd624e4936
commit 4ec126b8cc
5 changed files with 24 additions and 3 deletions
+8 -1
View File
@@ -39,7 +39,14 @@ inputs:
Number of versions to keep starting with the latest version Number of versions to keep starting with the latest version
required: false required: false
default: "1" default: "1"
ignore-versions:
description: >
Comma seperated regex patterns of versions to ignore.
Defaults to all major release versions and only deletes pre-release versions.
required: false
default: "^[\d*]+.[\d*]+.[0*]+$"
token: token:
description: > description: >
Token with the necessary scopes to delete package versions. Token with the necessary scopes to delete package versions.
+7 -1
View File
@@ -36,7 +36,10 @@ function getVersionIds(input) {
const numberVersionsToDelete = versionInfo.length - input.minVersionsToKeep; const numberVersionsToDelete = versionInfo.length - input.minVersionsToKeep;
return numberVersionsToDelete <= 0 return numberVersionsToDelete <= 0
? [] ? []
: versionInfo.slice(0, numberVersionsToDelete).map(info => info.id); : versionInfo
.filter(info => !input.ignoreVersions.test(info.version))
.map(info => info.id)
.slice(0, numberVersionsToDelete);
})); }));
} }
return rxjs_1.throwError("Could not get packageVersionIds. Explicitly specify using the 'package-version-ids' input or provide the 'package-name' and 'num-old-versions-to-delete' inputs to dynamically retrieve oldest versions"); return rxjs_1.throwError("Could not get packageVersionIds. Explicitly specify using the 'package-version-ids' input or provide the 'package-name' and 'num-old-versions-to-delete' inputs to dynamically retrieve oldest versions");
@@ -71,6 +74,7 @@ const defaultParams = {
packageName: '', packageName: '',
numOldVersionsToDelete: 0, numOldVersionsToDelete: 0,
minVersionsToKeep: 0, minVersionsToKeep: 0,
ignoreVersions: new RegExp(''),
token: '' token: ''
}; };
class Input { class Input {
@@ -82,6 +86,7 @@ class Input {
this.packageName = validatedParams.packageName; this.packageName = validatedParams.packageName;
this.numOldVersionsToDelete = validatedParams.numOldVersionsToDelete; this.numOldVersionsToDelete = validatedParams.numOldVersionsToDelete;
this.minVersionsToKeep = validatedParams.minVersionsToKeep; this.minVersionsToKeep = validatedParams.minVersionsToKeep;
this.ignoreVersions = validatedParams.ignoreVersions;
this.token = validatedParams.token; this.token = validatedParams.token;
} }
hasOldestVersionQueryInfo() { hasOldestVersionQueryInfo() {
@@ -40309,6 +40314,7 @@ function getActionInput() {
packageName: core_1.getInput('package-name'), packageName: core_1.getInput('package-name'),
numOldVersionsToDelete: Number(core_1.getInput('num-old-versions-to-delete')), numOldVersionsToDelete: Number(core_1.getInput('num-old-versions-to-delete')),
minVersionsToKeep: Number(core_1.getInput('min-versions-to-keep')), minVersionsToKeep: Number(core_1.getInput('min-versions-to-keep')),
ignoreVersions: RegExp(core_1.getInput('ignore-versions')),
token: core_1.getInput('token') token: core_1.getInput('token')
}); });
} }
+4 -1
View File
@@ -21,7 +21,10 @@ export function getVersionIds(input: Input): Observable<string[]> {
versionInfo.length - input.minVersionsToKeep versionInfo.length - input.minVersionsToKeep
return numberVersionsToDelete <= 0 return numberVersionsToDelete <= 0
? [] ? []
: versionInfo.slice(0, numberVersionsToDelete).map(info => info.id) : versionInfo
.filter(info => !input.ignoreVersions.test(info.version))
.map(info => info.id)
.slice(0, numberVersionsToDelete)
}) })
) )
} }
+4
View File
@@ -5,6 +5,7 @@ export interface InputParams {
packageName?: string packageName?: string
numOldVersionsToDelete?: number numOldVersionsToDelete?: number
minVersionsToKeep?: number minVersionsToKeep?: number
ignoreVersions?: RegExp
token?: string token?: string
} }
@@ -15,6 +16,7 @@ const defaultParams = {
packageName: '', packageName: '',
numOldVersionsToDelete: 0, numOldVersionsToDelete: 0,
minVersionsToKeep: 0, minVersionsToKeep: 0,
ignoreVersions: new RegExp(''),
token: '' token: ''
} }
@@ -25,6 +27,7 @@ export class Input {
packageName: string packageName: string
numOldVersionsToDelete: number numOldVersionsToDelete: number
minVersionsToKeep: number minVersionsToKeep: number
ignoreVersions: RegExp
token: string token: string
constructor(params?: InputParams) { constructor(params?: InputParams) {
@@ -36,6 +39,7 @@ export class Input {
this.packageName = validatedParams.packageName this.packageName = validatedParams.packageName
this.numOldVersionsToDelete = validatedParams.numOldVersionsToDelete this.numOldVersionsToDelete = validatedParams.numOldVersionsToDelete
this.minVersionsToKeep = validatedParams.minVersionsToKeep this.minVersionsToKeep = validatedParams.minVersionsToKeep
this.ignoreVersions = validatedParams.ignoreVersions
this.token = validatedParams.token this.token = validatedParams.token
} }
+1
View File
@@ -15,6 +15,7 @@ function getActionInput(): Input {
packageName: getInput('package-name'), packageName: getInput('package-name'),
numOldVersionsToDelete: Number(getInput('num-old-versions-to-delete')), numOldVersionsToDelete: Number(getInput('num-old-versions-to-delete')),
minVersionsToKeep: Number(getInput('min-versions-to-keep')), minVersionsToKeep: Number(getInput('min-versions-to-keep')),
ignoreVersions: RegExp(getInput('ignore-versions')),
token: getInput('token') token: getInput('token')
}) })
} }