feat: websocket improve to fix issue #7268 including support authentication #174
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: "PR description template check" | |
| on: # zizmor: ignore[dangerous-triggers] | |
| pull_request_target: | |
| types: [opened, reopened] | |
| permissions: | |
| pull-requests: write | |
| issues: write | |
| contents: read | |
| jobs: | |
| check-pr-description: | |
| name: Check PR description and close if missing template phrase | |
| runs-on: ubuntu-latest | |
| permissions: | |
| pull-requests: write | |
| issues: write | |
| steps: | |
| - name: Check PR description | |
| uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v8.0.0 | |
| with: | |
| script: | | |
| const pr = context.payload.pull_request; | |
| const body = (pr && pr.body) ? pr.body : ""; | |
| const requiredPhrase = "avoid unnecessary back and forth"; | |
| const exclude = ["UptimeKumaBot", "Copilot", "copilot-swe-agent"]; | |
| const excludeLower = exclude.map((e) => e.toLowerCase()); | |
| const author = pr?.user?.login || ""; | |
| // If author is in exclude list, skip | |
| if (author && excludeLower.includes(author.toLowerCase())) { | |
| core.info(`PR #${pr.number} opened by excluded user '${author}', skipping template check.`); | |
| return; | |
| } | |
| if (!body || !body.toLowerCase().includes(requiredPhrase.toLowerCase())) { | |
| const owner = context.repo.owner; | |
| const repo = context.repo.repo; | |
| const number = pr.number; | |
| const commentBody = `Hello! This pull request does not follow the repository's PR template and is being closed automatically.`; | |
| // Post comment | |
| await github.rest.issues.createComment({ owner, repo, issue_number: number, body: commentBody }); | |
| // Close | |
| await github.rest.pulls.update({ owner, repo, pull_number: number, state: "closed" }); | |
| core.info(`Closed PR #${number} because required phrase was not present.`); | |
| } else { | |
| core.info("PR description contains required phrase; no action taken."); | |
| } |