Files
NetAlertX/.github/workflows/enforce-template.yml
Workflow config file is invalid. Please check your config file: yaml: line 45: could not find expected ':'
Jokob @NetAlertX fed621f690 Disable
Updated the GitHub Actions workflow to enforce issue templates. Added handling for manual runs and improved comments.
2026-01-27 22:17:29 +11:00

68 lines
2.1 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

name: Enforce Issue Templates
on:
workflow_dispatch:
permissions:
issues: write
jobs:
enforce-template:
runs-on: ubuntu-latest
steps:
- name: Check for template usage
uses: actions/github-script@v7
with:
script: |
const body = (context.payload.issue?.body || "").toLowerCase();
const title = (context.payload.issue?.title || "").toLowerCase();
// Manual runs don't have an issue context
if (!context.payload.issue) {
console.log("No issue context (manual run) nothing to enforce.");
return;
}
// 1. Check for template marker
const usedTemplate = body.includes('netalertx_template');
// 2. Security bypass
const isSecurity =
title.includes('security') ||
title.includes('vulnerability');
if (!usedTemplate && !isSecurity) {
const warningLabel = 'missing-template 📋';
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
labels: [warningLabel]
});
const commentMessage = `
Hi there! 👋 Thanks for reaching out.
To help the maintainers triage issues effectively, we **enforce the use of issue templates**.
Please [open a new issue here](https://github.com/${context.repo.owner}/${context.repo.repo}/issues/new/choose)
and select the appropriate template.
Thank you! 🙏
`;
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.issue.number,
body: commentMessage
});
// Intentionally NOT closing issues in manual mode
console.log("Issue missing template labeled and commented.");
return;
}
console.log("Template detected or security issue no action taken.");