Skip to content

希望支持记住播放进度 #14

希望支持记住播放进度

希望支持记住播放进度 #14

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'],
});
}