Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion cspell-words.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ grammyjs
libsql
listcontributors
listrepos
issuelist
listissues
cmdlistissues
lyja
multistream
nodenext
Expand Down
12 changes: 6 additions & 6 deletions locales/en.ftl
Original file line number Diff line number Diff line change
Expand Up @@ -250,14 +250,14 @@ e_comment_created =
{ $repoHashtag } #{ $type }


cmd_issuelist_empty = 🥲 No open issues found
cmd_listissues_empty = 🥲 No open issues found

cmd_issuelist_repo = 📦 <b>{ $repoName }</b>
cmd_listissues_repo = 📦 <b>{ $repoName }</b>

cmd_issuelist_issue = — <a href="{ $issueUrl }">{ $issueTitle }</a> → { $assignee }
cmd_listissues_issue = — <a href="{ $issueUrl }">{ $issueTitle }</a> → { $assignee }

cmd_issuelist_unassigned = Unassigned
cmd_listissues_unassigned = Unassigned

cmd_issuelist_header = ✨ <b>Open issues:</b>
cmd_listissues_header = ✨ <b>Open issues:</b>

cmd_issuelist_total = 💎 <b>Total:</b> <code>{ $count }</code>
cmd_listissues_total = 💎 <b>Total:</b> <code>{ $count }</code>
4 changes: 2 additions & 2 deletions src/bot/commands/public/group.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ import type { BotContext } from "#bot";
import { CommandGroup } from "@grammyjs/commands";

import { cmdHelp } from "./help.ts";
import { cmdIssuelist } from "./issuelist.ts";
import { cmdListContributors } from "./listcontributors.ts";
import { cmdlistissues } from "./listissues.ts";
import { cmdListRepos } from "./listrepos.ts";
import { cmdWhoami } from "./whoami.ts";

Expand All @@ -13,6 +13,6 @@ export const userCommands = new CommandGroup<BotContext<any>>().add([
cmdWhoami,
cmdListContributors,
cmdListRepos,
cmdIssuelist,
cmdlistissues,
cmdHelp,
]);
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ interface Section {
count: number;
}

export async function issuelistHandler(ctx: BotContext) {
export async function listissuesHandler(ctx: BotContext) {
const org = config.github.orgName;

const repos = await octokit.paginate(octokit.rest.repos.listForOrg, {
Expand Down Expand Up @@ -52,9 +52,9 @@ export async function issuelistHandler(ctx: BotContext) {
const issueLines = await mapWithConcurrency(openIssues, ISSUE_CONCURRENCY, async (issue) => {
const assigneeText = issue.assignee
? await resolveAssigneeCached(issue.assignee.login, issue.assignee.html_url)
: ctx.t("cmd_issuelist_unassigned");
: ctx.t("cmd_listissues_unassigned");

return ctx.t("cmd_issuelist_issue", {
return ctx.t("cmd_listissues_issue", {
emoji: "",
issueUrl: escapeHtml(issue.html_url),
issueTitle: escapeHtml(issue.title),
Expand All @@ -63,30 +63,30 @@ export async function issuelistHandler(ctx: BotContext) {
});

return {
text: `${ctx.t("cmd_issuelist_repo", { repoName: repo.name })}\n${issueLines.join("\n")}`,
text: `${ctx.t("cmd_listissues_repo", { repoName: repo.name })}\n${issueLines.join("\n")}`,
count: openIssues.length,
};
});

const sections = rawSections.filter((s): s is Section => s !== null);

if (sections.length === 0) {
return await ctx.html.replyToMessage(ctx.t("cmd_issuelist_empty"));
return await ctx.html.replyToMessage(ctx.t("cmd_listissues_empty"));
}

const totalIssues = sections.reduce((acc, s) => acc + s.count, 0);

const body = sections.map((s) => s.text).join("\n\n");
return await ctx.html.replyToMessage(
`${ctx.t("cmd_issuelist_header")}\n\n${body}\n\n${ctx.t("cmd_issuelist_total", { count: totalIssues })}`,
`${ctx.t("cmd_listissues_header")}\n\n${body}\n\n${ctx.t("cmd_listissues_total", { count: totalIssues })}`,
{ disable_notification: true },
);
}

export const cmdIssuelist = createCommand({
template: "issuelist",
export const cmdlistissues = createCommand({
template: "listissues",
description: "List all open issues grouped by repository",
handler: issuelistHandler,
handler: listissuesHandler,
scopes: [
{ type: "chat", chat_id: config.bot.chatId },
{ type: "chat_administrators", chat_id: config.bot.chatId },
Expand Down
Loading