feat: add Gitea actions workflow runs list and logs tools
This commit is contained in:
@@ -0,0 +1,23 @@
|
|||||||
|
import { tool } from "@opencode-ai/plugin"
|
||||||
|
import { $ } from "bun"
|
||||||
|
|
||||||
|
export default tool({
|
||||||
|
description: "List workflow runs for Gitea actions with optional filters",
|
||||||
|
args: {
|
||||||
|
status: tool.schema.string().optional().describe("Filter by status (success, failure, pending, queued, in_progress, skipped, canceled)"),
|
||||||
|
branch: tool.schema.string().optional().describe("Filter by branch name"),
|
||||||
|
event: tool.schema.string().optional().describe("Filter by event type (push, pull_request, etc.)"),
|
||||||
|
limit: tool.schema.number().optional().describe("Number of results to return (default: 30)"),
|
||||||
|
since: tool.schema.string().optional().describe("Show runs started after this time (e.g., '24h', '7d')"),
|
||||||
|
},
|
||||||
|
async execute(args) {
|
||||||
|
let cmd = [`tea`, `actions`, `runs`, `list`, `-o`, `json`]
|
||||||
|
if (args.status) cmd = [...cmd, `--status`, args.status]
|
||||||
|
if (args.branch) cmd = [...cmd, `--branch`, args.branch]
|
||||||
|
if (args.event) cmd = [...cmd, `--event`, args.event]
|
||||||
|
if (args.limit) cmd = [...cmd, `--limit`, String(args.limit)]
|
||||||
|
if (args.since) cmd = [...cmd, `--since`, args.since]
|
||||||
|
const result = await $`${cmd}`.text()
|
||||||
|
return result.trim()
|
||||||
|
},
|
||||||
|
})
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
import { tool } from "@opencode-ai/plugin"
|
||||||
|
import { $ } from "bun"
|
||||||
|
|
||||||
|
export default tool({
|
||||||
|
description: "Get logs for a specific Gitea actions workflow run to diagnose failures",
|
||||||
|
args: {
|
||||||
|
runId: tool.schema.number().describe("Workflow run ID to get logs for"),
|
||||||
|
job: tool.schema.string().optional().describe("Specific job ID to view (if omitted, shows all jobs)"),
|
||||||
|
},
|
||||||
|
async execute(args) {
|
||||||
|
let cmd = [`tea`, `actions`, `runs`, `logs`]
|
||||||
|
if (args.job) cmd = [...cmd, `--job`, args.job]
|
||||||
|
cmd = [...cmd, String(args.runId), `-o`, `simple`]
|
||||||
|
const result = await $`${cmd}`.text()
|
||||||
|
return result.trim()
|
||||||
|
},
|
||||||
|
})
|
||||||
Reference in New Issue
Block a user