From 4a5f5e96d75c7416a5b9989195ef138fa62ef033 Mon Sep 17 00:00:00 2001
From: asyncapi-bot <info@asyncapi.io>
Date: Tue, 2 Apr 2024 19:31:58 +0000
Subject: [PATCH] ci: update of files from global .github repo

---
 .github/workflows/help-command.yml            |  1 +
 .../workflows/please-take-a-look-command.yml  | 54 +++++++++++++++++++
 2 files changed, 55 insertions(+)
 create mode 100644 .github/workflows/please-take-a-look-command.yml

diff --git a/.github/workflows/help-command.yml b/.github/workflows/help-command.yml
index d4ba4a44..ada81682 100644
--- a/.github/workflows/help-command.yml
+++ b/.github/workflows/help-command.yml
@@ -31,6 +31,7 @@ jobs:
         
                     At the moment the following comments are supported in pull requests:
         
+                    - \`/please-take-a-look` or \`/ptal\` - This comment will add a comment to the PR asking for attention from the reviewrs who have not reviewed the PR yet.
                     - \`/ready-to-merge\` or \`/rtm\` - This comment will trigger automerge of PR in case all required checks are green, approvals in place and do-not-merge label is not added
                     - \`/do-not-merge\` or \`/dnm\` - This comment will block automerging even if all conditions are met and ready-to-merge label is added
                     - \`/autoupdate\` or \`/au\` - This comment will add \`autoupdate\` label to the PR and keeps your PR up-to-date to the target branch's future changes. Unless there is a merge conflict or it is a draft PR.`
diff --git a/.github/workflows/please-take-a-look-command.yml b/.github/workflows/please-take-a-look-command.yml
new file mode 100644
index 00000000..216055ca
--- /dev/null
+++ b/.github/workflows/please-take-a-look-command.yml
@@ -0,0 +1,54 @@
+# This action is centrally managed in https://github.com/asyncapi/.github/
+# Don't make changes to this file in this repo as they will be overwritten with changes made to the same file in above mentioned repo
+
+# It uses Github actions to listen for comments on issues and pull requests and 
+# if the comment contains /ping-for-attention or /pfa it will add a comment pinging 
+# the code-owners who have not yet reviewed the pull request
+
+name: Please take a Look
+
+on:
+  issue_comment:
+    types: [created]
+
+jobs:
+  ping-for-attention:
+    if: >
+      github.event.issue.pull_request &&
+      github.event.issue.state != 'closed' &&
+      github.actor != 'asyncapi-bot' &&
+      (
+        contains(github.event.comment.body, '/please-take-a-look') ||
+        contains(github.event.comment.body, '/ptal') ||
+        contains(github.event.comment.body, '/PTAL') 
+      )
+    runs-on: ubuntu-latest
+    steps:
+      - name: Check for Please Take a Look Command
+        uses: actions/github-script@v6
+        with:
+          github-token: ${{ secrets.GH_TOKEN }}
+          script: |
+            const prDetailsUrl = context.payload.issue.pull_request.url;
+            const { data: pull } = await github.request(prDetailsUrl);
+            const reviewers = pull.requested_reviewers.map(reviewer => reviewer.login);
+
+            const { data: reviews } = await github.rest.pulls.listReviews({
+              owner: context.repo.owner,
+              repo: context.repo.repo,
+              pull_number: context.issue.number
+            });
+
+            const reviewersWhoHaveReviewed = reviews.map(review => review.user.login);
+
+            const reviewersWhoHaveNotReviewed = reviewers.filter(reviewer => !reviewersWhoHaveReviewed.includes(reviewer));
+
+            if (reviewersWhoHaveNotReviewed.length > 0) {
+              const comment = reviewersWhoHaveNotReviewed.map(reviewer => `@${reviewer}`).join(' ');
+              await github.rest.issues.createComment({
+                issue_number: context.issue.number,
+                owner: context.repo.owner,
+                repo: context.repo.repo,
+                body: `${comment} Please take a look at this PR. Thanks! :wave:`
+              });
+            }