-
Notifications
You must be signed in to change notification settings - Fork 0
46 lines (38 loc) · 1.76 KB
/
label-epic-task.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
name: Label Child Issues
on:
issues:
types: [opened, edited]
jobs:
label_child_issues:
runs-on: ubuntu-latest
steps:
- name: Fetch Linked Issues
id: get_linked_issues
run: |
linked_issues=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/timeline \
| jq -r '.[] | select(.event == "cross-referenced") | .source.issue.number')
echo "Linked Issues: $linked_issues"
# Assuming there's only one linked parent issue
echo "PARENT_ISSUE=$(echo $linked_issues | head -n 1)" >> $GITHUB_ENV
- name: Get Parent Issue Labels
if: env.PARENT_ISSUE
id: get_parent_labels
run: |
parent_labels=$(curl -s -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/${{ github.repository }}/issues/${{ env.PARENT_ISSUE }} \
| jq -r '.labels[].name')
echo "Parent Labels: $parent_labels"
echo "PARENT_LABELS=$(echo $parent_labels | tr '\n' ',')" >> $GITHUB_ENV
- name: Apply Labels
if: env.PARENT_ISSUE
run: |
labels="epic-task,${{ env.PARENT_LABELS }}"
curl -X POST \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.issue.number }}/labels \
-d "{\"labels\":[$(echo $labels | sed 's/,/","/g' | sed 's/^/"/;s/$/"/')]}"
echo "Applied labels: $labels"