mirror of
https://github.com/fsolla/teqo.git
synced 2026-11-13 15:13:07 +00:00
Workflows nativos em .forgejo/workflows/ (ci, ci-pr, agent-pool, automerge, issue-transition, plan-issue, vercel-promote, archive), removendo .github/workflows e .github/actions. Runner Forgejo v13 com services Postgres por porta + DB_HOST via gateway do bridge. Libs de agente sobre o novo cliente forgejo-api.mjs (zero dependências, GITHUB_SERVER_URL/FORGEJO_API_URL), helpers de workflow plain-Node. pnpm issue corrigido (await em função sync) e validado ao vivo. Testes: forgejoApi.unit.spec.ts novo, pin do matrix do ci.yml atualizado. Closes #1 (parte 1 — docs/issues/pool seguem na parte 2)
32 lines
1,012 B
JavaScript
32 lines
1,012 B
JavaScript
/**
|
|
* Plain-Node CLI (no pnpm) — dispatch a Forgejo workflow via workflow_dispatch.
|
|
* Used by CI jobs (requeue) and humans.
|
|
*
|
|
* node scripts/forgejo-dispatch.mjs <workflow-file> <ref> [key=value …]
|
|
*/
|
|
|
|
import { createApi } from './lib/forgejo-api.mjs'
|
|
|
|
const [, , workflowFile, ref = 'main', ...inputPairs] = process.argv
|
|
if (!workflowFile) {
|
|
console.error('Usage: node scripts/forgejo-dispatch.mjs <workflow-file> [ref] [key=value …]')
|
|
process.exit(1)
|
|
}
|
|
|
|
const inputs = {}
|
|
for (const pair of inputPairs) {
|
|
const eq = pair.indexOf('=')
|
|
if (eq <= 0) continue
|
|
inputs[pair.slice(0, eq)] = pair.slice(eq + 1)
|
|
}
|
|
|
|
const api = createApi({})
|
|
try {
|
|
await api.workflowDispatch(workflowFile, { ref, inputs })
|
|
console.log(
|
|
`[forgejo-dispatch] ${workflowFile}@${ref} enviado${Object.keys(inputs).length > 0 ? ` (${Object.keys(inputs).join(', ')})` : ''}`,
|
|
)
|
|
} catch (error) {
|
|
console.error(`[forgejo-dispatch] falhou: ${error instanceof Error ? error.message : error}`)
|
|
process.exit(1)
|
|
}
|