ci: Fix issue response script (#24891)
This PR fixes the issue response script. There were a number of things preventing it from working: - The directory name used in the GitHub Action did not match the one on disk. - The script has been moved accordingly - `ts-node` does not support ESM. - `ts-node` seems unmaintained, so I changed the script to be plain JS that is type-checked with TypeScript. - The data being sent to the Slack API was invalid: - Each section block can only have a maximum of 3000 characters in the `text` field, so we need to break up the issue list across multiple sections. - We needed to escape `&`, `<`, and `>` characters in the issue titles. Release Notes: - N/A
This commit is contained in:
parent
de020af6ef
commit
fc85ca0101
8 changed files with 241 additions and 293 deletions
1
script/issue_response/.gitignore
vendored
Normal file
1
script/issue_response/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
node_modules/
|
99
script/issue_response/main.js
Normal file
99
script/issue_response/main.js
Normal file
|
@ -0,0 +1,99 @@
|
|||
import { Octokit } from "@octokit/rest";
|
||||
import { IncomingWebhook } from "@slack/webhook";
|
||||
|
||||
/**
|
||||
* The maximum length of the `text` in a section block.
|
||||
*
|
||||
* [Slack Docs](https://api.slack.com/reference/block-kit/blocks#section)
|
||||
*/
|
||||
const SECTION_BLOCK_TEXT_LIMIT = 3000;
|
||||
|
||||
async function main() {
|
||||
const octokit = new Octokit({ auth: process.env["GITHUB_TOKEN"] });
|
||||
|
||||
if (!process.env["SLACK_ISSUE_RESPONSE_WEBHOOK_URL"]) {
|
||||
throw new Error("SLACK_ISSUE_RESPONSE_WEBHOOK_URL is not set");
|
||||
}
|
||||
|
||||
const webhook = new IncomingWebhook(
|
||||
process.env["SLACK_ISSUE_RESPONSE_WEBHOOK_URL"],
|
||||
);
|
||||
|
||||
const owner = "zed-industries";
|
||||
const repo = "zed";
|
||||
const staff = await octokit.paginate(octokit.rest.orgs.listMembers, {
|
||||
org: owner,
|
||||
per_page: 100,
|
||||
});
|
||||
let staffHandles = staff.map((member) => member.login);
|
||||
let commenterFilters = staffHandles.map((name) => `-commenter:${name}`);
|
||||
let authorFilters = staffHandles.map((name) => `-author:${name}`);
|
||||
|
||||
const q = [
|
||||
`repo:${owner}/${repo}`,
|
||||
"is:issue",
|
||||
"state:open",
|
||||
"created:>=2025-02-01",
|
||||
"sort:created-asc",
|
||||
...commenterFilters,
|
||||
...authorFilters,
|
||||
];
|
||||
|
||||
const response = await octokit.rest.search.issuesAndPullRequests({
|
||||
q: q.join("+"),
|
||||
per_page: 100,
|
||||
});
|
||||
|
||||
let issues = response.data.items;
|
||||
let issueLines = issues.map((issue, index) => {
|
||||
const formattedDate = new Date(issue.created_at).toLocaleDateString(
|
||||
"en-US",
|
||||
{
|
||||
year: "numeric",
|
||||
month: "short",
|
||||
day: "numeric",
|
||||
},
|
||||
);
|
||||
const sanitizedTitle = issue.title
|
||||
.replaceAll("&", "&")
|
||||
.replaceAll("<", "<")
|
||||
.replaceAll(">", ">");
|
||||
|
||||
return `${index + 1}. ${formattedDate}: <${issue.html_url}|${sanitizedTitle}>\n`;
|
||||
});
|
||||
|
||||
const sections = [];
|
||||
/** @type {string[]} */
|
||||
let currentSection = [];
|
||||
let currentSectionLength = 0;
|
||||
|
||||
for (const issueLine of issueLines) {
|
||||
if (currentSectionLength + issueLine.length <= SECTION_BLOCK_TEXT_LIMIT) {
|
||||
currentSection.push(issueLine);
|
||||
currentSectionLength += issueLine.length;
|
||||
} else {
|
||||
sections.push(currentSection);
|
||||
currentSection = [];
|
||||
currentSectionLength = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (currentSection.length > 0) {
|
||||
sections.push(currentSection);
|
||||
}
|
||||
|
||||
const blocks = sections.map((section) => ({
|
||||
type: "section",
|
||||
text: {
|
||||
type: "mrkdwn",
|
||||
text: section.join("").trimEnd(),
|
||||
},
|
||||
}));
|
||||
|
||||
await webhook.send({ blocks });
|
||||
}
|
||||
|
||||
main().catch((error) => {
|
||||
console.error("An error occurred:", error);
|
||||
process.exit(1);
|
||||
});
|
24
script/issue_response/package.json
Normal file
24
script/issue_response/package.json
Normal file
|
@ -0,0 +1,24 @@
|
|||
{
|
||||
"name": "issue_response",
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"main": "main.js",
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
"build": "tsc -p .",
|
||||
"start": "node main.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@octokit/rest": "^21.1.0",
|
||||
"@slack/webhook": "^7.0.4",
|
||||
"date-fns": "^4.1.0",
|
||||
"octokit": "^4.1.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@octokit/types": "^13.8.0",
|
||||
"@slack/types": "^2.14.0",
|
||||
"@tsconfig/node20": "20.1.4",
|
||||
"@tsconfig/strictest": "2.0.5",
|
||||
"typescript": "5.7.3"
|
||||
}
|
||||
}
|
492
script/issue_response/pnpm-lock.yaml
generated
Normal file
492
script/issue_response/pnpm-lock.yaml
generated
Normal file
|
@ -0,0 +1,492 @@
|
|||
lockfileVersion: '9.0'
|
||||
|
||||
settings:
|
||||
autoInstallPeers: true
|
||||
excludeLinksFromLockfile: false
|
||||
|
||||
importers:
|
||||
|
||||
.:
|
||||
dependencies:
|
||||
'@octokit/rest':
|
||||
specifier: ^21.1.0
|
||||
version: 21.1.0
|
||||
'@slack/webhook':
|
||||
specifier: ^7.0.4
|
||||
version: 7.0.4
|
||||
date-fns:
|
||||
specifier: ^4.1.0
|
||||
version: 4.1.0
|
||||
octokit:
|
||||
specifier: ^4.1.1
|
||||
version: 4.1.1
|
||||
devDependencies:
|
||||
'@octokit/types':
|
||||
specifier: ^13.8.0
|
||||
version: 13.8.0
|
||||
'@slack/types':
|
||||
specifier: ^2.14.0
|
||||
version: 2.14.0
|
||||
'@tsconfig/node20':
|
||||
specifier: 20.1.4
|
||||
version: 20.1.4
|
||||
'@tsconfig/strictest':
|
||||
specifier: 2.0.5
|
||||
version: 2.0.5
|
||||
typescript:
|
||||
specifier: 5.7.3
|
||||
version: 5.7.3
|
||||
|
||||
packages:
|
||||
|
||||
'@octokit/app@15.1.3':
|
||||
resolution: {integrity: sha512-injaSv2CN8wZrhhnVky3HcQVEy4rRoIAm+OeCwNQzgQJn1OTglfT7RyMDaCbkiNWXDR0tkWLkWMv4duTTj765g==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/auth-app@7.1.4':
|
||||
resolution: {integrity: sha512-5F+3l/maq9JfWQ4bV28jT2G/K8eu9OJ317yzXPTGe4Kw+lKDhFaS4dQ3Ltmb6xImKxfCQdqDqMXODhc9YLipLw==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/auth-oauth-app@8.1.2':
|
||||
resolution: {integrity: sha512-3woNZgq5/S6RS+9ZTq+JdymxVr7E0s4EYxF20ugQvgX3pomdPUL5r/XdTY9wALoBM2eHVy4ettr5fKpatyTyHw==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/auth-oauth-device@7.1.3':
|
||||
resolution: {integrity: sha512-BECO/N4B/Uikj0w3GCvjf/odMujtYTP3q82BJSjxC2J3rxTEiZIJ+z2xnRlDb0IE9dQSaTgRqUPVOieSbFcVzg==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/auth-oauth-user@5.1.2':
|
||||
resolution: {integrity: sha512-PgVDDPJgZYb3qSEXK4moksA23tfn68zwSAsQKZ1uH6IV9IaNEYx35OXXI80STQaLYnmEE86AgU0tC1YkM4WjsA==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/auth-token@5.1.2':
|
||||
resolution: {integrity: sha512-JcQDsBdg49Yky2w2ld20IHAlwr8d/d8N6NiOXbtuoPCqzbsiJgF633mVUw3x4mo0H5ypataQIX7SFu3yy44Mpw==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/auth-unauthenticated@6.1.1':
|
||||
resolution: {integrity: sha512-bGXqdN6RhSFHvpPq46SL8sN+F3odQ6oMNLWc875IgoqcC3qus+fOL2th6Tkl94wvdSTy8/OeHzWy/lZebmnhog==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/core@6.1.4':
|
||||
resolution: {integrity: sha512-lAS9k7d6I0MPN+gb9bKDt7X8SdxknYqAMh44S5L+lNqIN2NuV8nvv3g8rPp7MuRxcOpxpUIATWprO0C34a8Qmg==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/endpoint@10.1.3':
|
||||
resolution: {integrity: sha512-nBRBMpKPhQUxCsQQeW+rCJ/OPSMcj3g0nfHn01zGYZXuNDvvXudF/TYY6APj5THlurerpFN4a/dQAIAaM6BYhA==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/graphql@8.2.0':
|
||||
resolution: {integrity: sha512-gejfDywEml/45SqbWTWrhfwvLBrcGYhOn50sPOjIeVvH6i7D16/9xcFA8dAJNp2HMcd+g4vru41g4E2RBiZvfQ==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/oauth-app@7.1.5':
|
||||
resolution: {integrity: sha512-/Y2MiwWDlGUK4blKKfjJiwjzu/FzwKTTTfTZAAQ0QbdBIDEGJPWhOFH6muSN86zaa4tNheB4YS3oWIR2e4ydzA==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/oauth-authorization-url@7.1.1':
|
||||
resolution: {integrity: sha512-ooXV8GBSabSWyhLUowlMIVd9l1s2nsOGQdlP2SQ4LnkEsGXzeCvbSbCPdZThXhEFzleGPwbapT0Sb+YhXRyjCA==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/oauth-methods@5.1.4':
|
||||
resolution: {integrity: sha512-Jc/ycnePClOvO1WL7tlC+TRxOFtyJBGuTDsL4dzXNiVZvzZdrPuNw7zHI3qJSUX2n6RLXE5L0SkFmYyNaVUFoQ==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/openapi-types@23.0.1':
|
||||
resolution: {integrity: sha512-izFjMJ1sir0jn0ldEKhZ7xegCTj/ObmEDlEfpFrx4k/JyZSMRHbO3/rBwgE7f3m2DHt+RrNGIVw4wSmwnm3t/g==}
|
||||
|
||||
'@octokit/openapi-webhooks-types@9.1.0':
|
||||
resolution: {integrity: sha512-bO1D2jLdU8qEvqmbWjNxJzDYSFT4wesiYKIKP6f4LaM0XUGtn/0LBv/20hu9YqcnpdX38X5o/xANTMtIAqdwYw==}
|
||||
|
||||
'@octokit/plugin-paginate-graphql@5.2.4':
|
||||
resolution: {integrity: sha512-pLZES1jWaOynXKHOqdnwZ5ULeVR6tVVCMm+AUbp0htdcyXDU95WbkYdU4R2ej1wKj5Tu94Mee2Ne0PjPO9cCyA==}
|
||||
engines: {node: '>= 18'}
|
||||
peerDependencies:
|
||||
'@octokit/core': '>=6'
|
||||
|
||||
'@octokit/plugin-paginate-rest@11.4.2':
|
||||
resolution: {integrity: sha512-BXJ7XPCTDXFF+wxcg/zscfgw2O/iDPtNSkwwR1W1W5c4Mb3zav/M2XvxQ23nVmKj7jpweB4g8viMeCQdm7LMVA==}
|
||||
engines: {node: '>= 18'}
|
||||
peerDependencies:
|
||||
'@octokit/core': '>=6'
|
||||
|
||||
'@octokit/plugin-request-log@5.3.1':
|
||||
resolution: {integrity: sha512-n/lNeCtq+9ofhC15xzmJCNKP2BWTv8Ih2TTy+jatNCCq/gQP/V7rK3fjIfuz0pDWDALO/o/4QY4hyOF6TQQFUw==}
|
||||
engines: {node: '>= 18'}
|
||||
peerDependencies:
|
||||
'@octokit/core': '>=6'
|
||||
|
||||
'@octokit/plugin-rest-endpoint-methods@13.3.1':
|
||||
resolution: {integrity: sha512-o8uOBdsyR+WR8MK9Cco8dCgvG13H1RlM1nWnK/W7TEACQBFux/vPREgKucxUfuDQ5yi1T3hGf4C5ZmZXAERgwQ==}
|
||||
engines: {node: '>= 18'}
|
||||
peerDependencies:
|
||||
'@octokit/core': '>=6'
|
||||
|
||||
'@octokit/plugin-retry@7.1.3':
|
||||
resolution: {integrity: sha512-8nKOXvYWnzv89gSyIvgFHmCBAxfQAOPRlkacUHL9r5oWtp5Whxl8Skb2n3ACZd+X6cYijD6uvmrQuPH/UCL5zQ==}
|
||||
engines: {node: '>= 18'}
|
||||
peerDependencies:
|
||||
'@octokit/core': '>=6'
|
||||
|
||||
'@octokit/plugin-throttling@9.4.0':
|
||||
resolution: {integrity: sha512-IOlXxXhZA4Z3m0EEYtrrACkuHiArHLZ3CvqWwOez/pURNqRuwfoFlTPbN5Muf28pzFuztxPyiUiNwz8KctdZaQ==}
|
||||
engines: {node: '>= 18'}
|
||||
peerDependencies:
|
||||
'@octokit/core': ^6.1.3
|
||||
|
||||
'@octokit/request-error@6.1.7':
|
||||
resolution: {integrity: sha512-69NIppAwaauwZv6aOzb+VVLwt+0havz9GT5YplkeJv7fG7a40qpLt/yZKyiDxAhgz0EtgNdNcb96Z0u+Zyuy2g==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/request@9.2.1':
|
||||
resolution: {integrity: sha512-TqHLIdw1KFvx8WvLc7Jv94r3C3+AzKY2FWq7c20zvrxmCIa6MCVkLCE/826NCXnml3LFJjLsidDh1BhMaGEDQw==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/rest@21.1.0':
|
||||
resolution: {integrity: sha512-93iLxcKDJboUpmnUyeJ6cRIi7z7cqTZT1K7kRK4LobGxwTwpsa+2tQQbRQNGy7IFDEAmrtkf4F4wBj3D5rVlJQ==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/types@13.8.0':
|
||||
resolution: {integrity: sha512-x7DjTIbEpEWXK99DMd01QfWy0hd5h4EN+Q7shkdKds3otGQP+oWE/y0A76i1OvH9fygo4ddvNf7ZvF0t78P98A==}
|
||||
|
||||
'@octokit/webhooks-methods@5.1.1':
|
||||
resolution: {integrity: sha512-NGlEHZDseJTCj8TMMFehzwa9g7On4KJMPVHDSrHxCQumL6uSQR8wIkP/qesv52fXqV1BPf4pTxwtS31ldAt9Xg==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@octokit/webhooks@13.6.0':
|
||||
resolution: {integrity: sha512-qoYP1g6ZP01m8LtKjC+NLuAqRbiVzS5VmnwoEYlrQr6TaLRtb5yAMxWCq5/AqfrUF2Wx6ZQ9IJ4mAFytEn7J9A==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
'@slack/types@2.14.0':
|
||||
resolution: {integrity: sha512-n0EGm7ENQRxlXbgKSrQZL69grzg1gHLAVd+GlRVQJ1NSORo0FrApR7wql/gaKdu2n4TO83Sq/AmeUOqD60aXUA==}
|
||||
engines: {node: '>= 12.13.0', npm: '>= 6.12.0'}
|
||||
|
||||
'@slack/webhook@7.0.4':
|
||||
resolution: {integrity: sha512-JDJte2dbJCcq1/GCMBYJH6fj+YS4n5GuPjT4tF3O1NPN6pFPCR9yA/apRh9sdfhdFG7hadiRgmiQqC4GLgNkZg==}
|
||||
engines: {node: '>= 18', npm: '>= 8.6.0'}
|
||||
|
||||
'@tsconfig/node20@20.1.4':
|
||||
resolution: {integrity: sha512-sqgsT69YFeLWf5NtJ4Xq/xAF8p4ZQHlmGW74Nu2tD4+g5fAsposc4ZfaaPixVu4y01BEiDCWLRDCvDM5JOsRxg==}
|
||||
|
||||
'@tsconfig/strictest@2.0.5':
|
||||
resolution: {integrity: sha512-ec4tjL2Rr0pkZ5hww65c+EEPYwxOi4Ryv+0MtjeaSQRJyq322Q27eOQiFbuNgw2hpL4hB1/W/HBGk3VKS43osg==}
|
||||
|
||||
'@types/aws-lambda@8.10.147':
|
||||
resolution: {integrity: sha512-nD0Z9fNIZcxYX5Mai2CTmFD7wX7UldCkW2ezCF8D1T5hdiLsnTWDGRpfRYntU6VjTdLQjOvyszru7I1c1oCQew==}
|
||||
|
||||
'@types/node@22.13.4':
|
||||
resolution: {integrity: sha512-ywP2X0DYtX3y08eFVx5fNIw7/uIv8hYUKgXoK8oayJlLnKcRfEYCxWMVE1XagUdVtCJlZT1AU4LXEABW+L1Peg==}
|
||||
|
||||
asynckit@0.4.0:
|
||||
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
|
||||
|
||||
axios@1.7.9:
|
||||
resolution: {integrity: sha512-LhLcE7Hbiryz8oMDdDptSrWowmB4Bl6RCt6sIJKpRB4XtVf0iEgewX3au/pJqm+Py1kCASkb/FFKjxQaLtxJvw==}
|
||||
|
||||
before-after-hook@3.0.2:
|
||||
resolution: {integrity: sha512-Nik3Sc0ncrMK4UUdXQmAnRtzmNQTAAXmXIopizwZ1W1t8QmfJj+zL4OA2I7XPTPW5z5TDqv4hRo/JzouDJnX3A==}
|
||||
|
||||
bottleneck@2.19.5:
|
||||
resolution: {integrity: sha512-VHiNCbI1lKdl44tGrhNfU3lup0Tj/ZBMJB5/2ZbNXRCPuRCO7ed2mgcK4r17y+KB2EfuYuRaVlwNbAeaWGSpbw==}
|
||||
|
||||
combined-stream@1.0.8:
|
||||
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
|
||||
engines: {node: '>= 0.8'}
|
||||
|
||||
date-fns@4.1.0:
|
||||
resolution: {integrity: sha512-Ukq0owbQXxa/U3EGtsdVBkR1w7KOQ5gIBqdH2hkvknzZPYvBxb/aa6E8L7tmjFtkwZBu3UXBbjIgPo/Ez4xaNg==}
|
||||
|
||||
delayed-stream@1.0.0:
|
||||
resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
|
||||
engines: {node: '>=0.4.0'}
|
||||
|
||||
fast-content-type-parse@2.0.1:
|
||||
resolution: {integrity: sha512-nGqtvLrj5w0naR6tDPfB4cUmYCqouzyQiz6C5y/LtcDllJdrcc6WaWW6iXyIIOErTa/XRybj28aasdn4LkVk6Q==}
|
||||
|
||||
follow-redirects@1.15.9:
|
||||
resolution: {integrity: sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==}
|
||||
engines: {node: '>=4.0'}
|
||||
peerDependencies:
|
||||
debug: '*'
|
||||
peerDependenciesMeta:
|
||||
debug:
|
||||
optional: true
|
||||
|
||||
form-data@4.0.1:
|
||||
resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==}
|
||||
engines: {node: '>= 6'}
|
||||
|
||||
mime-db@1.52.0:
|
||||
resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
mime-types@2.1.35:
|
||||
resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
|
||||
engines: {node: '>= 0.6'}
|
||||
|
||||
octokit@4.1.1:
|
||||
resolution: {integrity: sha512-GMjkrTnGk2PB9MKnK5SVDj4wSrnVX39vldKvYIC3MVNDQY1nZ6ufPrGCUFsQ645q5q+PG+CHUWRB6ZH8MBcyFg==}
|
||||
engines: {node: '>= 18'}
|
||||
|
||||
proxy-from-env@1.1.0:
|
||||
resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
|
||||
|
||||
toad-cache@3.7.0:
|
||||
resolution: {integrity: sha512-/m8M+2BJUpoJdgAHoG+baCwBT+tf2VraSfkBgl0Y00qIWt41DJ8R5B8nsEw0I58YwF5IZH6z24/2TobDKnqSWw==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
typescript@5.7.3:
|
||||
resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==}
|
||||
engines: {node: '>=14.17'}
|
||||
hasBin: true
|
||||
|
||||
undici-types@6.20.0:
|
||||
resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==}
|
||||
|
||||
universal-github-app-jwt@2.2.0:
|
||||
resolution: {integrity: sha512-G5o6f95b5BggDGuUfKDApKaCgNYy2x7OdHY0zSMF081O0EJobw+1130VONhrA7ezGSV2FNOGyM+KQpQZAr9bIQ==}
|
||||
|
||||
universal-user-agent@7.0.2:
|
||||
resolution: {integrity: sha512-0JCqzSKnStlRRQfCdowvqy3cy0Dvtlb8xecj/H8JFZuCze4rwjPZQOgvFvn0Ws/usCHQFGpyr+pB9adaGwXn4Q==}
|
||||
|
||||
snapshots:
|
||||
|
||||
'@octokit/app@15.1.3':
|
||||
dependencies:
|
||||
'@octokit/auth-app': 7.1.4
|
||||
'@octokit/auth-unauthenticated': 6.1.1
|
||||
'@octokit/core': 6.1.4
|
||||
'@octokit/oauth-app': 7.1.5
|
||||
'@octokit/plugin-paginate-rest': 11.4.2(@octokit/core@6.1.4)
|
||||
'@octokit/types': 13.8.0
|
||||
'@octokit/webhooks': 13.6.0
|
||||
|
||||
'@octokit/auth-app@7.1.4':
|
||||
dependencies:
|
||||
'@octokit/auth-oauth-app': 8.1.2
|
||||
'@octokit/auth-oauth-user': 5.1.2
|
||||
'@octokit/request': 9.2.1
|
||||
'@octokit/request-error': 6.1.7
|
||||
'@octokit/types': 13.8.0
|
||||
toad-cache: 3.7.0
|
||||
universal-github-app-jwt: 2.2.0
|
||||
universal-user-agent: 7.0.2
|
||||
|
||||
'@octokit/auth-oauth-app@8.1.2':
|
||||
dependencies:
|
||||
'@octokit/auth-oauth-device': 7.1.3
|
||||
'@octokit/auth-oauth-user': 5.1.2
|
||||
'@octokit/request': 9.2.1
|
||||
'@octokit/types': 13.8.0
|
||||
universal-user-agent: 7.0.2
|
||||
|
||||
'@octokit/auth-oauth-device@7.1.3':
|
||||
dependencies:
|
||||
'@octokit/oauth-methods': 5.1.4
|
||||
'@octokit/request': 9.2.1
|
||||
'@octokit/types': 13.8.0
|
||||
universal-user-agent: 7.0.2
|
||||
|
||||
'@octokit/auth-oauth-user@5.1.2':
|
||||
dependencies:
|
||||
'@octokit/auth-oauth-device': 7.1.3
|
||||
'@octokit/oauth-methods': 5.1.4
|
||||
'@octokit/request': 9.2.1
|
||||
'@octokit/types': 13.8.0
|
||||
universal-user-agent: 7.0.2
|
||||
|
||||
'@octokit/auth-token@5.1.2': {}
|
||||
|
||||
'@octokit/auth-unauthenticated@6.1.1':
|
||||
dependencies:
|
||||
'@octokit/request-error': 6.1.7
|
||||
'@octokit/types': 13.8.0
|
||||
|
||||
'@octokit/core@6.1.4':
|
||||
dependencies:
|
||||
'@octokit/auth-token': 5.1.2
|
||||
'@octokit/graphql': 8.2.0
|
||||
'@octokit/request': 9.2.1
|
||||
'@octokit/request-error': 6.1.7
|
||||
'@octokit/types': 13.8.0
|
||||
before-after-hook: 3.0.2
|
||||
universal-user-agent: 7.0.2
|
||||
|
||||
'@octokit/endpoint@10.1.3':
|
||||
dependencies:
|
||||
'@octokit/types': 13.8.0
|
||||
universal-user-agent: 7.0.2
|
||||
|
||||
'@octokit/graphql@8.2.0':
|
||||
dependencies:
|
||||
'@octokit/request': 9.2.1
|
||||
'@octokit/types': 13.8.0
|
||||
universal-user-agent: 7.0.2
|
||||
|
||||
'@octokit/oauth-app@7.1.5':
|
||||
dependencies:
|
||||
'@octokit/auth-oauth-app': 8.1.2
|
||||
'@octokit/auth-oauth-user': 5.1.2
|
||||
'@octokit/auth-unauthenticated': 6.1.1
|
||||
'@octokit/core': 6.1.4
|
||||
'@octokit/oauth-authorization-url': 7.1.1
|
||||
'@octokit/oauth-methods': 5.1.4
|
||||
'@types/aws-lambda': 8.10.147
|
||||
universal-user-agent: 7.0.2
|
||||
|
||||
'@octokit/oauth-authorization-url@7.1.1': {}
|
||||
|
||||
'@octokit/oauth-methods@5.1.4':
|
||||
dependencies:
|
||||
'@octokit/oauth-authorization-url': 7.1.1
|
||||
'@octokit/request': 9.2.1
|
||||
'@octokit/request-error': 6.1.7
|
||||
'@octokit/types': 13.8.0
|
||||
|
||||
'@octokit/openapi-types@23.0.1': {}
|
||||
|
||||
'@octokit/openapi-webhooks-types@9.1.0': {}
|
||||
|
||||
'@octokit/plugin-paginate-graphql@5.2.4(@octokit/core@6.1.4)':
|
||||
dependencies:
|
||||
'@octokit/core': 6.1.4
|
||||
|
||||
'@octokit/plugin-paginate-rest@11.4.2(@octokit/core@6.1.4)':
|
||||
dependencies:
|
||||
'@octokit/core': 6.1.4
|
||||
'@octokit/types': 13.8.0
|
||||
|
||||
'@octokit/plugin-request-log@5.3.1(@octokit/core@6.1.4)':
|
||||
dependencies:
|
||||
'@octokit/core': 6.1.4
|
||||
|
||||
'@octokit/plugin-rest-endpoint-methods@13.3.1(@octokit/core@6.1.4)':
|
||||
dependencies:
|
||||
'@octokit/core': 6.1.4
|
||||
'@octokit/types': 13.8.0
|
||||
|
||||
'@octokit/plugin-retry@7.1.3(@octokit/core@6.1.4)':
|
||||
dependencies:
|
||||
'@octokit/core': 6.1.4
|
||||
'@octokit/request-error': 6.1.7
|
||||
'@octokit/types': 13.8.0
|
||||
bottleneck: 2.19.5
|
||||
|
||||
'@octokit/plugin-throttling@9.4.0(@octokit/core@6.1.4)':
|
||||
dependencies:
|
||||
'@octokit/core': 6.1.4
|
||||
'@octokit/types': 13.8.0
|
||||
bottleneck: 2.19.5
|
||||
|
||||
'@octokit/request-error@6.1.7':
|
||||
dependencies:
|
||||
'@octokit/types': 13.8.0
|
||||
|
||||
'@octokit/request@9.2.1':
|
||||
dependencies:
|
||||
'@octokit/endpoint': 10.1.3
|
||||
'@octokit/request-error': 6.1.7
|
||||
'@octokit/types': 13.8.0
|
||||
fast-content-type-parse: 2.0.1
|
||||
universal-user-agent: 7.0.2
|
||||
|
||||
'@octokit/rest@21.1.0':
|
||||
dependencies:
|
||||
'@octokit/core': 6.1.4
|
||||
'@octokit/plugin-paginate-rest': 11.4.2(@octokit/core@6.1.4)
|
||||
'@octokit/plugin-request-log': 5.3.1(@octokit/core@6.1.4)
|
||||
'@octokit/plugin-rest-endpoint-methods': 13.3.1(@octokit/core@6.1.4)
|
||||
|
||||
'@octokit/types@13.8.0':
|
||||
dependencies:
|
||||
'@octokit/openapi-types': 23.0.1
|
||||
|
||||
'@octokit/webhooks-methods@5.1.1': {}
|
||||
|
||||
'@octokit/webhooks@13.6.0':
|
||||
dependencies:
|
||||
'@octokit/openapi-webhooks-types': 9.1.0
|
||||
'@octokit/request-error': 6.1.7
|
||||
'@octokit/webhooks-methods': 5.1.1
|
||||
|
||||
'@slack/types@2.14.0': {}
|
||||
|
||||
'@slack/webhook@7.0.4':
|
||||
dependencies:
|
||||
'@slack/types': 2.14.0
|
||||
'@types/node': 22.13.4
|
||||
axios: 1.7.9
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
|
||||
'@tsconfig/node20@20.1.4': {}
|
||||
|
||||
'@tsconfig/strictest@2.0.5': {}
|
||||
|
||||
'@types/aws-lambda@8.10.147': {}
|
||||
|
||||
'@types/node@22.13.4':
|
||||
dependencies:
|
||||
undici-types: 6.20.0
|
||||
|
||||
asynckit@0.4.0: {}
|
||||
|
||||
axios@1.7.9:
|
||||
dependencies:
|
||||
follow-redirects: 1.15.9
|
||||
form-data: 4.0.1
|
||||
proxy-from-env: 1.1.0
|
||||
transitivePeerDependencies:
|
||||
- debug
|
||||
|
||||
before-after-hook@3.0.2: {}
|
||||
|
||||
bottleneck@2.19.5: {}
|
||||
|
||||
combined-stream@1.0.8:
|
||||
dependencies:
|
||||
delayed-stream: 1.0.0
|
||||
|
||||
date-fns@4.1.0: {}
|
||||
|
||||
delayed-stream@1.0.0: {}
|
||||
|
||||
fast-content-type-parse@2.0.1: {}
|
||||
|
||||
follow-redirects@1.15.9: {}
|
||||
|
||||
form-data@4.0.1:
|
||||
dependencies:
|
||||
asynckit: 0.4.0
|
||||
combined-stream: 1.0.8
|
||||
mime-types: 2.1.35
|
||||
|
||||
mime-db@1.52.0: {}
|
||||
|
||||
mime-types@2.1.35:
|
||||
dependencies:
|
||||
mime-db: 1.52.0
|
||||
|
||||
octokit@4.1.1:
|
||||
dependencies:
|
||||
'@octokit/app': 15.1.3
|
||||
'@octokit/core': 6.1.4
|
||||
'@octokit/oauth-app': 7.1.5
|
||||
'@octokit/plugin-paginate-graphql': 5.2.4(@octokit/core@6.1.4)
|
||||
'@octokit/plugin-paginate-rest': 11.4.2(@octokit/core@6.1.4)
|
||||
'@octokit/plugin-rest-endpoint-methods': 13.3.1(@octokit/core@6.1.4)
|
||||
'@octokit/plugin-retry': 7.1.3(@octokit/core@6.1.4)
|
||||
'@octokit/plugin-throttling': 9.4.0(@octokit/core@6.1.4)
|
||||
'@octokit/request-error': 6.1.7
|
||||
'@octokit/types': 13.8.0
|
||||
|
||||
proxy-from-env@1.1.0: {}
|
||||
|
||||
toad-cache@3.7.0: {}
|
||||
|
||||
typescript@5.7.3: {}
|
||||
|
||||
undici-types@6.20.0: {}
|
||||
|
||||
universal-github-app-jwt@2.2.0: {}
|
||||
|
||||
universal-user-agent@7.0.2: {}
|
9
script/issue_response/tsconfig.json
Normal file
9
script/issue_response/tsconfig.json
Normal file
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"$schema": "https://json.schemastore.org/tsconfig",
|
||||
"extends": ["@tsconfig/node20/tsconfig.json", "@tsconfig/strictest/tsconfig.json"],
|
||||
"compilerOptions": {
|
||||
"checkJs": true,
|
||||
"noEmit": true
|
||||
},
|
||||
"include": ["main.js"]
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue