Skip to content

Commit

Permalink
Add auto labelers for Issues and PRs
Browse files Browse the repository at this point in the history
  • Loading branch information
rjmurillo committed Jun 19, 2024
1 parent cff3035 commit 4b145ad
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 0 deletions.
17 changes: 17 additions & 0 deletions .github/labeler.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Add 'build' label to any change in the 'build' directory
build:
- build/**/*

# Add 'dependencies' label to any change in one of the packages files
dependencies:
- build/**/Packages.props
- Directory.Packages.props

# Add '.NET' label to any change to a '.cs' file under Moq.Analyzers
.NET
- 'Source/Moq.Analyzers/**/*.cs'

# Add 'documentation' label to any change within the 'docs' directory or any '.md' file
documentation:
- docs/**/*
- '**/*.md'
50 changes: 50 additions & 0 deletions .github/workflows/label-issues.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# This workflow will read information about an issue and attempt to label it initially for triage and sorting

name: Label issues
on:
issues:
types:
- reopened
- opened

jobs:
label_issues:
name: "Issue: add labels"
if: ${{ github.event.action == 'opened' || github.event.action == 'reopened' }}
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- uses: actions/github-script@v6
with:
github-token: ${{ secrets.GH_ACTIONS_PR_WRITE }}
script: |
// Get the issue body and title
const body = context.payload.issue.body
let title = context.payload.issue.title
// Define the labels array
let labels = ["triage"]
// Check if the body or the title contains the word 'PowerShell' (case-insensitive)
if ((body != null && body.match(/powershell/i)) || (title != null && title.match(/powershell/i))) {
// Add the 'powershell' label to the array
labels.push("powershell")
}
// Check if the body or the title contains the words 'dotnet', '.net', 'c#' or 'csharp' (case-insensitive)
if ((body != null && body.match(/.net/i)) || (title != null && title.match(/.net/i)) ||
(body != null && body.match(/dotnet/i)) || (title != null && title.match(/dotnet/i)) ||
(body != null && body.match(/C#/i)) || (title != null && title.match(/C#/i)) ||
(body != null && body.match(/csharp/i)) || (title != null && title.match(/csharp/i))) {
// Add the '.NET' label to the array
labels.push(".NET")
}
// Add the labels to the issue
github.rest.issues.addLabels({
issue_number: context.issue.number,
owner: context.repo.owner,
repo: context.repo.repo,
labels: labels
});
21 changes: 21 additions & 0 deletions .github/workflows/label-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# This workflow will triage pull requests and apply a label based on the
# paths that are modified in the pull request.
#
# To use this workflow, you will need to set up a .github/labeler.yml
# file with configuration. For more information, see:
# https://github.com/actions/labeler

name: Label PR
on: [pull_request_target]

jobs:
add_label:
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write

steps:
- uses: actions/labeler@v4
with:
repo-token: "${{ secrets.GH_ACTIONS_PR_WRITE }}"

0 comments on commit 4b145ad

Please sign in to comment.