From e47589096dd2085aabd723683e39d5af396f6c22 Mon Sep 17 00:00:00 2001 From: Ryan Luu Date: Fri, 1 Nov 2024 19:39:58 +0000 Subject: [PATCH] Add a workflow for checking issue versions --- .github/workflows/bug-report-version.yml | 73 ++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 .github/workflows/bug-report-version.yml diff --git a/.github/workflows/bug-report-version.yml b/.github/workflows/bug-report-version.yml new file mode 100644 index 0000000..ce4b70b --- /dev/null +++ b/.github/workflows/bug-report-version.yml @@ -0,0 +1,73 @@ +name: Bug Report Version Check +on: + issues: + types: [opened] + +jobs: + check-bug-report: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v2 + + - name: Read Bloxstrap version from .csproj + id: read-version + run: | + version=$(grep -oPm1 "(?<=)[^<]+" Bloxstrap.csproj) + echo "::set-output name=version::$version" + + - name: Check issue body for Bloxstrap version + uses: actions/github-script@v7 + id: check-issue + with: + script: | + const issueBody = context.payload.issue.body; + const versionHeader = issueBody.match(/### Bloxstrap Version/); + const versionMatch = issueBody.match(/v\d+\.\d+\.\d+/); + const latestVersion = '${{ steps.read-version.outputs.version }}'; + + if (!versionHeader) { + await github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: 'Please include the "### Bloxstrap Version" header in your bug report.' + }); + return github.rest.issues.update({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + state: 'closed' + }); + } + + if (!versionMatch) { + await github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: 'Please specify the Bloxstrap version you are using.' + }); + return github.rest.issues.update({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + state: 'closed' + }); + } + + const issueVersion = versionMatch[0]; + if (issueVersion !== latestVersion) { + await github.rest.issues.createComment({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + body: `You are using an outdated version of Bloxstrap (${issueVersion}). Please update to the latest version (${latestVersion}).` + }); + return github.rest.issues.update({ + issue_number: context.issue.number, + owner: context.repo.owner, + repo: context.repo.repo, + state: 'closed' + }); + } \ No newline at end of file