chore: Enhance PR labeling based on PR title

This PR adds the labeler-action GH action that applies labels
based on the PR title. This allows to automatically assign
labels based on our conventional commit message.

Cherry-pick from PR #4226 (8f8b8eb787).
This commit is contained in:
Eberhard Beilharz 2021-01-07 20:24:48 +01:00
parent fd8e48449b
commit ee4f0642ed
No known key found for this signature in database
GPG key ID: 64A39A9E98B53105
3 changed files with 77 additions and 3 deletions

6
.github/labeler.yml vendored
View file

@ -1,8 +1,12 @@
#
# This file adds labels based on the scopes in resources/scopes/scopes.json.
# This file adds labels based on the scopes in resources/scopes/scopes.json and
# resources/scopes/commit-types.json
# Currently it must be manually kept up to date. Not all labels are added, only
# common ones. The others are commented out. There is still some variance between
# folder names and labels; consider this documentation of that ;-)
#
# Add labels based on changed files using actions/labeler
#
android/: android/**

63
.github/multi-labeler.yml vendored Normal file
View file

@ -0,0 +1,63 @@
version: v1
# This file adds labels based on the scopes in resources/scopes/scopes.json and
# resources/scopes/commit-types.json
# Currently it must be manually kept up to date. Not all labels are added, only
# common ones. The others are commented out. There is still some variance between
# folder names and labels; consider this documentation of that ;-)
#
# Add labels based on the PR title using fuxingloh/multi-labeler
#
labels:
- label: 'feat'
matcher:
title: '^feat(\(|:)'
- label: 'fix'
matcher:
title: '^fix(\(|:)'
- label: 'chore'
matcher:
title: '^chore(\(|:)'
# "change",
- label: 'docs'
matcher:
title: '^docs(\(|:)'
# "style",
- label: 'refactor'
matcher:
title: '^refactor(\(|:)'
# "test",
- label: 'auto'
matcher:
title: '^auto(\(|:)'
# Below are the scopes that we look for in the PR title
- label: 'android/'
matcher:
title: '\(.*android.*\):'
- label: 'common/'
matcher:
title: '\(.*common.*\):'
- label: 'developer/'
matcher:
title: '\(.*developer.*\):'
- label: 'ios/'
matcher:
title: '\(.*ios.*\):'
- label: 'linux/'
matcher:
title: '\(.*linux.*\):'
- label: 'mac/'
matcher:
title: '\(.*mac.*\):'
- label: 'oem/'
matcher:
title: '\(.*oem.*\):'
- label: 'web/'
matcher:
title: '\(.*web.*\):'
- label: 'windows/'
matcher:
title: '\(.*windows.*\):'

View file

@ -6,6 +6,13 @@ jobs:
triage:
runs-on: ubuntu-latest
steps:
- uses: actions/labeler@4b52aec09ba832eb9aecccddbccce644ba9ba69d
- name: Update labels based on changed files
uses: actions/labeler@4b52aec09ba832eb9aecccddbccce644ba9ba69d
with:
repo-token: "${{ secrets.GITHUB_TOKEN }}"
repo-token: "${{ secrets.GITHUB_TOKEN }}"
- name: Update labels based on PR title
id: labeler
uses: fuxingloh/multi-labeler@8afa186ed03230c98fe24ebf9fe35093072ad46e
with:
github-token: ${{secrets.GITHUB_TOKEN}}
config-path: .github/multi-labeler.yml