chore: publish from main

This commit is contained in:
github-actions[bot]
2026-07-27 05:57:42 +00:00
parent 2a1aea5d8d
commit 4f3213dd05
3 changed files with 75 additions and 11 deletions
@@ -214,6 +214,34 @@ jobs:
.replace(/>/g, '>')
.replace(/"/g, '"')
.replace(/'/g, ''');
const escapeMarkdownTableCell = (value) =>
String(value ?? '')
.replace(/\r\n?|\n/g, '\n')
.split('\n')
.map((line) =>
Array.from(line, (character) =>
/^[A-Za-z0-9 .-]$/.test(character)
? character
: `&#${character.codePointAt(0)};`
).join('')
)
.join('<br>');
const normalizeGitHubUrl = (value) => {
const raw = String(value || '').trim();
if (!raw) {
return '';
}
try {
const parsed = new URL(raw);
if (parsed.protocol !== 'https:' || parsed.hostname !== 'github.com') {
return '';
}
return parsed.toString();
} catch {
return '';
}
};
const TRUNCATED_OUTPUT_MARKER = '\n...output truncated...';
const truncateGateOutput = (rawOutput) => {
const normalized = escapeHtml(String(rawOutput || '').trim());
@@ -243,12 +271,17 @@ jobs:
const rows = checkedPlugins.length > 0
? checkedPlugins.map((entry) => {
const name = String(entry?.name || 'unknown');
const name = escapeMarkdownTableCell(entry?.name || 'unknown');
const quality = entry?.quality || {};
const sourceUrl = String(entry?.source_tree_url || '');
const locator = String(entry?.source?.sha || entry?.source?.ref || 'repository');
const sourceCell = sourceUrl ? `[${locator}](${sourceUrl})` : locator;
return `| ${name} | ${quality.vally_lint_status || 'not_run'} | ${quality.smoke_status || 'not_run'} | ${quality.version_match_status || 'not_run'} | ${quality.canvas_structure_status || 'not_run'} | ${quality.overall_status || 'not_run'} | ${sourceCell} |`;
const sourceUrl = normalizeGitHubUrl(entry?.source_tree_url || '');
const locator = escapeMarkdownTableCell(entry?.source?.sha || entry?.source?.ref || 'repository');
const sourceCell = sourceUrl ? `[${locator}](<${sourceUrl}>)` : locator;
const vallyLintStatus = escapeMarkdownTableCell(quality.vally_lint_status || 'not_run');
const smokeStatus = escapeMarkdownTableCell(quality.smoke_status || 'not_run');
const versionMatchStatus = escapeMarkdownTableCell(quality.version_match_status || 'not_run');
const canvasStructureStatus = escapeMarkdownTableCell(quality.canvas_structure_status || 'not_run');
const overallStatus = escapeMarkdownTableCell(quality.overall_status || 'not_run');
return `| ${name} | ${vallyLintStatus} | ${smokeStatus} | ${versionMatchStatus} | ${canvasStructureStatus} | ${overallStatus} | ${sourceCell} |`;
})
: ['| _none_ | not_run | not_run | not_run | not_run | not_run | _n/a_ |'];
const failureDetails = checkedPlugins.flatMap((entry) => {
@@ -296,7 +329,9 @@ jobs:
'',
]
: []),
String(qualityResult.summary || '').trim() || '_No summary provided._',
String(qualityResult.summary || '').trim()
? `<pre><code>${escapeHtml(String(qualityResult.summary).trim())}</code></pre>`
: '_No summary provided._',
].join('\n');
await intakeState.upsertExternalPluginIntakeComment({