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:
Vendored
+19
-3
@@ -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() {
|
||||
|
||||
Reference in New Issue
Block a user