File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1- name : PR Label Sync
1+ name : Label sync
22
33on :
44 pull_request_target :
55 types : [opened, reopened, synchronize]
6- pull_request :
7- types : [opened, reopened, synchronize]
8- workflow_call :
9- inputs :
10- copy_issue_labels :
11- type : boolean
12- default : true
13- description : " Copy labels from linked issue"
14-
15- permissions :
16- contents : read
17- pull-requests : write
6+ issues :
7+ types : [opened, reopened]
188
199jobs :
20- copy-issue-labels :
21- if : inputs.copy_issue_labels == true
22- runs-on : ubuntu-latest
23- steps :
24- - name : Extract issue number from PR
25- id : extract-issue
26- run : |
27- BODY='${{ github.event.pull_request.body }}'
28- TITLE='${{ github.event.pull_request.title }}'
29-
30- ISSUE=$(echo "$BODY $TITLE" | \
31- grep -oE '(closes|fixes|resolves|addresses)\s+#[[:digit:]]+' | \
32- grep -oE '#[[:digit:]]+' | head -1 | tr -d '#')
33-
34- if [ -n "$ISSUE" ]; then
35- echo "issue_number=$ISSUE" >> "$GITHUB_OUTPUT"
36- fi
37-
38- - name : Copy labels from issue to PR
39- if : steps.extract-issue.outputs.issue_number != ''
40- run : |
41- ISSUE_NUM=${{ steps.extract-issue.outputs.issue_number }}
42- PR_NUM=${{ github.event.pull_request.number }}
43-
44- LABELS=$(gh issue view "$ISSUE_NUM" --json labels --jq '.labels[].name')
45-
46- for label in $LABELS; do
47- gh pr edit "$PR_NUM" --add-label "$label" 2>/dev/null || true
48- done
49- env :
50- GH_TOKEN : ${{ github.token }}
10+ label-sync :
11+ permissions :
12+ pull-requests : write
13+ uses : php-fast-forward/dev-tools/.github/workflows/label-sync.yml@main
You can’t perform that action at this time.
0 commit comments