|
| 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