Feat/2586 pr labeler (#2587)

This commit is contained in:
DaneEvans 2025-08-01 00:19:23 +10:00 committed by GitHub
parent bbc74cc116
commit 7b4a4d9ae0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 80 additions and 2 deletions

31
.github/labeler.yml vendored Normal file
View file

@ -0,0 +1,31 @@
# Auto Labeler rulse using https://github.com/actions/labeler
#
# 'fix' in title/branch -> bug
# 'feat' in title/branch -> enhancement
# 'repo' in title/branch OR changes to ~/.github/ -> repo
# 'bug_fallthrough' for everything else except auto
#
# - [ ] need to look at title. waiting on https://github.com/actions/labeler/pull/866
# Add 'enhancement' label to any PR where the head branch name contains `feat`
enhancement:
- head-branch: ['feat']
# Add 'repo' label to any PR where the head branch name contains `repo`
# or files in the .github dir
repo:
- any:
- head-branch: ['repo']
- changed-files:
- any-glob-to-any-file: '.github'
# Add 'bug' label to any PR where the head branch name contains `fix` or `bug`
bugfix:
- head-branch: ['fix', 'bug']
# our fallback - bug except repo, feat, or automated pipelines
# bug_fallthrough:
# - all:
# - head-branch: ['^((?!feat).)*$', '^((?!repo).)*$', '^((?!renovate).)*$', '^((?!scheduled).)*$']

2
.github/release.yml vendored
View file

@ -18,6 +18,7 @@ changelog:
- dependencies
- repo
- automation
- release
- title: 👷Dependencies
labels:
@ -30,3 +31,4 @@ changelog:
- title: 🤖Automated
labels:
- automation
- release

24
.github/workflows/pr_enforce_labels.yml vendored Normal file
View file

@ -0,0 +1,24 @@
name: Check PR Labels
on:
pull_request:
types: [opened, edited, labeled, unlabeled, synchronize, reopened]
permissions:
pull-requests: read
contents: read
jobs:
check-label:
runs-on: ubuntu-24.04
steps:
- name: Check for PR labels
uses: actions/github-script@v7
with:
script: |
const labels = context.payload.pull_request.labels.map(label => label.name);
const requiredLabels = ['bugfix', 'enhancement', 'automation', 'dependencies', 'repo', 'release'];
const hasRequiredLabel = labels.some(label => requiredLabels.includes(label));
if (!hasRequiredLabel) {
core.setFailed(`PR must have at least one of the following labels before it can be merged: ${requiredLabels.join(', ')}.`);
}

View file

@ -0,0 +1,15 @@
name: "Pull Request Labeler"
on:
- pull_request_target
# Do not execute arbitary code on this workflow.
# See warnings at https://docs.github.com/en/actions/reference/workflows-and-actions/events-that-trigger-workflows#pull_request_target
jobs:
labeler:
permissions:
contents: read
pull-requests: write
runs-on: ubuntu-latest
steps:
- id: label-the-PR
uses: actions/labeler@v5

View file

@ -28,7 +28,7 @@ jobs:
GRADLE_ENCRYPTION_KEY: ${{ secrets.GRADLE_ENCRYPTION_KEY }}
check-workflow-status:
name: Check Workflow Status # Matches another in merge-queue, and is required.
name: Check Workflow Status
runs-on: ubuntu-latest
needs:
[
@ -46,4 +46,4 @@ jobs:
fi
}
exit_on_result "build_and_detekt" "${{ needs.build_and_detekt.result }}"
exit_on_result "androidTest" "${{ needs.androidTest.result }}"
exit_on_result "androidTest" "${{ needs.androidTest.result }}"

View file

@ -60,6 +60,12 @@ Comprehensive testing helps prevent regressions and ensures a stable experience
## Pull Requests
- branches should start with:
- bugfix
- enhancement
- dependencies
- repo
- reserved (release, automation)
- Ensure your branch is up to date with the latest `main` branch before submitting a PR.
- Provide a meaningful title and description for your PR.
- Inlude information on how to test and/or replicate if it is not obvious.