From 5e83ca55e7ddc11cd9ab6af523e92b40b998d2a3 Mon Sep 17 00:00:00 2001 From: MyDrift Date: Tue, 17 Sep 2024 12:43:39 +0200 Subject: [PATCH] fix stuff - enhance logic - fix logic to get PR body as plain text --- .github/workflows/pr-labels.yaml | 24 +++++++++++++++--------- 1 file changed, 15 insertions(+), 9 deletions(-) diff --git a/.github/workflows/pr-labels.yaml b/.github/workflows/pr-labels.yaml index eab956f4..a5f1840e 100644 --- a/.github/workflows/pr-labels.yaml +++ b/.github/workflows/pr-labels.yaml @@ -9,8 +9,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Analyze PR Body and manage labels + shell: bash run: | - body="${{ github.event.pull_request.body }}" + body=$(jq -r '.pull_request.body' "$GITHUB_EVENT_PATH") labels_to_add=() labels_to_remove=() declare -A label_checks=( @@ -20,19 +21,23 @@ jobs: ["Refactoring"]="refactor" ["UI/UX improvement"]="UI/UX" ) - for key in "${!label_checks[@]}"; do - if echo "$body" | grep -q "\- \[x\] $key"; then - labels_to_add+=("${label_checks[$key]}") + for pattern in "${!label_checks[@]}"; do + label="${label_checks[$pattern]}" + if echo "$body" | grep -Eq "\- \[x\] ($pattern)"; then + labels_to_add+=("$label") else - labels_to_remove+=("${label_checks[$key]}") + labels_to_remove+=("$label") fi done - echo "LABELS_TO_ADD=${labels_to_add[*]}" >> $GITHUB_ENV - echo "LABELS_TO_REMOVE=${labels_to_remove[*]}" >> $GITHUB_ENV + + echo "LABELS_TO_ADD=$(IFS=,; echo "${labels_to_add[*]}")" >> $GITHUB_ENV + echo "LABELS_TO_REMOVE=$(IFS=,; echo "${labels_to_remove[*]}")" >> $GITHUB_ENV + - name: Add labels if necessary if: env.LABELS_TO_ADD != '' run: | - for label in ${{ env.LABELS_TO_ADD }}; do + IFS=',' read -ra labels <<< "${LABELS_TO_ADD}" + for label in "${labels[@]}"; do curl -s -X POST \ -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ -H "Accept: application/vnd.github.v3+json" \ @@ -42,7 +47,8 @@ jobs: - name: Remove labels if necessary if: env.LABELS_TO_REMOVE != '' run: | - for label in ${{ env.LABELS_TO_REMOVE }}; do + IFS=',' read -ra labels <<< "${LABELS_TO_REMOVE}" + for label in "${labels[@]}"; do curl -s -X DELETE \ -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ -H "Accept: application/vnd.github.v3+json" \