import { daysAgoFromToday } from "https://esm.town/v/ramkarthik/daysAgoFromToday";
import { fetchJSON } from "https://esm.town/v/stevekrouse/fetchJSON?v=41";
export const staleGithubPRs = async (
owner: string,
repo: string,
token: string,
staleSinceDaysAgo: number,
) => {
let options = {
"headers": {
"Authorization": "Bearer " + token,
"X-GitHub-Api-Version": "2022-11-28",
},
};
let data = await fetchJSON(
`https://api.github.com/repos/${owner}/${repo}/pulls`,
options,
);
let pullRequests = [];
let staleDate = daysAgoFromToday(staleSinceDaysAgo);
if (data && data.length > 0) {
let prs = data?.filter((d) => d.updated_at <= staleDate).map((d) => {
return {
url: d.html_url,
title: d.title,
author: d.user.login,
created_at: d.created_at,
updated_at: d.updated_at,
reviewers: d.requested_reviewers.map((r) => r.login),
head: d.head.ref,
base: d.base.ref,
};
});
pullRequests.push(...prs);
}
return pullRequests;
};