mirror of
https://github.com/jokob-sk/NetAlertX.git
synced 2026-03-31 15:22:26 -07:00
69 lines
2.3 KiB
YAML
69 lines
2.3 KiB
YAML
name: Enforce Issue Templates
|
|
|
|
on:
|
|
issues:
|
|
types: [opened]
|
|
|
|
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();
|
|
|
|
// 1. Check for template marker
|
|
const usedTemplate = body.includes('netalertx_template');
|
|
|
|
// 2. Security Bypass: Don't close if it looks like a security report
|
|
const isSecurity = title.includes('security') || title.includes('vulnerability');
|
|
|
|
if (!usedTemplate && !isSecurity) {
|
|
const warningLabel = 'missing-template 📋';
|
|
|
|
// Add descriptive label
|
|
await github.rest.issues.addLabels({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
issue_number: context.issue.number,
|
|
labels: [warningLabel]
|
|
});
|
|
|
|
// Post polite comment with direct link to new issue
|
|
const commentMessage = `
|
|
Hi there! 👋 Thanks for reaching out.
|
|
|
|
To help the maintainers triage issues effectively, we **enforce the use of issue templates**. This helps us resolve problems much faster!
|
|
|
|
**This issue has been closed** because it is missing the required template.
|
|
|
|
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 for your understanding! 🙏
|
|
`;
|
|
|
|
await github.rest.issues.createComment({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
issue_number: context.issue.number,
|
|
body: commentMessage
|
|
});
|
|
|
|
// Close the issue (but do NOT lock it)
|
|
await github.rest.issues.update({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
issue_number: context.issue.number,
|
|
state: 'closed'
|
|
});
|
|
|
|
return;
|
|
}
|
|
|
|
console.log("Template detected or security keyword found ✅. Proceeding."); |