- 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 }}"
})[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');
- 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 }}