reviewbot

Source code for the is-a.dev r...
Log | Files | Refs | README | LICENSE

closed.js (3478B)


      1 import fs from 'fs';
      2 import path from 'path';
      3 
      4 import { db } from '../index.js';
      5 
      6 const ignoreLabels = ['maintainer'];
      7 const mergedPRs = fs.readFileSync(
      8     path.join(import.meta.dirname, '../message/merged.md'),
      9     'utf8'
     10 );
     11 const unremovableLabels = [
     12     'maintainer',
     13     'ci: bypass-owner-check',
     14     'no-stale',
     15     'r: william',
     16 ];
     17 const reviewerUsernames = [
     18     'DEV-DIBSTER',
     19     'dragsbruh',
     20     'iostpa',
     21     'notamitgamer',
     22     'omsenjalia',
     23     'orangci',
     24     'satr14washere',
     25     'Stef-00012',
     26     'STICKnoLOGIC',
     27     'wdhdev',
     28     'Yunexiz',
     29 ];
     30 
     31 export async function closed(
     32     appOctokit,
     33     prMerged,
     34     repoOwner,
     35     repoName,
     36     repoFullName,
     37     prNumber,
     38     prUsername,
     39     prSender
     40 ) {
     41     if (prMerged === true) {
     42         const labels = await appOctokit.rest.issues.listLabelsOnIssue({
     43             owner: repoOwner,
     44             repo: repoName,
     45             issue_number: prNumber,
     46         });
     47         const allLabels = labels.data.map((label) => label.name);
     48         if (ignoreLabels.some((label) => allLabels.includes(label))) {
     49             return;
     50         }
     51         await appOctokit.rest.issues.createComment({
     52             owner: repoOwner,
     53             repo: repoName,
     54             issue_number: prNumber,
     55             body: mergedPRs,
     56         });
     57         console.log(
     58             `Sent a merged message to #${prNumber} on https://github.com/${repoFullName}`
     59         );
     60 
     61         // remove almost all labels if there are any
     62         const listOfLabels = [];
     63         const data = await appOctokit.request(
     64             'GET /repos/{owner}/{repo}/pulls/{pull_number}',
     65             {
     66                 owner: repoOwner,
     67                 repo: repoName,
     68                 pull_number: prNumber,
     69             }
     70         );
     71 
     72         const labelData = data.data.labels;
     73         for (let i in labelData) {
     74             if (labelData[i].name) {
     75                 listOfLabels.push(labelData[i].name);
     76             }
     77         }
     78 
     79         for (let i in listOfLabels) {
     80             if (!unremovableLabels.includes(listOfLabels[i])) {
     81                 await appOctokit.request(
     82                     'DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}',
     83                     {
     84                         owner: repoOwner,
     85                         repo: repoName,
     86                         issue_number: prNumber,
     87                         name: listOfLabels[i],
     88                     }
     89                 );
     90             }
     91         }
     92     } else {
     93         let res = await db
     94             .prepare(`SELECT * FROM LIST WHERE username = ?;`)
     95             .get(prUsername);
     96         if (res !== undefined) {
     97             let resJson = JSON.stringify(res);
     98             let parsed = JSON.parse(resJson);
     99             if (reviewerUsernames.includes(prSender)) {
    100                 await db
    101                     .prepare(`DELETE FROM LIST WHERE username = ?;`)
    102                     .run(parsed.username);
    103                 await appOctokit.request(
    104                     'DELETE /repos/{owner}/{repo}/issues/{issue_number}/labels/{name}',
    105                     {
    106                         owner: repoOwner,
    107                         repo: repoName,
    108                         issue_number: prNumber,
    109                         name: 'status: low priority',
    110                     }
    111                 );
    112                 console.log(
    113                     `Removed #${prNumber} from https://github.com/${repoFullName} from the low priority database as well as the label.`
    114                 );
    115             }
    116         }
    117     }
    118 }
© notamitgamer • Site Built: 2026-07-21 13:58:23 UTC • git-mirror commit: 1037f62 [view raw info]
Originally created with stagit • modified by notamitgamer
Forked from github.com/notamitgamer/git-mirror