feat: testing

This commit is contained in:
Saahil 2024-12-20 18:25:23 -05:00
parent 57f7a0f01b
commit bca970aeae
No known key found for this signature in database
GPG key ID: 8A8B64515254CFC6
5 changed files with 487 additions and 0 deletions

View file

@ -22,6 +22,7 @@
"ms": "^2.1.3",
"node-cron": "^3.0.3",
"node-ical": "^0.20.1",
"octokit": "^4.0.2",
"openai": "latest",
"simple-json-db": "^2.0.0",
"smee-client": "^2.0.3",

View file

@ -27,6 +27,7 @@ import { setupOverallCron } from "./modules/cron";
const db = new JSONdb("data/data.json");
app.dbs = {};
app.dbs.bday = new JSONdb("data/bday.json");
app.dbs.ddm = new JSONdb("data/discord-datamining.json");
app.dbs.anondm = new EncryptedJsonDb("data/anondm.json", {
password: process.env.ANONDM_PASSWORD,
});

View file

@ -0,0 +1,223 @@
// re create it from scratch because :3
const OwnerPlusRepo = {
owner: "Discord-Datamining",
repo: "Discord-Datamining",
};
import { Octokit } from "octokit"
import { ModifiedApp } from "./slackapp";
export async function theDataFromDiscordIsMine(app: ModifiedApp) {
const db = app.dbs.ddm
// create octokit client
const octokit = new Octokit({
auth: process.env.GITHUB_TOKEN!,
});
const gh = octokit
async function sendCommit(commit: any) {
console.debug(`#0`)
await app.client.chat.postMessage({
channel: "C080T3WUTK4",
blocks: getBlocks(commit),
text: `discord datamining update?`
})
}
function getCommitComments(commit_sha) {
return octokit.rest.repos.listCommentsForCommit({
...OwnerPlusRepo,
commit_sha,
});
}
async function CommitHandler() {
const commits = (await gh.rest.repos.listCommits(OwnerPlusRepo)).data;
const commitsWithComments = commits.filter(
(commit) => commit.commit.comment_count >= 1
);
for (const commit of commitsWithComments.reverse()) {
const buildNumber = parseBuildNumber(commit.commit.message);
const comments = (await getCommitComments(commit.sha)).data;
const commentsWithImages = comments.map((comment) => ({
...comment,
images: parseMDImage(comment.body),
}));
const transformedComments = commentsWithImages.map((comment) => ({
_id: comment.id,
id: comment.id,
title: commit.commit.message,
buildNumber,
timestamp: comment.created_at,
url: comment.html_url,
description: comment.body,
user: {
username: comment.user?.login,
id: comment.user?.id,
avatarURL: comment.user?.avatar_url,
url: comment.user?.html_url,
},
images: comment.images,
}));
const [firstComment, ...subComments] = transformedComments;
const foundCommit = await db.get(firstComment.id);
if (!foundCommit) {
console.log(`Needs to store: ${firstComment.buildNumber}`);
try {
const doc = await db.set(firstComment.id, {
...firstComment,
comments: subComments,
});
console.log(
`Stored Commit ${firstComment.id} for Build ${firstComment.buildNumber}`
);
// const servers = [
// {
// _id: "782677691689205790",
// channel: "1213339538563399720",
// lastSentComment:
// client.db.get("782677691689205790").lastSentComment,
// // role: ""
// },
// ]; // await Server.find();
// for (const server of servers) {
await sendCommit(firstComment);
// }
} catch (error) {
console.error(
`Error storing commit (${firstComment.id}) for build ${firstComment.buildNumber}`,
error.stack
);
}
} else {
console.log(
`Need to store additional comments for ${foundCommit.buildNumber}`
);
try {
for (const comment of subComments) {
if (foundCommit.id === comment.id) return;
if (foundCommit.comments?.find((c) => c.id === comment.id)) return;
// await foundCommit.update({
// $push: { comments: comment },
// });////////
// const servers = await Server.find();
// for (const server of servers) {
// await sendCommit($, comment, server);
// }
}
} catch (error) {
console.error(
`Error updating commit (${foundCommit.id}) for build ${foundCommit.buildNumber}`,
error.stack
);
}
}
}
}
async function pushAllCommitsInDb() {
const commits = await gh.paginate(gh.rest.repos.listCommits, {
...OwnerPlusRepo,
per_page: 100,
since: new Date("2024-01-01"),
});
const commitsWithComments = commits.filter(
(commit) => commit.commit.comment_count >= 1
);
for (const commit of commitsWithComments.reverse()) {
const buildNumber = parseBuildNumber(commit.commit.message);
const comments = (await getCommitComments(commit.sha)).data;
const commentsWithImages = comments.map((comment) => ({
...comment,
images: parseMDImage(comment.body),
}));
const transformedComments = commentsWithImages.map((comment) => ({
_id: comment.id,
id: comment.id,
title: commit.commit.message,
buildNumber,
timestamp: comment.created_at,
url: comment.html_url,
description: comment.body,
user: {
username: comment.user?.login,
id: comment.user?.id,
avatarURL: comment.user?.avatar_url,
url: comment.user?.html_url,
},
images: comment.images,
}));
const [firstComment, ...subComments] = transformedComments;
const foundCommit = await db.get(firstComment.id);
if (!foundCommit) {
console.log(`Needs to store: ${firstComment.buildNumber}`);
try {
const doc = await db.set(firstComment.id, {
...firstComment,
comments: subComments,
});
} catch (error) {
console.error(
`Error storing commit (${firstComment.id}) for build ${firstComment.buildNumber}`,
error.stack
);
}
}
}
}
}
function parseMDImage(body) {
//@ts-ignore
const regex = /!\[[^\]]*\]\((?<filename>.*?)?\)/g;
return [...body.matchAll(regex)].map((m) => m.groups.filename);
}
export function parseBuildNumber(title) {
const regex = /Build ([0-9]*)/;
const exec = regex.exec(title);
return exec?.[1] ?? "";
}
function getBlocks(commit: any) {
return [
{
type: "header",
text: {
type: "plain_text",
text: "{title}".replace(
"{title}",
commit.title.slice(0, 256)
),
emoji: true,
},
},
{
type: "divider",
},
{
type: "section",
fields: [
{
type: "mrkdwn",
text:
commit.description.length > 4091
? `${commit.description.substr(0, 4091)}\n\`\`\``
: commit.description,
},
],
},
{
type: "section",
/// button link to commit
text: {
type: "mrkdwn",
text: `View Commit: \n<${commit.url}|${commit.url}>`,
},
},
{
type: "context",
elements: [
{
type: "mrkdwn",
text: "Discord Datamining Bot",
},
],
},
]
}

