Fix: Plot overlapping with title #7
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: 🛠️ Status Labels | |
| on: | |
| pull_request: | |
| types: | |
| - opened | |
| - reopened | |
| - closed | |
| permissions: | |
| contents: read | |
| issues: write | |
| pull-requests: write | |
| jobs: | |
| update-labels: | |
| name: Update Status Labels | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set PR status to review | |
| if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' }} | |
| uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| console.log('PR opened event triggered'); | |
| const prNumber = context.payload.pull_request?.number; | |
| if (!prNumber) { | |
| console.log('Error: PR number is undefined'); | |
| return; | |
| } | |
| console.log(`PR Number: ${prNumber}`); | |
| // Print current labels on the PR | |
| const prLabels = context.payload.pull_request.labels || []; | |
| console.log('Current PR Labels:', prLabels.map(label => label.name)); | |
| // Remove all labels starting with 'status:' from the PR, except 'status:review' | |
| let alreadyInReview = false; | |
| for (const label of prLabels) { | |
| if (label.name === 'status:review') { | |
| alreadyInReview = true; | |
| } else if (label.name.startsWith('status:')) { | |
| await github.rest.issues.removeLabel({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: prNumber, | |
| name: label.name | |
| }); | |
| } | |
| } | |
| // Add 'status:review' label to the PR if not already present | |
| if (!alreadyInReview) { | |
| await github.rest.issues.addLabels({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: prNumber, | |
| labels: ['status:review'] | |
| }); | |
| } | |
| // Process linked issues | |
| const linkedIssues = context.payload.pull_request.body?.match(/(?:Fixes|Closes) #\d+/g) || []; | |
| console.log(`Linked Issues: ${linkedIssues}`); | |
| for (const issueRef of linkedIssues) { | |
| const issueNumber = parseInt(issueRef.split('#')[1]); | |
| console.log(`Processing linked issue: ${issueNumber}`); | |
| // Print current labels on the linked issue | |
| const issueLabels = (await github.rest.issues.listLabelsOnIssue({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: issueNumber | |
| })).data; | |
| console.log(`Current Labels on Issue #${issueNumber}:`, issueLabels.map(label => label.name)); | |
| // Check if 'status:review' is already present | |
| let alreadyInReview = false; | |
| for (const label of issueLabels) { | |
| if (label.name === 'status:review') { | |
| alreadyInReview = true; | |
| } else if (label.name.startsWith('status:')) { | |
| await github.rest.issues.removeLabel({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: issueNumber, | |
| name: label.name | |
| }); | |
| } | |
| } | |
| // Add 'status:review' label to the linked issue if not already present | |
| if (!alreadyInReview) { | |
| await github.rest.issues.addLabels({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: issueNumber, | |
| labels: ['status:review'] | |
| }); | |
| console.log(`Added status:review label to issue: ${issueNumber}`); | |
| } else { | |
| console.log(`status:review label already present on issue: ${issueNumber}`); | |
| } | |
| } | |
| - name: Set PR and linked issues to done | |
| if: ${{ github.event.action == 'closed' && github.event.pull_request.merged == true }} | |
| uses: actions/github-script@v7 | |
| with: | |
| script: | | |
| console.log('PR closed and merged event triggered'); | |
| const prNumber = context.payload.pull_request?.number; | |
| if (!prNumber) { | |
| console.log('Error: PR number is undefined'); | |
| return; | |
| } | |
| console.log(`PR Number: ${prNumber}`); | |
| await github.rest.issues.removeLabel({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: prNumber, | |
| name: 'status:review' | |
| }).catch(() => console.log('status:review label not found on PR')); | |
| await github.rest.issues.addLabels({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: prNumber, | |
| labels: ['status:done'] | |
| }); | |
| console.log('Added status:done label to PR'); | |
| const linkedIssues = context.payload.pull_request.body?.match(/(?:Fixes|Closes|Implements|Resolves) #\d+/g) || []; | |
| console.log(`Linked Issues: ${linkedIssues}`); | |
| for (const issueRef of linkedIssues) { | |
| const issueNumber = parseInt(issueRef.split('#')[1]); | |
| console.log(`Processing linked issue: ${issueNumber}`); | |
| await github.rest.issues.removeLabel({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: issueNumber, | |
| name: 'status:review' | |
| }).catch(() => console.log('status:review label not found on issue')); | |
| await github.rest.issues.addLabels({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: issueNumber, | |
| labels: ['status:done'] | |
| }); | |
| console.log(`Added status:done label to issue: ${issueNumber}`); | |
| } |