--- /dev/null
+# @author : Donghak Park <donghak.park@samsung.com>
+# @file : labeler.yml
+# @date : 15 Feb 2023
+
+name: Auto Need-Review labeler
+
+on:
+ pull_request:
+ types: [opened, edited, reopened, synchronize]
+ pull_request_review:
+ types: [edited, dismissed, submitted]
+
+jobs:
+ label:
+ runs-on: ubuntu-latest
+ steps:
+ - name: review_count
+ id: review_count
+ run: |
+ review=$(curl -s -H "Accept: application/vnd.github.black-cat-preview+json" \
+ https://api.github.com/repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}/reviews \
+ | jq '[ .[] | select(.state=="APPROVED") ] | length')
+ echo "Number of approved review_count: $review"
+ echo "::set-output name=review::$review"
+ echo "REVIEW=$review" >> $GITHUB_OUTPUT
+
+
+ - name: DEBUG
+ run: |
+ echo "Number of Approved review_count : ${{ steps.review_count.outputs.REVIEW }}"
+
+ - name: Make label if approved review < 3
+ if: ${{ steps.review_count.outputs.REVIEW < 3 && !contains(github.event.pull_request.labels.*.name, 'Need Review') }}
+ uses: actions/github-script@v4
+ with:
+ script: |
+ github.issues.addLabels({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: context.issue.number,
+ labels: ["Need Review"]
+ })
+ token: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Remove label if approved review >= 3
+ if: ${{ steps.review_count.outputs.REVIEW >= 3 && contains(github.event.pull_request.labels.*.name, 'Need Review') }}
+ uses: actions/github-script@v4
+ with:
+ script: |
+ github.issues.removeLabel({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ issue_number: context.issue.number,
+ name : ["Need Review"]
+ })
+ token: ${{ secrets.GITHUB_TOKEN }}