View file

@ -16,6 +16,7 @@ export * as bdayutils from "./bday";
export * as tempmail from "./TempHackclubEmail";
export * as irl from "./watchMyIrl";
export * as hangman from "./hangman";
export * as discorddatamining from "./discord-datamining";
// @see https://github.com/hackclub/librarian/blob/main/utils/channelManagers.js
export async function getChannelManagers(channel) {
const myHeaders = new Headers();

261
yarn.lock
View file

@ -42,6 +42,221 @@
semver "^7.3.5"
tar "^6.1.11"
"@octokit/app@^15.0.0":
version "15.1.1"
resolved "https://registry.yarnpkg.com/@octokit/app/-/app-15.1.1.tgz#bbbae2b209928c8ca038122ec85bff67045628c7"
integrity sha512-fk8xrCSPTJGpyBdBNI+DcZ224dm0aApv4vi6X7/zTmANXlegKV2Td+dJ+fd7APPaPN7R+xttUsj2Fm+AFDSfMQ==
dependencies:
"@octokit/auth-app" "^7.0.0"
"@octokit/auth-unauthenticated" "^6.0.0"
"@octokit/core" "^6.1.2"
"@octokit/oauth-app" "^7.0.0"
"@octokit/plugin-paginate-rest" "^11.0.0"
"@octokit/types" "^13.0.0"
"@octokit/webhooks" "^13.0.0"
"@octokit/auth-app@^7.0.0":
version "7.1.3"
resolved "https://registry.yarnpkg.com/@octokit/auth-app/-/auth-app-7.1.3.tgz#b6b26e880895eaa4effc7d38a4679f05e100f593"
integrity sha512-GZdkOp2kZTIy5dG9oXqvzUAZiPvDx4C/lMlN6yQjtG9d/+hYa7W8WXTJoOrXE8UdfL9A/sZMl206dmtkl9lwVQ==
dependencies:
"@octokit/auth-oauth-app" "^8.1.0"
"@octokit/auth-oauth-user" "^5.1.0"
"@octokit/request" "^9.1.1"
"@octokit/request-error" "^6.1.1"
"@octokit/types" "^13.4.1"
toad-cache "^3.7.0"
universal-github-app-jwt "^2.2.0"
universal-user-agent "^7.0.0"
"@octokit/auth-oauth-app@^8.0.0", "@octokit/auth-oauth-app@^8.1.0":
version "8.1.1"
resolved "https://registry.yarnpkg.com/@octokit/auth-oauth-app/-/auth-oauth-app-8.1.1.tgz#6204affa6e86f535016799cadf2af9befe5e893c"
integrity sha512-5UtmxXAvU2wfcHIPPDWzVSAWXVJzG3NWsxb7zCFplCWEmMCArSZV0UQu5jw5goLQXbFyOr5onzEH37UJB3zQQg==
dependencies:
"@octokit/auth-oauth-device" "^7.0.0"
"@octokit/auth-oauth-user" "^5.0.1"
"@octokit/request" "^9.0.0"
"@octokit/types" "^13.0.0"
universal-user-agent "^7.0.0"
"@octokit/auth-oauth-device@^7.0.0", "@octokit/auth-oauth-device@^7.0.1":
version "7.1.1"
resolved "https://registry.yarnpkg.com/@octokit/auth-oauth-device/-/auth-oauth-device-7.1.1.tgz#7b4f8f97cbcadbe9894d48cde4406dbdef39875a"
integrity sha512-HWl8lYueHonuyjrKKIup/1tiy0xcmQCdq5ikvMO1YwkNNkxb6DXfrPjrMYItNLyCP/o2H87WuijuE+SlBTT8eg==
dependencies:
"@octokit/oauth-methods" "^5.0.0"
"@octokit/request" "^9.0.0"
"@octokit/types" "^13.0.0"
universal-user-agent "^7.0.0"
"@octokit/auth-oauth-user@^5.0.1", "@octokit/auth-oauth-user@^5.1.0":
version "5.1.1"
resolved "https://registry.yarnpkg.com/@octokit/auth-oauth-user/-/auth-oauth-user-5.1.1.tgz#4f1570c6ee15bb9ddc3dcca83308dcaa159e3848"
integrity sha512-rRkMz0ErOppdvEfnemHJXgZ9vTPhBuC6yASeFaB7I2yLMd7QpjfrL1mnvRPlyKo+M6eeLxrKanXJ9Qte29SRsw==
dependencies:
"@octokit/auth-oauth-device" "^7.0.1"
"@octokit/oauth-methods" "^5.0.0"
"@octokit/request" "^9.0.1"
"@octokit/types" "^13.0.0"
universal-user-agent "^7.0.0"
"@octokit/auth-token@^5.0.0":
version "5.1.1"
resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-5.1.1.tgz#3bbfe905111332a17f72d80bd0b51a3e2fa2cf07"
integrity sha512-rh3G3wDO8J9wSjfI436JUKzHIxq8NaiL0tVeB2aXmG6p/9859aUOAjA9pmSPNGGZxfwmaJ9ozOJImuNVJdpvbA==
"@octokit/auth-unauthenticated@^6.0.0", "@octokit/auth-unauthenticated@^6.0.0-beta.1":
version "6.1.0"
resolved "https://registry.yarnpkg.com/@octokit/auth-unauthenticated/-/auth-unauthenticated-6.1.0.tgz#de0fe923bb06ed93aea526ab99972a98c546d0bf"
integrity sha512-zPSmfrUAcspZH/lOFQnVnvjQZsIvmfApQH6GzJrkIunDooU1Su2qt2FfMTSVPRp7WLTQyC20Kd55lF+mIYaohQ==
dependencies:
"@octokit/request-error" "^6.0.1"
"@octokit/types" "^13.0.0"
"@octokit/core@^6.0.0", "@octokit/core@^6.1.2":
version "6.1.2"
resolved "https://registry.yarnpkg.com/@octokit/core/-/core-6.1.2.tgz#20442d0a97c411612da206411e356014d1d1bd17"
integrity sha512-hEb7Ma4cGJGEUNOAVmyfdB/3WirWMg5hDuNFVejGEDFqupeOysLc2sG6HJxY2etBp5YQu5Wtxwi020jS9xlUwg==
dependencies:
"@octokit/auth-token" "^5.0.0"
"@octokit/graphql" "^8.0.0"
"@octokit/request" "^9.0.0"
"@octokit/request-error" "^6.0.1"
"@octokit/types" "^13.0.0"
before-after-hook "^3.0.2"
universal-user-agent "^7.0.0"
"@octokit/endpoint@^10.0.0":
version "10.1.1"
resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-10.1.1.tgz#1a9694e7aef6aa9d854dc78dd062945945869bcc"
integrity sha512-JYjh5rMOwXMJyUpj028cu0Gbp7qe/ihxfJMLc8VZBMMqSwLgOxDI1911gV4Enl1QSavAQNJcwmwBF9M0VvLh6Q==
dependencies:
"@octokit/types" "^13.0.0"
universal-user-agent "^7.0.2"
"@octokit/graphql@^8.0.0":
version "8.1.1"
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-8.1.1.tgz#3cacab5f2e55d91c733e3bf481d3a3f8a5f639c4"
integrity sha512-ukiRmuHTi6ebQx/HFRCXKbDlOh/7xEV6QUXaE7MJEKGNAncGI/STSbOkl12qVXZrfZdpXctx5O9X1AIaebiDBg==
dependencies:
"@octokit/request" "^9.0.0"
"@octokit/types" "^13.0.0"
universal-user-agent "^7.0.0"
"@octokit/oauth-app@^7.0.0":
version "7.1.3"
resolved "https://registry.yarnpkg.com/@octokit/oauth-app/-/oauth-app-7.1.3.tgz#a0f256dd185e7c00bfbc3e6bc3c5aad66e42c609"
integrity sha512-EHXbOpBkSGVVGF1W+NLMmsnSsJRkcrnVmDKt0TQYRBb6xWfWzoi9sBD4DIqZ8jGhOWO/V8t4fqFyJ4vDQDn9bg==
dependencies:
"@octokit/auth-oauth-app" "^8.0.0"
"@octokit/auth-oauth-user" "^5.0.1"
"@octokit/auth-unauthenticated" "^6.0.0-beta.1"
"@octokit/core" "^6.0.0"
"@octokit/oauth-authorization-url" "^7.0.0"
"@octokit/oauth-methods" "^5.0.0"
"@types/aws-lambda" "^8.10.83"
universal-user-agent "^7.0.0"
"@octokit/oauth-authorization-url@^7.0.0":
version "7.1.1"
resolved "https://registry.yarnpkg.com/@octokit/oauth-authorization-url/-/oauth-authorization-url-7.1.1.tgz#0e17c2225eb66b58ec902d02b6f1315ffe9ff04b"
integrity sha512-ooXV8GBSabSWyhLUowlMIVd9l1s2nsOGQdlP2SQ4LnkEsGXzeCvbSbCPdZThXhEFzleGPwbapT0Sb+YhXRyjCA==
"@octokit/oauth-methods@^5.0.0":
version "5.1.2"
resolved "https://registry.yarnpkg.com/@octokit/oauth-methods/-/oauth-methods-5.1.2.tgz#fd31d2a69f4c91d1abc1ed1814dda5252c697e02"
integrity sha512-C5lglRD+sBlbrhCUTxgJAFjWgJlmTx5bQ7Ch0+2uqRjYv7Cfb5xpX4WuSC9UgQna3sqRGBL9EImX9PvTpMaQ7g==
dependencies:
"@octokit/oauth-authorization-url" "^7.0.0"
"@octokit/request" "^9.1.0"
"@octokit/request-error" "^6.1.0"
"@octokit/types" "^13.0.0"
"@octokit/openapi-types@^22.2.0":
version "22.2.0"
resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-22.2.0.tgz#75aa7dcd440821d99def6a60b5f014207ae4968e"
integrity sha512-QBhVjcUa9W7Wwhm6DBFu6ZZ+1/t/oYxqc2tp81Pi41YNuJinbFRx8B133qVOrAaBbF7D/m0Et6f9/pZt9Rc+tg==
"@octokit/openapi-webhooks-types@8.5.1":
version "8.5.1"
resolved "https://registry.yarnpkg.com/@octokit/openapi-webhooks-types/-/openapi-webhooks-types-8.5.1.tgz#de421dbd3efb586e908a152eed3f0ae50698a2f2"
integrity sha512-i3h1b5zpGSB39ffBbYdSGuAd0NhBAwPyA3QV3LYi/lx4lsbZiu7u2UHgXVUR6EpvOI8REOuVh1DZTRfHoJDvuQ==
"@octokit/plugin-paginate-graphql@^5.0.0":
version "5.2.4"
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-graphql/-/plugin-paginate-graphql-5.2.4.tgz#b6afda7b3f24cb93d2ab822ec8eac664a5d325d0"
integrity sha512-pLZES1jWaOynXKHOqdnwZ5ULeVR6tVVCMm+AUbp0htdcyXDU95WbkYdU4R2ej1wKj5Tu94Mee2Ne0PjPO9cCyA==
"@octokit/plugin-paginate-rest@^11.0.0":
version "11.3.6"
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.3.6.tgz#82f33c87464202423c2a89d5cc8c38761f4aa86b"
integrity sha512-zcvqqf/+TicbTCa/Z+3w4eBJcAxCFymtc0UAIsR3dEVoNilWld4oXdscQ3laXamTszUZdusw97K8+DrbFiOwjw==
dependencies:
"@octokit/types" "^13.6.2"
"@octokit/plugin-rest-endpoint-methods@^13.0.0":
version "13.2.6"
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.2.6.tgz#b9d343dbe88a6cb70cc7fa16faa98f0a29ffe654"
integrity sha512-wMsdyHMjSfKjGINkdGKki06VEkgdEldIGstIEyGX0wbYHGByOwN/KiM+hAAlUwAtPkP3gvXtVQA9L3ITdV2tVw==
dependencies:
"@octokit/types" "^13.6.1"
"@octokit/plugin-retry@^7.0.0":
version "7.1.2"
resolved "https://registry.yarnpkg.com/@octokit/plugin-retry/-/plugin-retry-7.1.2.tgz#242e2d19a72a50b5113bb25d7d2c622ce0373fa0"
integrity sha512-XOWnPpH2kJ5VTwozsxGurw+svB2e61aWlmk5EVIYZPwFK5F9h4cyPyj9CIKRyMXMHSwpIsI3mPOdpMmrRhe7UQ==
dependencies:
"@octokit/request-error" "^6.0.0"
"@octokit/types" "^13.0.0"
bottleneck "^2.15.3"
"@octokit/plugin-throttling@^9.0.0":
version "9.3.2"
resolved "https://registry.yarnpkg.com/@octokit/plugin-throttling/-/plugin-throttling-9.3.2.tgz#cc05180e45e769d6726c5faed157e9ad3b6ab8c0"
integrity sha512-FqpvcTpIWFpMMwIeSoypoJXysSAQ3R+ALJhXXSG1HTP3YZOIeLmcNcimKaXxTcws+Sh6yoRl13SJ5r8sXc1Fhw==
dependencies:
"@octokit/types" "^13.0.0"
bottleneck "^2.15.3"
"@octokit/request-error@^6.0.0", "@octokit/request-error@^6.0.1", "@octokit/request-error@^6.1.0", "@octokit/request-error@^6.1.1":
version "6.1.5"
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-6.1.5.tgz#907099e341c4e6179db623a0328d678024f54653"
integrity sha512-IlBTfGX8Yn/oFPMwSfvugfncK2EwRLjzbrpifNaMY8o/HTEAFqCA1FZxjD9cWvSKBHgrIhc4CSBIzMxiLsbzFQ==
dependencies:
"@octokit/types" "^13.0.0"
"@octokit/request@^9.0.0", "@octokit/request@^9.0.1", "@octokit/request@^9.1.0", "@octokit/request@^9.1.1":
version "9.1.3"
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-9.1.3.tgz#42b693bc06238f43af3c037ebfd35621c6457838"
integrity sha512-V+TFhu5fdF3K58rs1pGUJIDH5RZLbZm5BI+MNF+6o/ssFNT4vWlCh/tVpF3NxGtP15HUxTTMUbsG5llAuU2CZA==
dependencies:
"@octokit/endpoint" "^10.0.0"
"@octokit/request-error" "^6.0.1"
"@octokit/types" "^13.1.0"
universal-user-agent "^7.0.2"
"@octokit/types@^13.0.0", "@octokit/types@^13.1.0", "@octokit/types@^13.4.1", "@octokit/types@^13.6.1", "@octokit/types@^13.6.2":
version "13.6.2"
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-13.6.2.tgz#e10fc4d2bdd65d836d1ced223b03ad4cfdb525bd"
integrity sha512-WpbZfZUcZU77DrSW4wbsSgTPfKcp286q3ItaIgvSbBpZJlu6mnYXAkjZz6LVZPXkEvLIM8McanyZejKTYUHipA==
dependencies:
"@octokit/openapi-types" "^22.2.0"
"@octokit/webhooks-methods@^5.0.0":
version "5.1.0"
resolved "https://registry.yarnpkg.com/@octokit/webhooks-methods/-/webhooks-methods-5.1.0.tgz#13b6c08f89902c1ab0ddf31c6eeeec9c2772cfe6"
integrity sha512-yFZa3UH11VIxYnnoOYCVoJ3q4ChuSOk2IVBBQ0O3xtKX4x9bmKb/1t+Mxixv2iUhzMdOl1qeWJqEhouXXzB3rQ==
"@octokit/webhooks@^13.0.0":
version "13.4.1"
resolved "https://registry.yarnpkg.com/@octokit/webhooks/-/webhooks-13.4.1.tgz#608929916b0e0e5755fa5ca1de7484d2113bc6a9"
integrity sha512-I5YPUtfWidh+OzyrlDahJsUpkpGK0kCTmDRbuqGmlCUzOtxdEkX3R4d6Cd08ijQYwkVXQJanPdbKuZBeV2NMaA==
dependencies:
"@octokit/openapi-webhooks-types" "8.5.1"
"@octokit/request-error" "^6.0.1"
"@octokit/webhooks-methods" "^5.0.0"
"@opentelemetry/api-logs@0.52.1":
version "0.52.1"
resolved "https://registry.yarnpkg.com/@opentelemetry/api-logs/-/api-logs-0.52.1.tgz#52906375da4d64c206b0c4cb8ffa209214654ecc"
@ -584,6 +799,11 @@
"@types/geojson" "^7946.0.10"
tslib "^2.6.2"
"@types/aws-lambda@^8.10.83":
version "8.10.146"
resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.146.tgz#05f9968d8cd9719a0a86526baf889c25761f60b8"
integrity sha512-3BaDXYTh0e6UCJYL/jwV/3+GRslSc08toAiZSmleYtkAUyV5rtvdPYxrG/88uqvTuT6sb27WE9OS90ZNTIuQ0g==
"@types/body-parser@*":
version "1.19.5"
resolved "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.5.tgz"
@ -993,6 +1213,11 @@ bcrypt@^5.1.1:
"@mapbox/node-pre-gyp" "^1.0.11"
node-addon-api "^5.0.0"
before-after-hook@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-3.0.2.tgz#d5665a5fa8b62294a5aa0a499f933f4a1016195d"
integrity sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==
bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9:
version "4.12.0"
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88"
@ -1044,6 +1269,11 @@ boolbase@^1.0.0:
resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==
bottleneck@^2.15.3:
version "2.19.5"
resolved "https://registry.yarnpkg.com/bottleneck/-/bottleneck-2.19.5.tgz#5df0b90f59fd47656ebe63c78a98419205cadd91"
integrity sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==
brace-expansion@^1.1.7:
version "1.1.11"
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
@ -2862,6 +3092,22 @@ obuf@~1.1.2:
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
octokit@^4.0.2:
version "4.0.2"
resolved "https://registry.yarnpkg.com/octokit/-/octokit-4.0.2.tgz#775d68d363cdaec69d7b73d3dc82ae909d30f59b"
integrity sha512-wbqF4uc1YbcldtiBFfkSnquHtECEIpYD78YUXI6ri1Im5OO2NLo6ZVpRdbJpdnpZ05zMrVPssNiEo6JQtea+Qg==
dependencies:
"@octokit/app" "^15.0.0"
"@octokit/core" "^6.0.0"
"@octokit/oauth-app" "^7.0.0"
"@octokit/plugin-paginate-graphql" "^5.0.0"
"@octokit/plugin-paginate-rest" "^11.0.0"
"@octokit/plugin-rest-endpoint-methods" "^13.0.0"
"@octokit/plugin-retry" "^7.0.0"
"@octokit/plugin-throttling" "^9.0.0"
"@octokit/request-error" "^6.0.0"
"@octokit/types" "^13.0.0"
on-finished@2.4.1:
version "2.4.1"
resolved "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz"
@ -3725,6 +3971,11 @@ tmp@^0.0.33:
dependencies:
os-tmpdir "~1.0.2"
toad-cache@^3.7.0:
version "3.7.0"
resolved "https://registry.yarnpkg.com/toad-cache/-/toad-cache-3.7.0.tgz#b9b63304ea7c45ec34d91f1d2fa513517025c441"
integrity sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==
toidentifier@1.0.1:
version "1.0.1"
resolved "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz"
@ -3866,6 +4117,16 @@ undici@^6.19.5:
resolved "https://registry.yarnpkg.com/undici/-/undici-6.21.0.tgz#4b3d3afaef984e07b48e7620c34ed8a285ed4cd4"
integrity sha512-BUgJXc752Kou3oOIuU1i+yZZypyZRqNPW0vqoMPl8VaoalSfeR0D8/t4iAS3yirs79SSMTxTag+ZC86uswv+Cw==
universal-github-app-jwt@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/universal-github-app-jwt/-/universal-github-app-jwt-2.2.0.tgz#dc6c8929e76f1996a766ba2a08fb420f73365d77"
integrity sha512-G5o6f95b5BggDGuUfKDApKaCgNYy2x7OdHY0zSMF081O0EJobw+1130VONhrA7ezGSV2FNOGyM+KQpQZAr9bIQ==
universal-user-agent@^7.0.0, universal-user-agent@^7.0.2:
version "7.0.2"
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-7.0.2.tgz#52e7d0e9b3dc4df06cc33cb2b9fd79041a54827e"
integrity sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==
universalify@^2.0.0:
version "2.0.1"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d"