You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@superset.apache.org by ma...@apache.org on 2024/02/08 05:04:40 UTC

(superset) branch supersetbot created (now af31502c17)

This is an automated email from the ASF dual-hosted git repository.

maximebeauchemin pushed a change to branch supersetbot
in repository https://gitbox.apache.org/repos/asf/superset.git


      at af31502c17 feat(supersetbot): re-implement labeling bot as a GitHub action

This branch includes the following new commits:

     new af31502c17 feat(supersetbot): re-implement labeling bot as a GitHub action

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(superset) 01/01: feat(supersetbot): re-implement labeling bot as a GitHub action

Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

maximebeauchemin pushed a commit to branch supersetbot
in repository https://gitbox.apache.org/repos/asf/superset.git

commit af31502c17ddf0e713a4fdce0e5b657a199b92eb
Author: Maxime Beauchemin <ma...@gmail.com>
AuthorDate: Wed Feb 7 21:04:22 2024 -0800

    feat(supersetbot): re-implement labeling bot as a GitHub action
---
 .github/workflows/supersetbot.js  | 59 +++++++++++++++++++++++++++++++++++++++
 .github/workflows/supersetbot.yml | 17 +++++++++++
 2 files changed, 76 insertions(+)

diff --git a/.github/workflows/supersetbot.js b/.github/workflows/supersetbot.js
new file mode 100644
index 0000000000..8f841fb590
--- /dev/null
+++ b/.github/workflows/supersetbot.js
@@ -0,0 +1,59 @@
+const core = require('@actions/core');
+const github = require('@actions/github');
+
+function getActionFromComment(comment) {
+  return comment.split(/\s+/)[1];
+}
+
+function getArgFromComment(comment, argNumber) {
+  const parts = comment.match(/"[^"]+"|\S+/g).map(arg => arg.replace(/"/g, ''));
+  return parts[argNumber] || '';
+}
+
+async function run() {
+  try {
+    const token = process.env.GITHUB_TOKEN;
+    const commentBody = process.env.COMMENT_BODY.trim();
+    const octokit = github.getOctokit(token);
+    const { owner, repo } = github.context.repo;
+    const issue_number = github.context.issue.number;
+
+    // Check if comment contains command
+    if (!commentBody.includes("@supersetbot")) {
+      console.log("No action needed.");
+      return;
+    }
+
+    // Extracting command and parameters
+    const command = getActionFromComment(commentBody);
+
+    if (command === "label") {
+      const label = getArgFromComment(1);
+      // Add label
+      await octokit.rest.issues.addLabels({
+        owner,
+        repo,
+        issue_number,
+        labels: [label],
+      });
+    } else if (command === "unlabel") {
+      // Remove label
+      const label = getArgFromComment(1);
+      await octokit.rest.issues.removeLabel({
+        owner,
+        repo,
+        issue_number,
+        name: label,
+      }).catch(error => {
+      // Handle the case where the label does not exist to avoid failing the action
+      if (error.status !== 404) {
+        throw error;
+      }
+      });
+    }
+  } catch (error) {
+    core.setFailed(error.message);
+  }
+}
+
+run();
diff --git a/.github/workflows/supersetbot.yml b/.github/workflows/supersetbot.yml
new file mode 100644
index 0000000000..6e044b51bf
--- /dev/null
+++ b/.github/workflows/supersetbot.yml
@@ -0,0 +1,17 @@
+- name: supersetbot
+  id: supersetbot
+  run: node .github/workflows/supersetbot.js
+  env:
+    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+    COMMENT_BODY: ${{ github.event.comment.body }}
+
+  jobs:
+    supersetbot:
+      runs-on: ubuntu-latest
+      if: "contains(github.event.comment.body, '@supersetbot')"
+      steps:
+        - name: Process supersetbot Command
+          run: node .github/scripts/process_command.js
+          env:
+            GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+            COMMENT_BODY: ${{ github.event.comment.body }}