set RATE_LIMIT=99

This commit is contained in:
Namrata Jha
2021-12-21 18:52:10 +00:00
committed by GitHub
parent 21a6c99c5d
commit e6a9d9c802
4 changed files with 19 additions and 18 deletions

18
dist/index.js vendored
View File

@@ -27,11 +27,12 @@ exports.deleteVersions = exports.finalIds = exports.getVersionIds = void 0;
const rxjs_1 = __nccwpck_require__(5805);
const version_1 = __nccwpck_require__(4428);
const operators_1 = __nccwpck_require__(7801);
const RATE_LIMIT = 99;
let totalCount;
function getVersionIds(owner, repo, packageName, numVersions, cursor, token) {
return version_1.getOldestVersions(owner, repo, packageName, numVersions, cursor, token).pipe(operators_1.expand(value => value.paginate
? version_1.getOldestVersions(owner, repo, packageName, numVersions, value.cursor, token)
: rxjs_1.EMPTY), operators_1.tap(value => (totalCount = value.totalCount)), operators_1.tap(value => console.log(`in expand value length: ${value.versions.length}`)), operators_1.map(value => value.versions));
: rxjs_1.EMPTY), operators_1.tap(value => (totalCount = value.totalCount)), operators_1.map(value => value.versions));
}
exports.getVersionIds = getVersionIds;
function finalIds(input) {
@@ -41,7 +42,9 @@ function finalIds(input) {
if (input.hasOldestVersionQueryInfo()) {
if (input.minVersionsToKeep < 0) {
input.numOldVersionsToDelete =
input.numOldVersionsToDelete < 100 ? input.numOldVersionsToDelete : 100;
input.numOldVersionsToDelete < RATE_LIMIT
? input.numOldVersionsToDelete
: RATE_LIMIT;
return getVersionIds(input.owner, input.repo, input.packageName, input.numOldVersionsToDelete, '', input.token).pipe(operators_1.map(value => {
const temp = input.numOldVersionsToDelete;
input.numOldVersionsToDelete =
@@ -56,18 +59,18 @@ function finalIds(input) {
}));
}
else {
return getVersionIds(input.owner, input.repo, input.packageName, 100, '', input.token).pipe(operators_1.map(value => {
return getVersionIds(input.owner, input.repo, input.packageName, RATE_LIMIT, '', input.token).pipe(operators_1.map(value => {
totalCount =
totalCount -
value.filter(info => input.ignoreVersions.test(info.version)).length;
value = value.filter(info => !input.ignoreVersions.test(info.version));
let toDelete = totalCount - input.minVersionsToKeep - input.numDeleted;
toDelete = toDelete > value.length ? value.length : toDelete;
if (toDelete > 0 && input.numDeleted < 99) {
if (toDelete > 0 && input.numDeleted < RATE_LIMIT) {
// using input.numDeleted to keep track of deleted and remaining packages
if (input.numDeleted + toDelete > 99) {
toDelete = 99 - input.numDeleted;
input.numDeleted = 99;
toDelete = RATE_LIMIT - input.numDeleted;
input.numDeleted = RATE_LIMIT;
}
else {
input.numDeleted = input.numDeleted + toDelete;
@@ -198,7 +201,6 @@ function deletePackageVersions(packageVersionIds, token) {
if (packageVersionIds.length === 0) {
return rxjs_1.of(true);
}
console.log(`in delete length: ${packageVersionIds.length}`);
const deletes = packageVersionIds.map(id => deletePackageVersion(id, token).pipe(operators_1.tap(result => {
if (result) {
console.log(`version with id: ${id}, deleted`);
@@ -280,7 +282,7 @@ function queryForOldestVersions(owner, repo, packageName, numVersions, startCurs
owner,
repo,
package: packageName,
last: numVersions > 100 ? 100 : numVersions,
last: numVersions,
headers: {
Accept: 'application/vnd.github.packages-preview+json'
}

View File

@@ -3,6 +3,7 @@ import {EMPTY, Observable, of, throwError} from 'rxjs'
import {deletePackageVersions, getOldestVersions, VersionInfo} from './version'
import {concatMap, map, expand, tap} from 'rxjs/operators'
const RATE_LIMIT = 99
let totalCount: number
export function getVersionIds(
@@ -34,9 +35,6 @@ export function getVersionIds(
: EMPTY
),
tap(value => (totalCount = value.totalCount)),
tap(value =>
console.log(`in expand value length: ${value.versions.length}`)
),
map(value => value.versions)
)
}
@@ -48,7 +46,9 @@ export function finalIds(input: Input): Observable<string[]> {
if (input.hasOldestVersionQueryInfo()) {
if (input.minVersionsToKeep < 0) {
input.numOldVersionsToDelete =
input.numOldVersionsToDelete < 100 ? input.numOldVersionsToDelete : 100
input.numOldVersionsToDelete < RATE_LIMIT
? input.numOldVersionsToDelete
: RATE_LIMIT
return getVersionIds(
input.owner,
input.repo,
@@ -77,7 +77,7 @@ export function finalIds(input: Input): Observable<string[]> {
input.owner,
input.repo,
input.packageName,
100,
RATE_LIMIT,
'',
input.token
).pipe(
@@ -88,11 +88,11 @@ export function finalIds(input: Input): Observable<string[]> {
value = value.filter(info => !input.ignoreVersions.test(info.version))
let toDelete = totalCount - input.minVersionsToKeep - input.numDeleted
toDelete = toDelete > value.length ? value.length : toDelete
if (toDelete > 0 && input.numDeleted < 99) {
if (toDelete > 0 && input.numDeleted < RATE_LIMIT) {
// using input.numDeleted to keep track of deleted and remaining packages
if (input.numDeleted + toDelete > 99) {
toDelete = 99 - input.numDeleted
input.numDeleted = 99
toDelete = RATE_LIMIT - input.numDeleted
input.numDeleted = RATE_LIMIT
} else {
input.numDeleted = input.numDeleted + toDelete
}

View File

@@ -48,7 +48,6 @@ export function deletePackageVersions(
return of(true)
}
console.log(`in delete length: ${packageVersionIds.length}`)
const deletes = packageVersionIds.map(id =>
deletePackageVersion(id, token).pipe(
tap(result => {

View File

@@ -101,7 +101,7 @@ export function queryForOldestVersions(
owner,
repo,
package: packageName,
last: numVersions > 100 ? 100 : numVersions,
last: numVersions,
headers: {
Accept: 'application/vnd.github.packages-preview+json'
}