From 8ec74c48e77d4a1a052b7802a2d657a78ffb16a1 Mon Sep 17 00:00:00 2001 From: vasilije Date: Tue, 16 Sep 2025 16:16:25 -0700 Subject: [PATCH] added auto tagging --- .github/ISSUE_TEMPLATE/documentation.yml | 1 + .github/core-team.txt | 12 ++++ .github/workflows/label-core-team.yml | 76 ++++++++++++++++++++++++ 3 files changed, 89 insertions(+) create mode 100644 .github/core-team.txt create mode 100644 .github/workflows/label-core-team.yml diff --git a/.github/ISSUE_TEMPLATE/documentation.yml b/.github/ISSUE_TEMPLATE/documentation.yml index 417289f5b..b01459ac6 100644 --- a/.github/ISSUE_TEMPLATE/documentation.yml +++ b/.github/ISSUE_TEMPLATE/documentation.yml @@ -71,3 +71,4 @@ body: required: true - label: I have specified the location of the documentation issue required: true + diff --git a/.github/core-team.txt b/.github/core-team.txt new file mode 100644 index 000000000..2e69a268c --- /dev/null +++ b/.github/core-team.txt @@ -0,0 +1,12 @@ +# Core team GitHub logins (one per line). Lines may begin with @; case-insensitive. +borisarzentar +daukadolt +dexters1 +hajdul88 +hande-k +lxobr +pazone +siillee +vasilije1990 + + diff --git a/.github/workflows/label-core-team.yml b/.github/workflows/label-core-team.yml new file mode 100644 index 000000000..8e32923d1 --- /dev/null +++ b/.github/workflows/label-core-team.yml @@ -0,0 +1,76 @@ +name: Label PRs from core team + +on: + pull_request_target: + types: [opened, reopened, synchronize, ready_for_review, edited] + +permissions: + contents: read + issues: write + +jobs: + label-core-team: + if: ${{ !github.event.pull_request.draft }} + runs-on: ubuntu-latest + steps: + - name: Check out base repository + uses: actions/checkout@v4 + with: + repository: ${{ github.repository }} + ref: ${{ github.event.pull_request.base.ref }} + + - name: Determine if PR author is a core team member + id: check_core + shell: bash + run: | + AUTHOR="${{ github.event.pull_request.user.login }}" + LIST_FILE=".github/core-team.txt" + + if [ ! -f "$LIST_FILE" ]; then + echo "core=false" >> "$GITHUB_OUTPUT" + exit 0 + fi + + # Normalize author to lowercase and strip leading '@' + AUTHOR_NORM="$(echo "$AUTHOR" | tr '[:upper:]' '[:lower:]' | sed 's/^@//')" + + # Compare against normalized list values (ignore comments/blank lines) + if awk -v author="$AUTHOR_NORM" ' + BEGIN { found=0 } + { + line=$0 + sub(/^[ \t]+|[ \t]+$/, "", line) + if (line ~ /^#/ || line == "") next + sub(/^@/, "", line) + line=tolower(line) + if (line == author) { found=1; exit } + } + END { exit(found ? 0 : 1) } + ' "$LIST_FILE"; then + echo "core=true" >> "$GITHUB_OUTPUT" + else + echo "core=false" >> "$GITHUB_OUTPUT" + fi + + - name: Add core-team label + if: steps.check_core.outputs.core == 'true' + uses: actions/github-script@v7 + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + script: | + const label = 'core-team'; + const { owner, repo } = context.repo; + const prNumber = context.payload.pull_request.number; + try { + await github.rest.issues.addLabels({ + owner, + repo, + issue_number: prNumber, + labels: [label], + }); + core.info(`Label '${label}' added to PR #${prNumber}`); + } catch (error) { + core.warning(`Failed to add label: ${error.message}`); + } + +