summaryrefslogtreecommitdiffstats
path: root/extra/close-incorrect-issue.js
diff options
context:
space:
mode:
Diffstat (limited to 'extra/close-incorrect-issue.js')
-rw-r--r--extra/close-incorrect-issue.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/extra/close-incorrect-issue.js b/extra/close-incorrect-issue.js
new file mode 100644
index 0000000..9bb01b1
--- /dev/null
+++ b/extra/close-incorrect-issue.js
@@ -0,0 +1,57 @@
+const github = require("@actions/github");
+
+(async () => {
+ try {
+ const token = process.argv[2];
+ const issueNumber = process.argv[3];
+ const username = process.argv[4];
+
+ const client = github.getOctokit(token).rest;
+
+ const issue = {
+ owner: "louislam",
+ repo: "uptime-kuma",
+ number: issueNumber,
+ };
+
+ const labels = (
+ await client.issues.listLabelsOnIssue({
+ owner: issue.owner,
+ repo: issue.repo,
+ issue_number: issue.number
+ })
+ ).data.map(({ name }) => name);
+
+ if (labels.length === 0) {
+ console.log("Bad format here");
+
+ await client.issues.addLabels({
+ owner: issue.owner,
+ repo: issue.repo,
+ issue_number: issue.number,
+ labels: [ "invalid-format" ]
+ });
+
+ // Add the issue closing comment
+ await client.issues.createComment({
+ owner: issue.owner,
+ repo: issue.repo,
+ issue_number: issue.number,
+ body: `@${username}: Hello! :wave:\n\nThis issue is being automatically closed because it does not follow the issue template. Please **DO NOT open blank issues and use our [issue-templates](https://github.com/louislam/uptime-kuma/issues/new/choose) instead**.\nBlank Issues do not contain the context nessesary for a good discussions.`
+ });
+
+ // Close the issue
+ await client.issues.update({
+ owner: issue.owner,
+ repo: issue.repo,
+ issue_number: issue.number,
+ state: "closed"
+ });
+ } else {
+ console.log("Pass!");
+ }
+ } catch (e) {
+ console.log(e);
+ }
+
+})();