run with RATE_LIMIT=100
This commit is contained in:
Vendored
+17
-10
@@ -27,12 +27,12 @@ exports.deleteVersions = exports.finalIds = exports.getVersionIds = void 0;
|
|||||||
const rxjs_1 = __nccwpck_require__(5805);
|
const rxjs_1 = __nccwpck_require__(5805);
|
||||||
const version_1 = __nccwpck_require__(4428);
|
const version_1 = __nccwpck_require__(4428);
|
||||||
const operators_1 = __nccwpck_require__(7801);
|
const operators_1 = __nccwpck_require__(7801);
|
||||||
const RATE_LIMIT = 99;
|
const RATE_LIMIT = 100;
|
||||||
let totalCount;
|
let totalCount = 0;
|
||||||
function getVersionIds(owner, repo, packageName, numVersions, cursor, token) {
|
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
|
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)
|
? version_1.getOldestVersions(owner, repo, packageName, numVersions, value.cursor, token)
|
||||||
: rxjs_1.EMPTY), operators_1.tap(value => (totalCount = value.totalCount)), operators_1.map(value => value.versions));
|
: rxjs_1.EMPTY), operators_1.tap(value => (totalCount === 0 ? value.totalCount : totalCount)), operators_1.map(value => value.versions));
|
||||||
}
|
}
|
||||||
exports.getVersionIds = getVersionIds;
|
exports.getVersionIds = getVersionIds;
|
||||||
function finalIds(input) {
|
function finalIds(input) {
|
||||||
@@ -45,17 +45,16 @@ function finalIds(input) {
|
|||||||
input.numOldVersionsToDelete < RATE_LIMIT
|
input.numOldVersionsToDelete < RATE_LIMIT
|
||||||
? input.numOldVersionsToDelete
|
? input.numOldVersionsToDelete
|
||||||
: RATE_LIMIT;
|
: RATE_LIMIT;
|
||||||
|
console.log(`input.numOldVersionsToDelete: ${input.numOldVersionsToDelete}`);
|
||||||
return getVersionIds(input.owner, input.repo, input.packageName, input.numOldVersionsToDelete, '', input.token).pipe(operators_1.map(value => {
|
return getVersionIds(input.owner, input.repo, input.packageName, input.numOldVersionsToDelete, '', input.token).pipe(operators_1.map(value => {
|
||||||
|
value = value.filter(info => !input.ignoreVersions.test(info.version));
|
||||||
const temp = input.numOldVersionsToDelete;
|
const temp = input.numOldVersionsToDelete;
|
||||||
input.numOldVersionsToDelete =
|
input.numOldVersionsToDelete =
|
||||||
input.numOldVersionsToDelete - value.length <= 0
|
input.numOldVersionsToDelete - value.length <= 0
|
||||||
? 0
|
? 0
|
||||||
: input.numOldVersionsToDelete - value.length;
|
: input.numOldVersionsToDelete - value.length;
|
||||||
input.numDeleted += value.filter(info => !input.ignoreVersions.test(info.version)).length;
|
console.log(`temp: ${temp}, numOldeVersions: ${input.numOldVersionsToDelete}`);
|
||||||
return value
|
return value.map(info => info.id).slice(0, temp);
|
||||||
.filter(info => !input.ignoreVersions.test(info.version))
|
|
||||||
.map(info => info.id)
|
|
||||||
.slice(0, temp);
|
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -68,7 +67,7 @@ function finalIds(input) {
|
|||||||
toDelete = toDelete > value.length ? value.length : toDelete;
|
toDelete = toDelete > value.length ? value.length : toDelete;
|
||||||
if (toDelete > 0 && input.numDeleted < RATE_LIMIT) {
|
if (toDelete > 0 && input.numDeleted < RATE_LIMIT) {
|
||||||
// using input.numDeleted to keep track of deleted and remaining packages
|
// using input.numDeleted to keep track of deleted and remaining packages
|
||||||
if (input.numDeleted + toDelete > 99) {
|
if (input.numDeleted + toDelete > RATE_LIMIT) {
|
||||||
toDelete = RATE_LIMIT - input.numDeleted;
|
toDelete = RATE_LIMIT - input.numDeleted;
|
||||||
input.numDeleted = RATE_LIMIT;
|
input.numDeleted = RATE_LIMIT;
|
||||||
}
|
}
|
||||||
@@ -177,6 +176,7 @@ exports.deletePackageVersions = exports.deletePackageVersion = void 0;
|
|||||||
const rxjs_1 = __nccwpck_require__(5805);
|
const rxjs_1 = __nccwpck_require__(5805);
|
||||||
const operators_1 = __nccwpck_require__(7801);
|
const operators_1 = __nccwpck_require__(7801);
|
||||||
const graphql_1 = __nccwpck_require__(6320);
|
const graphql_1 = __nccwpck_require__(6320);
|
||||||
|
let deleted = 0;
|
||||||
const mutation = `
|
const mutation = `
|
||||||
mutation deletePackageVersion($packageVersionId: String!) {
|
mutation deletePackageVersion($packageVersionId: String!) {
|
||||||
deletePackageVersion(input: {packageVersionId: $packageVersionId}) {
|
deletePackageVersion(input: {packageVersionId: $packageVersionId}) {
|
||||||
@@ -184,6 +184,11 @@ const mutation = `
|
|||||||
}
|
}
|
||||||
}`;
|
}`;
|
||||||
function deletePackageVersion(packageVersionId, token) {
|
function deletePackageVersion(packageVersionId, token) {
|
||||||
|
if (deleted === 100) {
|
||||||
|
console.log(`reaching rate limit`);
|
||||||
|
operators_1.delay(5000);
|
||||||
|
}
|
||||||
|
deleted += 1;
|
||||||
return rxjs_1.from(graphql_1.graphql(token, mutation, {
|
return rxjs_1.from(graphql_1.graphql(token, mutation, {
|
||||||
packageVersionId,
|
packageVersionId,
|
||||||
headers: {
|
headers: {
|
||||||
@@ -202,6 +207,7 @@ function deletePackageVersions(packageVersionIds, token) {
|
|||||||
return rxjs_1.of(true);
|
return rxjs_1.of(true);
|
||||||
}
|
}
|
||||||
const deletes = packageVersionIds.map(id => deletePackageVersion(id, token).pipe(operators_1.tap(result => {
|
const deletes = packageVersionIds.map(id => deletePackageVersion(id, token).pipe(operators_1.tap(result => {
|
||||||
|
console.log(`versions Deleted 0 : ${deleted}`);
|
||||||
if (result) {
|
if (result) {
|
||||||
console.log(`version with id: ${id}, deleted`);
|
console.log(`version with id: ${id}, deleted`);
|
||||||
}
|
}
|
||||||
@@ -209,6 +215,7 @@ function deletePackageVersions(packageVersionIds, token) {
|
|||||||
console.log(`version with id: ${id}, not deleted`);
|
console.log(`version with id: ${id}, not deleted`);
|
||||||
}
|
}
|
||||||
})));
|
})));
|
||||||
|
console.log(`Versions Deleted Final2: ${deleted}`);
|
||||||
return rxjs_1.merge(...deletes);
|
return rxjs_1.merge(...deletes);
|
||||||
}
|
}
|
||||||
exports.deletePackageVersions = deletePackageVersions;
|
exports.deletePackageVersions = deletePackageVersions;
|
||||||
@@ -282,7 +289,7 @@ function queryForOldestVersions(owner, repo, packageName, numVersions, startCurs
|
|||||||
owner,
|
owner,
|
||||||
repo,
|
repo,
|
||||||
package: packageName,
|
package: packageName,
|
||||||
last: numVersions,
|
last: numVersions > 100 ? 100 : numVersions,
|
||||||
headers: {
|
headers: {
|
||||||
Accept: 'application/vnd.github.packages-preview+json'
|
Accept: 'application/vnd.github.packages-preview+json'
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-11
@@ -3,8 +3,8 @@ import {EMPTY, Observable, of, throwError} from 'rxjs'
|
|||||||
import {deletePackageVersions, getOldestVersions, VersionInfo} from './version'
|
import {deletePackageVersions, getOldestVersions, VersionInfo} from './version'
|
||||||
import {concatMap, map, expand, tap} from 'rxjs/operators'
|
import {concatMap, map, expand, tap} from 'rxjs/operators'
|
||||||
|
|
||||||
const RATE_LIMIT = 99
|
const RATE_LIMIT = 100
|
||||||
let totalCount: number
|
let totalCount = 0
|
||||||
|
|
||||||
export function getVersionIds(
|
export function getVersionIds(
|
||||||
owner: string,
|
owner: string,
|
||||||
@@ -34,7 +34,7 @@ export function getVersionIds(
|
|||||||
)
|
)
|
||||||
: EMPTY
|
: EMPTY
|
||||||
),
|
),
|
||||||
tap(value => (totalCount = value.totalCount)),
|
tap(value => (totalCount === 0 ? value.totalCount : totalCount)),
|
||||||
map(value => value.versions)
|
map(value => value.versions)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -49,6 +49,9 @@ export function finalIds(input: Input): Observable<string[]> {
|
|||||||
input.numOldVersionsToDelete < RATE_LIMIT
|
input.numOldVersionsToDelete < RATE_LIMIT
|
||||||
? input.numOldVersionsToDelete
|
? input.numOldVersionsToDelete
|
||||||
: RATE_LIMIT
|
: RATE_LIMIT
|
||||||
|
console.log(
|
||||||
|
`input.numOldVersionsToDelete: ${input.numOldVersionsToDelete}`
|
||||||
|
)
|
||||||
return getVersionIds(
|
return getVersionIds(
|
||||||
input.owner,
|
input.owner,
|
||||||
input.repo,
|
input.repo,
|
||||||
@@ -58,18 +61,16 @@ export function finalIds(input: Input): Observable<string[]> {
|
|||||||
input.token
|
input.token
|
||||||
).pipe(
|
).pipe(
|
||||||
map(value => {
|
map(value => {
|
||||||
|
value = value.filter(info => !input.ignoreVersions.test(info.version))
|
||||||
const temp = input.numOldVersionsToDelete
|
const temp = input.numOldVersionsToDelete
|
||||||
input.numOldVersionsToDelete =
|
input.numOldVersionsToDelete =
|
||||||
input.numOldVersionsToDelete - value.length <= 0
|
input.numOldVersionsToDelete - value.length <= 0
|
||||||
? 0
|
? 0
|
||||||
: input.numOldVersionsToDelete - value.length
|
: input.numOldVersionsToDelete - value.length
|
||||||
input.numDeleted += value.filter(
|
console.log(
|
||||||
info => !input.ignoreVersions.test(info.version)
|
`temp: ${temp}, numOldeVersions: ${input.numOldVersionsToDelete}`
|
||||||
).length
|
)
|
||||||
return value
|
return value.map(info => info.id).slice(0, temp)
|
||||||
.filter(info => !input.ignoreVersions.test(info.version))
|
|
||||||
.map(info => info.id)
|
|
||||||
.slice(0, temp)
|
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
@@ -90,7 +91,7 @@ export function finalIds(input: Input): Observable<string[]> {
|
|||||||
toDelete = toDelete > value.length ? value.length : toDelete
|
toDelete = toDelete > value.length ? value.length : toDelete
|
||||||
if (toDelete > 0 && input.numDeleted < RATE_LIMIT) {
|
if (toDelete > 0 && input.numDeleted < RATE_LIMIT) {
|
||||||
// using input.numDeleted to keep track of deleted and remaining packages
|
// using input.numDeleted to keep track of deleted and remaining packages
|
||||||
if (input.numDeleted + toDelete > 99) {
|
if (input.numDeleted + toDelete > RATE_LIMIT) {
|
||||||
toDelete = RATE_LIMIT - input.numDeleted
|
toDelete = RATE_LIMIT - input.numDeleted
|
||||||
input.numDeleted = RATE_LIMIT
|
input.numDeleted = RATE_LIMIT
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
import {from, Observable, merge, throwError, of} from 'rxjs'
|
import {from, Observable, merge, throwError, of} from 'rxjs'
|
||||||
import {catchError, map, tap} from 'rxjs/operators'
|
import {catchError, delay, map, tap} from 'rxjs/operators'
|
||||||
import {GraphQlQueryResponse} from '@octokit/graphql/dist-types/types'
|
import {GraphQlQueryResponse} from '@octokit/graphql/dist-types/types'
|
||||||
import {graphql} from './graphql'
|
import {graphql} from './graphql'
|
||||||
|
|
||||||
|
let deleted = 0
|
||||||
|
|
||||||
export interface DeletePackageVersionMutationResponse {
|
export interface DeletePackageVersionMutationResponse {
|
||||||
deletePackageVersion: {
|
deletePackageVersion: {
|
||||||
success: boolean
|
success: boolean
|
||||||
@@ -20,6 +22,11 @@ export function deletePackageVersion(
|
|||||||
packageVersionId: string,
|
packageVersionId: string,
|
||||||
token: string
|
token: string
|
||||||
): Observable<boolean> {
|
): Observable<boolean> {
|
||||||
|
if (deleted === 100) {
|
||||||
|
console.log(`reaching rate limit`)
|
||||||
|
delay(5000)
|
||||||
|
}
|
||||||
|
deleted += 1
|
||||||
return from(
|
return from(
|
||||||
graphql(token, mutation, {
|
graphql(token, mutation, {
|
||||||
packageVersionId,
|
packageVersionId,
|
||||||
@@ -51,6 +58,7 @@ export function deletePackageVersions(
|
|||||||
const deletes = packageVersionIds.map(id =>
|
const deletes = packageVersionIds.map(id =>
|
||||||
deletePackageVersion(id, token).pipe(
|
deletePackageVersion(id, token).pipe(
|
||||||
tap(result => {
|
tap(result => {
|
||||||
|
console.log(`versions Deleted 0 : ${deleted}`)
|
||||||
if (result) {
|
if (result) {
|
||||||
console.log(`version with id: ${id}, deleted`)
|
console.log(`version with id: ${id}, deleted`)
|
||||||
} else {
|
} else {
|
||||||
@@ -59,6 +67,6 @@ export function deletePackageVersions(
|
|||||||
})
|
})
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
console.log(`Versions Deleted Final2: ${deleted}`)
|
||||||
return merge(...deletes)
|
return merge(...deletes)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -101,7 +101,7 @@ export function queryForOldestVersions(
|
|||||||
owner,
|
owner,
|
||||||
repo,
|
repo,
|
||||||
package: packageName,
|
package: packageName,
|
||||||
last: numVersions,
|
last: numVersions > 100 ? 100 : numVersions,
|
||||||
headers: {
|
headers: {
|
||||||
Accept: 'application/vnd.github.packages-preview+json'
|
Accept: 'application/vnd.github.packages-preview+json'
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user