Compare commits
2
Commits
4fa7d8b6d0
...
296f825347
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
296f825347 | ||
|
|
391743780d |
+33
-2
@@ -115,9 +115,9 @@ export async function handleWebhook(
|
|||||||
env.discordWebhookUrl,
|
env.discordWebhookUrl,
|
||||||
`**${owner}/${repo}** PR #${pr.number} reviewed` +
|
`**${owner}/${repo}** PR #${pr.number} reviewed` +
|
||||||
(result.data && result.data["review"] && (result.data["review"] as Record<string, unknown>)["score"]
|
(result.data && result.data["review"] && (result.data["review"] as Record<string, unknown>)["score"]
|
||||||
? ` — score ${(result.data["review"] as Record<string, unknown>)["score"]}/10`
|
? ` — score ${(result.data["review"] as Record<string, unknown>)["score"]}/100`
|
||||||
: "") +
|
: "") +
|
||||||
`\n${result.markdown.slice(0, 4000)}`,
|
`\n${htmlToDiscordPlain(result.markdown).slice(0, 4000)}`,
|
||||||
"✅ PR-Agent Review Complete",
|
"✅ PR-Agent Review Complete",
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -147,6 +147,37 @@ async function getHttpx() {
|
|||||||
return fetch;
|
return fetch;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** Strip HTML table markup down to Discord-friendly plain text.
|
||||||
|
* Discord embeds render limited markdown — raw <table>/<td>/<tr> tags
|
||||||
|
* would show as literal HTML. Convert the reviewer table into lines. */
|
||||||
|
function htmlToDiscordPlain(html: string): string {
|
||||||
|
let s = html
|
||||||
|
.replace(/<details>/g, "")
|
||||||
|
.replace(/<\/details>/g, "")
|
||||||
|
.replace(/<summary>/g, "▶ ")
|
||||||
|
.replace(/<\/summary>/g, "\n")
|
||||||
|
.replace(/<br\s*\/?>/gi, "\n")
|
||||||
|
.replace(/<\/tr>/gi, "\n")
|
||||||
|
.replace(/<\/td>/gi, "")
|
||||||
|
.replace(/<\/th>/gi, "")
|
||||||
|
.replace(/<td[^>]*>/gi, "")
|
||||||
|
.replace(/<th[^>]*>/gi, "")
|
||||||
|
.replace(/<tr[^>]*>/gi, "")
|
||||||
|
.replace(/<table[^>]*>/gi, "")
|
||||||
|
.replace(/<\/table>/gi, "")
|
||||||
|
.replace(/<li[^>]*>/gi, "• ")
|
||||||
|
.replace(/<[^>]+>/g, "")
|
||||||
|
.replace(/ /g, " ")
|
||||||
|
.replace(/&/g, "&")
|
||||||
|
.replace(/</g, "<")
|
||||||
|
.replace(/>/g, ">")
|
||||||
|
.replace(/"/g, '"')
|
||||||
|
.replace(/'/g, "'")
|
||||||
|
.replace(/\n{3,}/g, "\n\n")
|
||||||
|
.trim();
|
||||||
|
return s;
|
||||||
|
}
|
||||||
|
|
||||||
async function sendDiscord(webhook: string, content: string, title?: string): Promise<void> {
|
async function sendDiscord(webhook: string, content: string, title?: string): Promise<void> {
|
||||||
try {
|
try {
|
||||||
await fetch(webhook, {
|
await fetch(webhook, {
|
||||||
|
|||||||
Reference in new issue
Block a user