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)
51 lines
1.6 KiB
YAML
51 lines
1.6 KiB
YAML
# Operator helper: cancel+archive a Cursor Cloud agent (CURSOR_API_KEY secret).
|
|
name: Archive Cursor agent (ops)
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
agent_id:
|
|
description: Cursor agent id (bc-…)
|
|
required: true
|
|
type: string
|
|
run_id:
|
|
description: Cursor run id (run-…) optional cancel first
|
|
required: false
|
|
type: string
|
|
jobs:
|
|
archive:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v5
|
|
- uses: actions/setup-node@v5
|
|
with:
|
|
node-version: 24
|
|
package-manager-cache: false
|
|
- name: Cancel run (if any) + archive agent
|
|
env:
|
|
CURSOR_API_KEY: ${{ secrets.CURSOR_API_KEY }}
|
|
AGENT_ID: ${{ inputs.agent_id }}
|
|
RUN_ID: ${{ inputs.run_id }}
|
|
run: |
|
|
node --input-type=module <<'NODE'
|
|
import {
|
|
archiveCursorAgent,
|
|
cancelCursorRun,
|
|
} from './scripts/lib/agent-pool-cursor.mjs'
|
|
|
|
const agentId = process.env.AGENT_ID
|
|
const runId = process.env.RUN_ID?.trim()
|
|
if (!process.env.CURSOR_API_KEY) {
|
|
console.error('CURSOR_API_KEY missing')
|
|
process.exit(1)
|
|
}
|
|
if (runId) {
|
|
try {
|
|
await cancelCursorRun(agentId, runId)
|
|
console.log('cancelled', runId)
|
|
} catch (error) {
|
|
console.warn('cancel failed (continuing):', error.message)
|
|
}
|
|
}
|
|
await archiveCursorAgent(agentId)
|
|
console.log('archived', agentId)
|
|
NODE
|