Skip to content

Commit

Permalink
won't fail if issue number isnt found
Browse files Browse the repository at this point in the history
  • Loading branch information
blackgirlbytes authored Oct 2, 2024
1 parent bd27b56 commit 14b5a54
Showing 1 changed file with 18 additions and 16 deletions.
34 changes: 18 additions & 16 deletions .github/workflows/add-hacktoberfest-labels.yml
Original file line number Diff line number Diff line change
@@ -1,29 +1,33 @@
name: Propagate Issue Labels to PR

on:
pull_request:
types: [opened, synchronize]

jobs:
copy_labels:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Get issue number from PR body
id: issue_number
run: |
issue_number=$(echo "${{ github.event.pull_request.body }}" | grep -oP '(?<=#)\d+' | head -n1)
if [ -z "$issue_number" ]; then
echo "No issue number found in PR body"
echo "has_issue=false" >> $GITHUB_OUTPUT
else
echo "Issue number found: $issue_number"
echo "has_issue=true" >> $GITHUB_OUTPUT
echo "issue_number=$issue_number" >> $GITHUB_OUTPUT
fi
uses: actions/github-script@v6gi
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const prBody = context.payload.pull_request.body || '';
// Remove HTML comments
const bodyWithoutComments = prBody.replace(/<!--[\s\S]*?-->/g, '');
// Find issue number
const match = bodyWithoutComments.match(/(?:Resolves|Closes) #(\d+)/);
const issueNumber = match ? match[1] : null;
if (issueNumber) {
console.log(`Issue number found: ${issueNumber}`);
core.setOutput('has_issue', 'true');
core.setOutput('issue_number', issueNumber);
} else {
console.log('No issue number found in PR body');
core.setOutput('has_issue', 'false');
}
- name: Get labels from linked issue
if: steps.issue_number.outputs.has_issue == 'true'
uses: actions/github-script@v6
Expand All @@ -43,7 +47,6 @@ jobs:
console.log(`Error fetching issue labels: ${error}`);
return [];
}
- name: Check for required labels
if: steps.issue_number.outputs.has_issue == 'true' && steps.issue_labels.outputs.result != '[]'
id: check_labels
Expand All @@ -55,7 +58,6 @@ jobs:
const hacktoberfestLabel = labels.some(label => label.toLowerCase().includes('hacktoberfest'));
const sizeLabelPresent = labels.some(label => ['small', 'medium', 'large'].includes(label.toLowerCase()));
return hacktoberfestLabel || sizeLabelPresent;
- name: Add labels to PR
if: steps.issue_number.outputs.has_issue == 'true' && steps.check_labels.outputs.result == 'true'
uses: actions/github-script@v6
Expand Down

0 comments on commit 14b5a54

Please sign in to comment.