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

View File

@@ -39,7 +39,14 @@ inputs:
Number of versions to keep starting with the latest version
required: false
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:
description: >
Token with the necessary scopes to delete package versions.

8
dist/index.js vendored
View File

@@ -36,7 +36,10 @@ function getVersionIds(input) {
const numberVersionsToDelete = versionInfo.length - input.minVersionsToKeep;
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");
@@ -71,6 +74,7 @@ const defaultParams = {
packageName: '',
numOldVersionsToDelete: 0,
minVersionsToKeep: 0,
ignoreVersions: new RegExp(''),
token: ''
};
class Input {
@@ -82,6 +86,7 @@ class Input {
this.packageName = validatedParams.packageName;
this.numOldVersionsToDelete = validatedParams.numOldVersionsToDelete;
this.minVersionsToKeep = validatedParams.minVersionsToKeep;
this.ignoreVersions = validatedParams.ignoreVersions;
this.token = validatedParams.token;
}
hasOldestVersionQueryInfo() {
@@ -40309,6 +40314,7 @@ function getActionInput() {
packageName: core_1.getInput('package-name'),
numOldVersionsToDelete: Number(core_1.getInput('num-old-versions-to-delete')),
minVersionsToKeep: Number(core_1.getInput('min-versions-to-keep')),
ignoreVersions: RegExp(core_1.getInput('ignore-versions')),
token: core_1.getInput('token')
});
}

View File

@@ -21,7 +21,10 @@ export function getVersionIds(input: Input): Observable<string[]> {
versionInfo.length - input.minVersionsToKeep
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)
})
)
}

View File

@@ -5,6 +5,7 @@ export interface InputParams {
packageName?: string
numOldVersionsToDelete?: number
minVersionsToKeep?: number
ignoreVersions?: RegExp
token?: string
}
@@ -15,6 +16,7 @@ const defaultParams = {
packageName: '',
numOldVersionsToDelete: 0,
minVersionsToKeep: 0,
ignoreVersions: new RegExp(''),
token: ''
}
@@ -25,6 +27,7 @@ export class Input {
packageName: string
numOldVersionsToDelete: number
minVersionsToKeep: number
ignoreVersions: RegExp
token: string
constructor(params?: InputParams) {
@@ -36,6 +39,7 @@ export class Input {
this.packageName = validatedParams.packageName
this.numOldVersionsToDelete = validatedParams.numOldVersionsToDelete
this.minVersionsToKeep = validatedParams.minVersionsToKeep
this.ignoreVersions = validatedParams.ignoreVersions
this.token = validatedParams.token
}

View File

@@ -15,6 +15,7 @@ function getActionInput(): Input {
packageName: getInput('package-name'),
numOldVersionsToDelete: Number(getInput('num-old-versions-to-delete')),
minVersionsToKeep: Number(getInput('min-versions-to-keep')),
ignoreVersions: RegExp(getInput('ignore-versions')),
token: getInput('token')
})
}