Merge branch 'improve-existing-action' of https://github.com/actions/delete-package-versions into improve-existing-action

This commit is contained in:
Namrata Jha
2021-12-22 19:18:26 +00:00
committed by GitHub
3 changed files with 85 additions and 12 deletions

57
dist/index.js vendored
View File

@@ -58,22 +58,26 @@ function finalIds(input) {
}));
}
else {
return getVersionIds(input.owner, input.repo, input.packageName, RATE_LIMIT, '', input.token).pipe(operators_1.map(value => {
return getVersionIds(input.owner, input.repo, input.packageName, 100, '', 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 < RATE_LIMIT) {
// using input.numDeleted to keep track of deleted and remaining packages
if (input.numDeleted + toDelete > RATE_LIMIT) {
toDelete = RATE_LIMIT - input.numDeleted;
input.numDeleted = RATE_LIMIT;
}
else {
input.numDeleted = input.numDeleted + toDelete;
}
// using input.numDeleted to keep track of deleted and remaining packages
if (input.numDeleted + toDelete > RATE_LIMIT) {
toDelete = RATE_LIMIT - input.numDeleted
input.numDeleted = RATE_LIMIT
} else {
input.numDeleted = input.numDeleted + toDelete
}
return value.map(info => info.id).slice(0, toDelete)
} else return []*/
if (toDelete > 0) {
input.numDeleted += toDelete;
return value.map(info => info.id).slice(0, toDelete);
}
else
@@ -167,12 +171,21 @@ exports.Input = Input;
/***/ }),
/***/ 5544:
/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => {
/***/ (function(__unused_webpack_module, exports, __nccwpck_require__) {
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", ({ value: true }));
exports.deletePackageVersions = exports.deletePackageVersion = void 0;
exports.deletePackageVersions = exports.deletePackageVersion = exports.getRateLimit = void 0;
const rxjs_1 = __nccwpck_require__(5805);
const operators_1 = __nccwpck_require__(7801);
const graphql_1 = __nccwpck_require__(6320);
@@ -183,6 +196,28 @@ const mutation = `
success
}
}`;
const ratelimitQuery = `
query {
viewer {
login
}
rateLimit {
limit
cost
remaining
resetAt
}
}`;
function getRateLimit(token) {
return __awaiter(this, void 0, void 0, function* () {
return graphql_1.graphql(token, ratelimitQuery, {
headers: {
Accept: 'application/vnd.github.package-deletes-preview+json'
}
});
});
}
exports.getRateLimit = getRateLimit;
function deletePackageVersion(packageVersionId, token) {
if (deleted === 100) {
console.log(`reaching rate limit`);

View File

@@ -78,7 +78,7 @@ export function finalIds(input: Input): Observable<string[]> {
input.owner,
input.repo,
input.packageName,
RATE_LIMIT,
100,
'',
input.token
).pipe(
@@ -99,6 +99,11 @@ export function finalIds(input: Input): Observable<string[]> {
}
return value.map(info => info.id).slice(0, toDelete)
} else return []
/*
if (toDelete > 0) {
input.numDeleted += toDelete
return value.map(info => info.id).slice(0, toDelete)
} else return []*/
})
)
}

View File

@@ -18,6 +18,39 @@ const mutation = `
}
}`
export interface RateLimitResponse {
viewer: {
login: string
}
ratelimit: {
limit: number
cost: number
remaining: number
resetAt: string
}
}
const ratelimitQuery = `
query {
viewer {
login
}
rateLimit {
limit
cost
remaining
resetAt
}
}`
export async function getRateLimit(token: string): Promise<RateLimitResponse> {
return graphql(token, ratelimitQuery, {
headers: {
Accept: 'application/vnd.github.package-deletes-preview+json'
}
}) as Promise<RateLimitResponse>
}
export function deletePackageVersion(
packageVersionId: string,
token: string