[GitAction] Fix Gitaction Auto Labeler
authorDongHak Park <donghak.park@samsung.com>
Tue, 28 Feb 2023 05:57:47 +0000 (14:57 +0900)
committerJijoong Moon <jijoong.moon@samsung.com>
Tue, 28 Feb 2023 07:09:59 +0000 (16:09 +0900)
Problem
- Request for removal when there is no label or request for addition when there is a label

Fix
- Add is_Contain Variable to upload & in labeler they check it already contain label or not
- In gitaction document their api use name : "Need Review" not labels : ["Need Review"]
- Remove unused Debug line
- Reorder step

Signed-off-by: DongHak Park <donghak.park@samsung.com>
.github/workflows/Upload.yml
.github/workflows/labeler.yml

index 23ae158..ca17c0f 100644 (file)
@@ -13,22 +13,21 @@ jobs:
       - name: review_count
         env:
           PR_NUMBER: ${{ github.event.number }}
+          IS_CONTAIN: ${{ contains(github.event.pull_request.labels.*.name, 'Need Review') }}
         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 "REVIEW=$review" >> $GITHUB_OUTPUT
+          echo "CONTAIN=$IS_CONTAIN"
 
           mkdir -p ./pr
           echo $PR_NUMBER > ./pr/pr_number
           echo $review > ./pr/review_num
+          echo $IS_CONTAIN > ./pr/contain_bool
+
       - uses: actions/upload-artifact@v3
         with:
           name: pr_number
           path: pr/
-
-      - name: DEBUG
-        run: |
-          echo "Number of Approved review_count : ${{ steps.review_count.outputs.REVIEW }}"
index 7f1a125..351d82e 100644 (file)
@@ -23,10 +23,10 @@ jobs:
             })[0];
 
             let download = await github.rest.actions.downloadArtifact({
-               owner: context.repo.owner,
-               repo: context.repo.repo,
-               artifact_id: matchArtifact.id,
-               archive_format: 'zip',
+              owner: context.repo.owner,
+              repo: context.repo.repo,
+              artifact_id: matchArtifact.id,
+              archive_format: 'zip',
             });
 
             let fs = require('fs');
@@ -35,37 +35,40 @@ jobs:
       - name: "Unzip artifact"
         run: unzip pr_number.zip
 
-      - name: Make label if approved review < 3
+      - name: Remove label if approved review >= 3
         uses: actions/github-script@v4
         with:
           script: |
             let fs = require('fs');
             let issue_number = Number(fs.readFileSync('./pr_number'));
             let review = Number(fs.readFileSync('./review_num'));
+            let is_contain = String(fs.readFileSync('./contain_bool')).trim();
 
-            if (review < 3) {
-            await github.issues.addLabels({
+            if ((review >= 3) && (is_contain==String("true"))) {
+            await github.issues.removeLabel({
               owner: context.repo.owner,
               repo: context.repo.repo,
               issue_number: issue_number,
-              labels: ["Need Review"]
+              name : "Need Review"
             })
             }
           token: ${{ secrets.GITHUB_TOKEN }}
 
-      - name: Remove label if approved review >= 3
+      - name: Make label if approved review < 3
         uses: actions/github-script@v4
         with:
           script: |
             let fs = require('fs');
             let issue_number = Number(fs.readFileSync('./pr_number'));
             let review = Number(fs.readFileSync('./review_num'));
+            let is_contain = String(fs.readFileSync('./contain_bool')).trim();
 
-            if (review >= 3) {
-            github.issues.removeLabel({
+            if ((review < 3) && (is_contain==String("false"))) {
+            await github.issues.addLabels({
               owner: context.repo.owner,
               repo: context.repo.repo,
               issue_number: issue_number,
-              name : ["Need Review"]
-            })}
+              labels: ["Need Review"]
+            })
+            }
           token: ${{ secrets.GITHUB_TOKEN }}