CoolFace
Apppublic

delqhi/sin-github-issues

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
comment-as-github-app.mjs58 linesDownload Raw Back to scripts
1#!/usr/bin/env node2 3import { execFile } from 'node:child_process';4import { promisify } from 'node:util';5 6const execFileAsync = promisify(execFile);7 8function parseArgs(argv) {9  const out = {};10  for (let i = 0; i < argv.length; i += 1) {11    const token = argv[i];12    if (!token.startsWith('--')) continue;13    const key = token.slice(2);14    const next = argv[i + 1];15    if (!next || next.startsWith('--')) {16      out[key] = 'true';17      continue;18    }19    out[key] = next;20    i += 1;21  }22  return out;23}24 25function required(args, key) {26  const value = args[key];27  if (!value || !String(value).trim()) {28    throw new Error(`missing_required_arg: --${key}`);29  }30  return String(value).trim();31}32 33async function main() {34  const args = parseArgs(process.argv.slice(2));35  const action = {36    action: 'sin.github.issue.comment.as_app',37    agentSlug: required(args, 'agent'),38    repo: required(args, 'repo'),39    issueNumber: Number(required(args, 'issue-number')),40    installationId: Number(required(args, 'installation-id')),41    body: required(args, 'body'),42  };43 44  if (!Number.isFinite(action.issueNumber) || !Number.isFinite(action.installationId)) {45    throw new Error('invalid_numeric_args: --issue-number and --installation-id must be numbers');46  }47 48  const { stdout } = await execFileAsync('node', ['dist/src/cli.js', 'run-action', JSON.stringify(action)], {49    cwd: process.cwd(),50  });51  process.stdout.write(stdout);52}53 54main().catch((error) => {55  console.error(error instanceof Error ? error.message : String(error));56  process.exit(1);57});58