async function getIssueBanner(repo, issue_number) {
let userRepo = repo.split("/");
if (userRepo.length !== 2) return { message: "Invalid user/repo slug" };
userRepo = userRepo.map((d) => d.replace(/^[^a-z0-9-_]+/gi, ""));
const cleanedRepoSlug = userRepo.join("/");
const banner = box("hsl(25,86%,89%)");
const link =
"https://github.com/" + cleanedRepoSlug + "/issues";
const emergencyBanner = banner(md`
**Problem fetching github issue**
${link}
Something went wrong. Some possibilities:
- You may have given a bad issue number
- You may have been rate-limited by the API`);
if (await isGitHubAPiRateLimited()) return emergencyBanner
let x = "";
try {
x = getIssue(cleanedRepoSlug, issue_number);
} catch (error) {
return emergencyBanner
}
if ((await x).hasOwnProperty("message")) {
return emergencyBanner;
}
return issueBanner(await x);
}