in tools/rfc-render/fetch-issues.js [10:70]
async function issuesGroupedByStatus(filterStatus = undefined) {
const files = await fs.readdir(path.join(__dirname, '..', '..', 'text'));
const octo = new Octokit({
auth: process.env.PROJEN_GITHUB_TOKEN || process.env.GITHUB_TOKEN
});
const issueByStatus = {};
const labelQuery = filterStatus ? `label:${filterStatus.join(',')}` : '';
const fullQuery = `repo:aws/aws-cdk-rfcs is:issue ${labelQuery}`;
console.log(fullQuery);
const request = octo.search.issuesAndPullRequests.endpoint.merge({
q: fullQuery,
});
const result = await octo.paginate(request);
for (const issue of result) {
// skip pull requests
if (issue.pull_request) {
continue;
}
const status = determineStatus(issue.labels);
// kip not requested status
if (filterStatus && !filterStatus.includes(status)) {
continue;
}
// skip closed issues of unknown status
if (issue.state === 'closed' && status === UNKNOWN_STATUS) {
continue;
}
const { champion, pr_number } = findMetadata(issue);
const doc = findDocFile(files, issue.number);
let link;
// we we already have a doc, then the link should go to it
if (doc) {
link = `https://github.com/aws/aws-cdk-rfcs/blob/main/text/${doc}`;
} else if (pr_number) {
link = `https://github.com/aws/aws-cdk-rfcs/pull/${pr_number}`;
} else {
link = `https://github.com/aws/aws-cdk-rfcs/issues/${issue.number}`;
}
(issueByStatus[status] ??= []).push({
number: issue.number,
title: issue.title,
link,
assignee: issue.assignee && issue.assignee.login,
champion,
status,
doc,
});
}
return issueByStatus;
}