From c1df64b8424a1f77d13d9eca98c80d4ecaaf61dc Mon Sep 17 00:00:00 2001 From: okxlin Date: Mon, 5 Jun 2023 02:16:34 +0800 Subject: [PATCH] =?UTF-8?q?feat:=E7=A7=BB=E9=99=A4=E9=94=99=E8=AF=AFworkfl?= =?UTF-8?q?ows=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release_note_check.yml | 118 ----------------------- 1 file changed, 118 deletions(-) delete mode 100644 .github/workflows/release_note_check.yml diff --git a/.github/workflows/release_note_check.yml b/.github/workflows/release_note_check.yml deleted file mode 100644 index 3221df74..00000000 --- a/.github/workflows/release_note_check.yml +++ /dev/null @@ -1,118 +0,0 @@ -name: PR 发布说明检查 - -on: - pull_request: - types: - - opened - - synchronize - - edited - -jobs: - release-note-check: - runs-on: ubuntu-latest - - steps: - - name: 检出代码 - uses: actions/checkout@v3 - - - name: 设置 Octokit - uses: actions/github-script@v5 - with: - github-token: ${{ secrets.GITHUBTOKEN }} - script: | - const { Octokit } = require("@octokit/rest"); - const octokit = new Octokit(); - - - name: 安装 Node.js - uses: actions/setup-node@v2 - with: - node-version: '16' - - - name: 安装依赖 - run: npm install - - - name: 导入 Core 模块 - run: npm install @actions/core - - - name: 检查发布说明 - uses: actions/github-script@v5 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - script: | - const core = require('@actions/core'); - const pr = context.payload.pull_request; - const releaseNoteRegex = /(fix|feat)/i; - const releaseNoteTitle = pr.title.toLowerCase(); - const releaseNoteBody = pr.body.toLowerCase(); - const approvedLabel = 'approved'; - - function getIssueComment(username) { - const comment = `@${username}, 请在 PR 的标题或正文中添加包含 'fix' 或 'feat' 的发布说明。Please add a release note with 'fix' or 'feat' in the PR title or body.`; - return comment; - } - - async function addLabelToPR(label) { - await octokit.issues.addLabels({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: pr.number, - labels: [label] - }); - } - - async function addCommentToPR(comment) { - await octokit.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: pr.number, - body: comment - }); - } - - // 检查是否提供了发布说明 - if (releaseNoteRegex.test(releaseNoteTitle) || releaseNoteRegex.test(releaseNoteBody)) { - console.log("找到发布说明。Release note found."); - - // 检查 PR 是否有 'approved' 标签 - const labels = await octokit.issues.listLabelsOnIssue({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: pr.number - }); - - const hasApprovedLabel = labels.data.some(label => label.name.toLowerCase() === approvedLabel); - if (!hasApprovedLabel) { - // 添加 'do-not-merge/release-note-label-needed' 标签 - const label = 'do-not-merge/release-note-label-needed'; - await addLabelToPR(label); - console.log(`已向 PR 添加标签 '${label}'。Label '${label}' added to the PR。`); - - // 添加评论请求批准 - const issueComment = getIssueComment(pr.user.login); - await addCommentToPR(issueComment); - core.setFailed("需要发布说明。无法合并 PR。Release note required. PR cannot be merged."); - } else { - console.log(`PR 有 '${approvedLabel}' 标签。可以合并。PR has the '${approvedLabel}' label. It can be merged.`); - } - } else { - console.log("未找到发布说明。Release note not found."); - - const labels = await octokit.issues.listLabelsOnIssue({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: pr.number - }); - - let hasApprovedLabel = labels.data.some(label => label.name.toLowerCase() === approvedLabel); - if (!hasApprovedLabel) { - const label = 'do-not-merge/release-note-label-needed'; - await addLabelToPR(label); - console.log(`已向 PR 添加标签 '${label}'。Label '${label}' added to the PR。`); - - const issueComment = getIssueComment(pr.user.login); - await addCommentToPR(issueComment); - core.setFailed("需要发布说明。无法合并 PR。Release note required. PR cannot be merged."); - } else { - console.log(`PR 有 '${approvedLabel}' 标签。可以合并。PR has the '${approvedLabel}' label. It can be merged.`); - } - }