Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Improve delete-only-untagged-versions flag and minor bug fix (#97)
Improve `delete-only-untagged-versions` flag and minor bug fix
  • Loading branch information
Anupam authored and GitHub committed Mar 9, 2023
1 parent 564c9d0 commit 8c3a64d
Show file tree
Hide file tree
Showing 5 changed files with 29 additions and 6 deletions.
2 changes: 2 additions & 0 deletions README.md
Expand Up @@ -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

Expand Down
2 changes: 2 additions & 0 deletions action.yml
Expand Up @@ -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"
Expand Down
15 changes: 12 additions & 3 deletions dist/index.js
Expand Up @@ -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());
});
/*
Expand Down Expand Up @@ -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 === '') {
Expand All @@ -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;
Expand Down
3 changes: 3 additions & 0 deletions src/delete.ts
Expand Up @@ -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()
)
Expand Down
13 changes: 10 additions & 3 deletions src/input.ts
Expand Up @@ -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
}
Expand All @@ -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) {
Expand Down

0 comments on commit 8c3a64d

Please sign in to comment.