Skip to content

Commit 3f3e44f

Browse files
authored
Merge pull request #27 from adrienpessu/add-language-assignment
Add workflow for language-based PR assignment
2 parents 158078b + 1df94a5 commit 3f3e44f

File tree

1 file changed

+46
-0
lines changed

1 file changed

+46
-0
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Language Detection and Assignment
2+
3+
on:
4+
pull_request:
5+
branches: [main]
6+
7+
jobs:
8+
detect-and-assign:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Checkout code
12+
uses: actions/checkout@v4
13+
14+
- name: Detect languages
15+
id: detect-languages
16+
run: |
17+
FILES=$(gh pr diff --name-only ${{ github.event.number }} | sed 's/.*\.//')
18+
echo "java=$(echo $FILES | grep -q "java" && echo true || echo false)" >> $GITHUB_OUTPUT
19+
echo "kotlin=$(echo $FILES | grep -q "kt" && echo true || echo false)" >> $GITHUB_OUTPUT
20+
echo "javascript=$(echo $FILES | grep -E "(js|jsx)" && echo true || echo false)" >> $GITHUB_OUTPUT
21+
echo "typescript=$(echo $FILES | grep -E "(ts|tsx)" && echo true || echo false)" >> $GITHUB_OUTPUT
22+
echo "go=$(echo $FILES | grep -q "go" && echo true || echo false)" >> $GITHUB_OUTPUT
23+
echo "python=$(echo $FILES | grep -q "py" && echo true || echo false)" >> $GITHUB_OUTPUT
24+
echo "rust=$(echo $FILES | grep -q "rs" && echo true || echo false)" >> $GITHUB_OUTPUT
25+
echo "codeql=$(echo $FILES | grep -E "(ql|qls)" && echo true || echo false)" >> $GITHUB_OUTPUT
26+
echo $GITHUB_OUTPUT
27+
28+
- name: Assign for Java, Kotlin, JavaScript, TypeScript, Go
29+
if: steps.detect-languages.outputs.java == 'true' || steps.detect-languages.outputs.kotlin == 'true' || steps.detect-languages.outputs.javascript == 'true' || steps.detect-languages.outputs.typescript == 'true' || steps.detect-languages.outputs.go == 'true'
30+
run: |
31+
gh pr edit ${{ github.event.number }} --add-reviewer adrienpessu
32+
33+
- name: Assign for Python, Go, CodeQL, Rust
34+
if: steps.detect-languages.outputs.python == 'true' || steps.detect-languages.outputs.go == 'true' || steps.detect-languages.outputs.codeql == 'true' || steps.detect-languages.outputs.rust == 'true'
35+
run: |
36+
gh pr edit ${{ github.event.number }} --add-reviewer Geekmasher
37+
38+
- name: Assign for Python, JavaScript, TypeScript, CodeQL
39+
if: steps.detect-languages.outputs.python == 'true' || steps.detect-languages.outputs.javascript == 'true' || steps.detect-languages.outputs.typescript == 'true' || steps.detect-languages.outputs.codeql == 'true'
40+
run: |
41+
gh pr edit ${{ github.event.number }} --add-reviewer felickz
42+
43+
- name: Assign default
44+
if: steps.detect-languages.outputs.java != 'true' && steps.detect-languages.outputs.kotlin != 'true' && steps.detect-languages.outputs.javascript != 'true' && steps.detect-languages.outputs.typescript != 'true' && steps.detect-languages.outputs.go != 'true' && steps.detect-languages.outputs.codeql != 'true' && steps.detect-languages.outputs.python != 'true'
45+
run: |
46+
gh pr edit ${{ github.event.number }} --add-reviewer oss-maintainers

0 commit comments

Comments
 (0)