• close-incorrect-issue.js
  • 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);
        }
    
    })();