Set labels - PR #8271 ("rockchip64-6.15: Fix DP alt mode on some rk3399 boards") #2820
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Automatic Pull Request Labeling | |
# Sets labels automatically based on: | |
# - PR size (job: label-size) | |
# - File categories using .github/labeler config (job: label-category) | |
# - PR creation date for quarterly tracking (job: label-by-date) | |
# - Removes "Ready to merge" label on PR update (job: label-remove) | |
run-name: 'Set labels - PR #${{ github.event.pull_request.number }} ("${{ github.event.pull_request.title }}")' | |
on: pull_request_target | |
# Grant required permissions globally | |
permissions: | |
contents: read # Required for checking changed files | |
pull-requests: write # Required for labeling PRs | |
issues: write # Required for adding/removing labels | |
jobs: | |
label-remove: | |
name: "Remove Ready to merge" | |
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the pull request | |
uses: actions/checkout@v4 | |
- name: Check for label using GH CLI | |
id: check | |
run: | | |
gh pr view ${{ github.event.pull_request.number }} --json labels -q '.labels[].name' | grep -q 'Ready to merge' && echo "has_label=true" >> $GITHUB_OUTPUT || echo "has_label=false" >> $GITHUB_OUTPUT | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Remove "Ready to merge" label | |
if: steps.check.outputs.has_label == 'true' | |
uses: PauMAVA/add-remove-label-action@v1.0.3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
add: "" | |
remove: "Ready to merge" | |
label-category: | |
name: "Category Labels" | |
runs-on: ubuntu-latest | |
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }} | |
steps: | |
# Checks out the repository to read files for matching with labeler config | |
- uses: actions/checkout@v4 | |
# Applies labels based on the .github/labeler.yml config | |
- uses: actions/labeler@v5 | |
with: | |
repo-token: "${{ secrets.GITHUB_TOKEN }}" | |
label-size: | |
name: "Size Label" | |
runs-on: ubuntu-latest | |
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }} | |
steps: | |
# Automatically adds size labels based on total changed lines | |
- name: Label by size | |
uses: pascalgn/size-label-action@v0.5.5 | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
with: | |
sizes: > | |
{ | |
"0": "small", | |
"50": "medium", | |
"250": "large" | |
} | |
label-by-date: | |
name: "Date label (Quarters)" | |
runs-on: ubuntu-latest | |
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' || github.event.action == 'synchronize' }} | |
steps: | |
# Determines the label (02, 05, 08, 11) based on PR creation month | |
- name: Determine quarter label | |
env: | |
PR_CREATED_AT: ${{ github.event.pull_request.created_at }} | |
run: | | |
echo "PR created at: $PR_CREATED_AT" | |
# Extract the numeric month (e.g., 04 for April) | |
MONTH=$(date -d "$PR_CREATED_AT" +%m | sed 's/^0*//') | |
echo "Month extracted: $MONTH" | |
# Determine quarter-end label based on month | |
if [ "$MONTH" -le 2 ] || [ "$MONTH" -eq 12 ]; then | |
LABEL="02" | |
elif [ "$MONTH" -le 5 ]; then | |
LABEL="05" | |
elif [ "$MONTH" -le 8 ]; then | |
LABEL="08" | |
else | |
LABEL="11" | |
fi | |
# Set as environment variable for next step | |
echo "LABEL=${LABEL}" >> $GITHUB_ENV | |
# Adds the quarter label to the PR | |
- name: Add quarter label | |
uses: PauMAVA/add-remove-label-action@v1.0.3 | |
with: | |
github_token: ${{ secrets.GITHUB_TOKEN }} | |
add: "${{ env.LABEL }}" |