ci: accept common environment aliases in issue gate

This commit is contained in:
Ogulcan Celik 2026-07-05 22:49:26 +03:00
parent 96fc43c960
commit cbd9b07fac
1 changed files with 24 additions and 7 deletions

View File

@ -31,10 +31,22 @@ jobs:
'### Environment',
];
const requiredEnvironmentFields = [
/^\s*(?:-\s*)?Herdr version:[^\S\r\n]*\S.*$/m,
/^\s*(?:-\s*)?Update channel(?: \([^)]+\))?:[^\S\r\n]*\S.*$/im,
/^\s*(?:-\s*)?Operating system:[^\S\r\n]*\S.*$/m,
/^\s*(?:-\s*)?Terminal:[^\S\r\n]*\S.*$/m,
{
label: 'herdr version',
pattern: /^\s*(?:-\s*)?Herdr version:[^\S\r\n]*\S.*$/im,
},
{
label: 'update channel',
pattern: /^\s*(?:-\s*)?(?:Update channel(?: \([^)]+\))?|Channel):[^\S\r\n]*\S.*$/im,
},
{
label: 'operating system',
pattern: /^\s*(?:-\s*)?(?:Operating system|OS):[^\S\r\n]*\S.*$/im,
},
{
label: 'terminal',
pattern: /^\s*(?:-\s*)?Terminal:[^\S\r\n]*\S.*$/im,
},
];
function escapeRegExp(value) {
@ -125,7 +137,12 @@ jobs:
reproduction,
impact,
].every(hasContent);
const hasEnvironmentFields = hasContent(environment) && requiredEnvironmentFields.every((pattern) => pattern.test(environment));
const missingEnvironmentFields = hasContent(environment)
? requiredEnvironmentFields
.filter((field) => !field.pattern.test(environment))
.map((field) => field.label)
: requiredEnvironmentFields.map((field) => field.label);
const hasEnvironmentFields = missingEnvironmentFields.length === 0;
if (hasBugConfirmation && hasBugTemplate && extraHeadings.length > 0) {
const message = [
`hi @${author}, thanks for opening this.`,
@ -135,7 +152,7 @@ jobs:
'please use the exact template sections only. bug reports should describe observed behavior, exact reproduction steps, impact, and environment. extra root-cause analysis, proposed fixes, implementation plans, or generated diagnosis make reports harder to triage.',
...(hasEnvironmentFields ? [] : [
'',
'this report is also missing required environment details: herdr version, update channel, operating system, and terminal.',
`this report is also missing required environment details: ${missingEnvironmentFields.join(', ')}.`,
]),
'',
'closing this so the issue tracker stays limited to concise, actionable bug reports.',
@ -167,7 +184,7 @@ jobs:
const message = [
`hi @${author}, thanks for opening this.`,
'',
'this bug report is missing required environment details. please edit the issue and fill in herdr version, update channel, operating system, and terminal.',
`this bug report is missing required environment details: ${missingEnvironmentFields.join(', ')}. please edit the issue and fill in the missing fields.`,
'',
'shell and relevant config are optional, but they help when they affect the bug.',
].join('\n');