Files
architecture/.opencode/plugins/tools/tea-actions-runs-list.ts
T

38 lines
1.4 KiB
TypeScript

import { $ } from "bun"
import type { Info } from "@opencode/plugin/promise/tool"
const teaActionsRunsList: Info = {
name: "tea-actions-runs-list",
description: "List workflow runs for Gitea actions with optional filters",
input: {
type: "object",
properties: {
status: { type: "string", description: "Filter by status (success, failure, pending, queued, in_progress, skipped, canceled)" },
branch: { type: "string", description: "Filter by branch name" },
event: { type: "string", description: "Filter by event type (push, pull_request, etc.)" },
limit: { type: "number", description: "Number of results to return (default: 30)" },
since: { type: "string", description: "Show runs started after this time (e.g., '24h', '7d')" },
},
additionalProperties: false,
},
async execute(input) {
const { status, branch, event, limit, since } = input as {
status?: string
branch?: string
event?: string
limit?: number
since?: string
}
let cmd = [`tea`, `actions`, `runs`, `list`, `-o`, `json`]
if (status) cmd = [...cmd, `--status`, status]
if (branch) cmd = [...cmd, `--branch`, branch]
if (event) cmd = [...cmd, `--event`, event]
if (limit) cmd = [...cmd, `--limit`, String(limit)]
if (since) cmd = [...cmd, `--since`, since]
const result = await $`${cmd}`.text()
return { content: result.trim() }
},
}
export default teaActionsRunsList