From 06f9aa6e85f8bc85b5cc246f2a0843aac376e151 Mon Sep 17 00:00:00 2001 From: Adrien Pessu <7055334+adrienpessu@users.noreply.github.com> Date: Tue, 11 Jun 2024 15:21:32 +0200 Subject: [PATCH 1/5] Add workflow for language-based PR assignment --- language-detection-and-assignment.yml | 54 +++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 language-detection-and-assignment.yml diff --git a/language-detection-and-assignment.yml b/language-detection-and-assignment.yml new file mode 100644 index 0000000..1ca63e4 --- /dev/null +++ b/language-detection-and-assignment.yml @@ -0,0 +1,54 @@ +name: Language Detection and Assignment + +on: + pull_request: + branches: [main] + +jobs: + detect-and-assign: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Detect changed files' languages + id: detect-languages + uses: dorny/paths-filter@v2 + with: + list-files: json + filters: | + java: + - '**/*.java' + kotlin: + - '**/*.kt' + javascript: + - '**/*.js' + typescript: + - '**/*.ts' + go: + - '**/*.go' + python: + - '**/*.py' + rust: + - '**/*.rs' + codeql: + - '**/*.ql' + - '**/*.qll' + + - name: Assign for Java, Kotlin, JavaScript, TypeScript, Go + 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' + uses: peter-evans/assign@v1 + with: + users: adrienpessu + + - name: Assign for Python, Go, CodeQL, Rust + 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' + uses: peter-evans/assign@v1 + with: + users: Geekmasher + + - name: Assign for Python, JavaScript, TypeScript, CodeQL + 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' + uses: peter-evans/assign@v1 + with: + users: felickz From 32a611695c624a71d5654fb98ca3989e3f56a904 Mon Sep 17 00:00:00 2001 From: Adrien Pessu <7055334+adrienpessu@users.noreply.github.com> Date: Tue, 11 Jun 2024 15:47:43 +0200 Subject: [PATCH 2/5] add default --- language-detection-and-assignment.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/language-detection-and-assignment.yml b/language-detection-and-assignment.yml index 1ca63e4..72b23ad 100644 --- a/language-detection-and-assignment.yml +++ b/language-detection-and-assignment.yml @@ -52,3 +52,9 @@ jobs: uses: peter-evans/assign@v1 with: users: felickz + + - name: Assign for Java, Kotlin, JavaScript, TypeScript, Go + 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' + uses: peter-evans/assign@v1 + with: + users: oss-maintainers From 37e5907ab88356476bcc0837027219d86933ba59 Mon Sep 17 00:00:00 2001 From: Adrien Pessu <7055334+adrienpessu@users.noreply.github.com> Date: Wed, 12 Jun 2024 10:04:08 +0200 Subject: [PATCH 3/5] use the CLI instead of an action that doesn't exists --- language-detection-and-assignment.yml | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/language-detection-and-assignment.yml b/language-detection-and-assignment.yml index 72b23ad..29287ab 100644 --- a/language-detection-and-assignment.yml +++ b/language-detection-and-assignment.yml @@ -37,24 +37,20 @@ jobs: - name: Assign for Java, Kotlin, JavaScript, TypeScript, Go 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' - uses: peter-evans/assign@v1 - with: - users: adrienpessu + run: | + gh pr edit ${{ github.event.number }} --add-reviewer adrienpessu - name: Assign for Python, Go, CodeQL, Rust 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' - uses: peter-evans/assign@v1 - with: - users: Geekmasher + run: | + gh pr edit ${{ github.event.number }} --add-reviewer Geekmasher - name: Assign for Python, JavaScript, TypeScript, CodeQL 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' - uses: peter-evans/assign@v1 - with: - users: felickz + run: | + gh pr edit ${{ github.event.number }} --add-reviewer felickz - - name: Assign for Java, Kotlin, JavaScript, TypeScript, Go + - name: Assign default 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' - uses: peter-evans/assign@v1 - with: - users: oss-maintainers + run: | + gh pr edit ${{ github.event.number }} --add-reviewer oss-maintainers From 2fa6fd179d81fd5ef47776a274c4c8727eca05a0 Mon Sep 17 00:00:00 2001 From: Adrien Pessu <7055334+adrienpessu@users.noreply.github.com> Date: Wed, 12 Jun 2024 13:30:21 +0200 Subject: [PATCH 4/5] remove the detect language action, just because --- language-detection-and-assignment.yml | 34 ++++++++++----------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/language-detection-and-assignment.yml b/language-detection-and-assignment.yml index 29287ab..8037e3a 100644 --- a/language-detection-and-assignment.yml +++ b/language-detection-and-assignment.yml @@ -11,29 +11,19 @@ jobs: - name: Checkout code uses: actions/checkout@v3 - - name: Detect changed files' languages + - name: Detect languages id: detect-languages - uses: dorny/paths-filter@v2 - with: - list-files: json - filters: | - java: - - '**/*.java' - kotlin: - - '**/*.kt' - javascript: - - '**/*.js' - typescript: - - '**/*.ts' - go: - - '**/*.go' - python: - - '**/*.py' - rust: - - '**/*.rs' - codeql: - - '**/*.ql' - - '**/*.qll' + run: | + FILES=$(gh pr diff --name-only ${{ github.event.number }} | sed 's/.*\.//') + echo "java=$(echo $FILES | grep -q "java" && echo true || echo false)" >> $GITHUB_OUTPUT + echo "kotlin=$(echo $FILES | grep -q "kt" && echo true || echo false)" >> $GITHUB_OUTPUT + echo "javascript=$(echo $FILES | grep -E "(js|jsx)" && echo true || echo false)" >> $GITHUB_OUTPUT + echo "typescript=$(echo $FILES | grep -E "(ts|tsx)" && echo true || echo false)" >> $GITHUB_OUTPUT + echo "go=$(echo $FILES | grep -q "go" && echo true || echo false)" >> $GITHUB_OUTPUT + echo "python=$(echo $FILES | grep -q "py" && echo true || echo false)" >> $GITHUB_OUTPUT + echo "rust=$(echo $FILES | grep -q "rs" && echo true || echo false)" >> $GITHUB_OUTPUT + echo "codeql=$(echo $FILES | grep -E "(ql|qls)" && echo true || echo false)" >> $GITHUB_OUTPUT + echo $GITHUB_OUTPUT - name: Assign for Java, Kotlin, JavaScript, TypeScript, Go 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' From 1df94a5fdaceaca292b9f74e1f15c89fac5d5630 Mon Sep 17 00:00:00 2001 From: Adrien Pessu <7055334+adrienpessu@users.noreply.github.com> Date: Wed, 12 Jun 2024 13:38:07 +0200 Subject: [PATCH 5/5] update checkout action --- language-detection-and-assignment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/language-detection-and-assignment.yml b/language-detection-and-assignment.yml index 8037e3a..c329af5 100644 --- a/language-detection-and-assignment.yml +++ b/language-detection-and-assignment.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Detect languages id: detect-languages