Files
CordysCRM/.github/workflows/add-labels-for-pr.yml
2025-01-13 10:39:18 +08:00

39 lines
1.5 KiB
YAML

on:
workflow_dispatch:
name: Add Labels to PR
jobs:
add_labels:
runs-on: ubuntu-latest
steps:
# Checkout the repository code
- name: Checkout code
uses: actions/checkout@v3
# Extract and format the labels from the comment as "username: label"
- name: Extract reviewer and labels
if: ${{ github.event_name == 'issue_comment' && github.event.issue.pull_request && startsWith(github.event.comment.body, '/') }}
id: extract_labels
run: |
comment_body="${{ github.event.comment.body }}"
reviewer="${{ github.event.comment.user.login }}"
# Clean up comment and extract labels
raw_labels=$(echo "$comment_body" | sed 's|^/||')
formatted_labels=$(echo "$raw_labels" | awk -v reviewer="$reviewer" '{split($0, arr, ","); for (i in arr) {gsub(/^ +| +$/, "", arr[i]); print reviewer ": " arr[i]}}')
# Set the formatted labels as an environment variable (new way, not using set-output)
echo "labels=$formatted_labels" >> $GITHUB_ENV
# Output labels for debugging
echo "Formatted labels: $formatted_labels"
# Add the extracted labels to the PR
- name: Add labels via PR comment
if: ${{ github.event_name == 'issue_comment' && github.event.issue.pull_request && startsWith(github.event.comment.body, '/') }}
uses: actions-ecosystem/action-add-labels@v1
with:
github_token: ${{ secrets.GITHUBTOKEN }}
labels: ${{ env.labels }}