From 67a242e00c8923f550c1bc664f6602a423d204bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=A4=E5=BF=83?= <3277200+sentsim@users.noreply.github.com> Date: Sun, 24 Dec 2023 14:55:28 +0800 Subject: [PATCH] =?UTF-8?q?ci:=20=E4=BC=98=E5=8C=96=20issue=20=E8=A2=AB?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E5=92=8C=E8=A2=AB=E7=BC=96=E8=BE=91=E6=97=B6?= =?UTF-8?q?=E7=9A=84=20action=20=E6=A0=A1=E9=AA=8C=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/issue-opened.yml | 33 +++++++++++++++++++----------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/.github/workflows/issue-opened.yml b/.github/workflows/issue-opened.yml index e439ed4c..e041aa99 100644 --- a/.github/workflows/issue-opened.yml +++ b/.github/workflows/issue-opened.yml @@ -1,4 +1,4 @@ -name: Issue opened +name: Issue Opened on: issues: @@ -31,24 +31,33 @@ jobs: issue_number: context.issue.number, }; - const issue = context.payload.issue; - const issueBody = issue.body; - const requiredString = "layui-issue-template"; - const isCreatedByBot = context.payload.sender.type === 'Bot'; - const isValid = issueBody.includes(requiredString); + const payload = context.payload; + const isCreatedByBot = payload.sender.type === 'Bot'; + const issue = payload.issue; + const isValid = issue.body && issue.body.includes('layui-issue-template'); // 跳过 closed 状态的 issues if (issue.state === 'closed') { return console.log('Issue is closed.'); } + // 若修改的不是内容,则不必校验 + if (payload.action === 'edited') { + if (payload.changes && !payload.changes.body.from) { + return console.log('Edited fields exclude "body".'); + } + } + // 不符合规则或由机器人创建 - if (!isValid || isCreatedByBot) { - github.rest.issues.createComment({ - ...config, - body: `@${context.payload.sender.login} 你好,为了提升沟通效率,我们对 Issue 制定了严格的要求,你的 Issue 因不符合规定而被自动关闭。 - 建议您在下次创建 Issue 时,遵循相应规范和社区行为准则。谢谢。\n > ${process.env.CONTRIBUTING}` - }); + if (isCreatedByBot || !isValid) { + if (!isCreatedByBot) { + github.rest.issues.createComment({ + ...config, + body: `@${payload.sender.login} 你好,为了提升沟通效率,我们对 Issue 制定了严格的要求,你的 Issue 因不符合规定而被自动关闭。 + 建议您在下次创建 Issue 时,遵循相应规范和社区行为准则。谢谢。\n > ${process.env.CONTRIBUTING}` + }); + } + // 给 issue 添加指定标签和关闭 github.rest.issues.addLabels({ ...config, labels: ['invalid']