mirror of
https://github.com/tiajinsha/JKVideo.git
synced 2026-04-04 22:49:02 +08:00
86 lines
3.2 KiB
YAML
86 lines
3.2 KiB
YAML
name: Auto Close Invalid Issues
|
||
|
||
on:
|
||
issues:
|
||
types: [opened]
|
||
|
||
jobs:
|
||
check-issue:
|
||
runs-on: ubuntu-latest
|
||
permissions:
|
||
issues: write
|
||
steps:
|
||
- uses: actions/github-script@v7
|
||
env:
|
||
ABUSIVE_WORDS: ${{ secrets.ABUSIVE_WORDS }}
|
||
with:
|
||
script: |
|
||
const { owner, repo } = context.repo;
|
||
const issue_number = context.payload.issue.number;
|
||
const title = (context.payload.issue.title || '').toLowerCase();
|
||
const body = (context.payload.issue.body || '').toLowerCase();
|
||
const text = title + ' ' + body;
|
||
|
||
// --- 第一层:攻击性内容(词库存于 Secret: ABUSIVE_WORDS,逗号分隔)---
|
||
const abusiveWords = (process.env.ABUSIVE_WORDS || '').split(',').map(w => w.trim()).filter(Boolean);
|
||
const isAbusive = abusiveWords.some(w => w && text.includes(w.toLowerCase()));
|
||
|
||
if (isAbusive) {
|
||
await github.rest.issues.createComment({
|
||
owner, repo, issue_number,
|
||
body: [
|
||
'你好,',
|
||
'',
|
||
'此 Issue 包含不文明内容,已自动关闭。',
|
||
'',
|
||
'我们欢迎任何建设性的反馈,但请保持礼貌和尊重。',
|
||
'如有 Bug 或功能建议,请使用官方模板重新提交,谢谢。',
|
||
].join('\n'),
|
||
});
|
||
await github.rest.issues.update({
|
||
owner, repo, issue_number,
|
||
state: 'closed',
|
||
state_reason: 'not_planned',
|
||
});
|
||
await github.rest.issues.addLabels({
|
||
owner, repo, issue_number,
|
||
labels: ['invalid'],
|
||
});
|
||
return;
|
||
}
|
||
|
||
// --- 第二层:未走模板 ---
|
||
const templateMarkers = [
|
||
'### 运行平台',
|
||
'### 问题描述',
|
||
'### 复现步骤',
|
||
'### 需求背景',
|
||
'### 建议方案',
|
||
];
|
||
const isFromTemplate = templateMarkers.some(m => body.includes(m.toLowerCase()));
|
||
|
||
if (!isFromTemplate) {
|
||
await github.rest.issues.createComment({
|
||
owner, repo, issue_number,
|
||
body: [
|
||
'感谢你的反馈!',
|
||
'',
|
||
'此 Issue 未按照模板填写,已自动关闭。',
|
||
'',
|
||
'请使用以下方式重新提交:',
|
||
'- 🐛 **Bug 报告** → 使用 [Bug 报告模板](../../issues/new?template=bug_report.yml)',
|
||
'- 💡 **功能建议** → 使用 [功能建议模板](../../issues/new?template=feature_request.yml)',
|
||
'- 💬 **使用咨询** → 前往 [Discussions](../../discussions) 提问',
|
||
].join('\n'),
|
||
});
|
||
await github.rest.issues.update({
|
||
owner, repo, issue_number,
|
||
state: 'closed',
|
||
state_reason: 'not_planned',
|
||
});
|
||
await github.rest.issues.addLabels({
|
||
owner, repo, issue_number,
|
||
labels: ['invalid'],
|
||
});
|
||
}
|