Skip to content
This repository was archived by the owner on Jan 2, 2026. It is now read-only.

๐Ÿงช ์„ธ๋ฏธ๋‚˜ ์ž‘์„ฑ ํ๋ฆ„์„ ๊ฒ€์ฆ Playwright ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€ #42

๐Ÿงช ์„ธ๋ฏธ๋‚˜ ์ž‘์„ฑ ํ๋ฆ„์„ ๊ฒ€์ฆ Playwright ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€

๐Ÿงช ์„ธ๋ฏธ๋‚˜ ์ž‘์„ฑ ํ๋ฆ„์„ ๊ฒ€์ฆ Playwright ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€ #42

name: 'Random reviewer'
on:
pull_request:
types:
- opened
branches:
- '**'
jobs:
random-reviewer:
runs-on: ubuntu-latest
steps:
- id: random_reviewer
uses: actions/github-script@v6
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const myId = '${{ github.event.pull_request.user.login }}';
const idList = ['yeolyi', 'Limchansol', 'goranikin', 'onemeee'];
const candidateList = idList.filter(id => id !== myId);
const recentPRs = await github.rest.pulls.list({
owner: context.repo.owner,
repo: context.repo.repo,
state: 'all',
sort: 'updated',
direction: 'desc',
per_page: 10
});
const reviewerPromises = recentPRs.data.map(pr =>
github.rest.pulls.listRequestedReviewers({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: pr.number
})
);
const reviewersResults = await Promise.all(reviewerPromises);
const reviewCounts = {};
for (const reviewer of candidateList) {
reviewCounts[reviewer] = 0;
}
for (const reviewers of reviewersResults) {
for (const reviewer of reviewers.data.users) {
if (reviewCounts[reviewer.login] !== undefined) {
reviewCounts[reviewer.login]++;
}
}
}
const minCount = Math.min(...Object.values(reviewCounts));
const leastAssignedReviewers = Object.keys(reviewCounts).filter(
reviewer => reviewCounts[reviewer] === minCount
);
const randomReviewer = leastAssignedReviewers[
Math.floor(Math.random() * leastAssignedReviewers.length)
];
const deadline = new Date(Date.now() + 3 * 24 * 60 * 60 * 1000);
const comment = `@${randomReviewer}๋‹˜ ${deadline.toLocaleDateString('ko-KR')}๊นŒ์ง€ ๋ฆฌ๋ทฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค ๐ŸŽ‰`
core.setOutput('comment', comment)
core.setOutput('reviewer', randomReviewer)
- name: comment PR
uses: mshick/add-pr-comment@v1
with:
message: |
${{ steps.random_reviewer.outputs.comment }}
repo-token: ${{ secrets.GITHUB_TOKEN }}
repo-token-user-login: 'github-actions[bot]'
- name: Add Pull Request Reviewer
uses: madrapps/add-reviewers@v1
with:
reviewers: ${{ steps.random_reviewer.outputs.reviewer }}
token: ${{ secrets.GITHUB_TOKEN }}