mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2026-03-31 07:12:23 -07:00
Updated the GitHub Actions workflow to enforce issue templates. Added handling for manual runs and improved comments.
68 lines
2.1 KiB
YAML
68 lines
2.1 KiB
YAML
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.");
|