mirror of
https://gitea.com/gitea/gitea-mcp.git
synced 2026-08-30 03:57:45 +00:00
feat(actions): add wait_for_pr_checks method to actions_run_read
Add a wait_for_pr_checks method that resolves a pull request's head SHA, then polls its Actions runs until every run reaches a terminal status/conclusion or a timeout elapses, returning the runs and whether the wait timed out. Co-Authored-By: Codet <codet@commitgo.dev> (GPT-5-Codex)
This commit is contained in:
@@ -29,7 +29,7 @@ var (
|
||||
ActionsRunReadToolName,
|
||||
"Read Actions workflows, runs, jobs, logs, and artifacts.",
|
||||
annotation.ReadOnly("Read Actions workflow, run, job, and artifact data"),
|
||||
tool.String("method", tool.Required(), tool.Enum("list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job", "get_job_log_preview", "download_job_log", "list_artifacts", "list_run_artifacts", "get_artifact", "download_artifact")),
|
||||
tool.String("method", tool.Required(), tool.Enum("list_workflows", "get_workflow", "list_runs", "get_run", "list_jobs", "list_run_jobs", "get_job", "get_job_log_preview", "download_job_log", "list_artifacts", "list_run_artifacts", "get_artifact", "download_artifact", "wait_for_pr_checks")),
|
||||
tool.String("owner", tool.Required(), tool.Description(params.OwnerDesc)),
|
||||
tool.String("repo", tool.Required(), tool.Description(params.RepoDesc)),
|
||||
tool.String("workflow_id", tool.Description("ID or filename (for 'get_workflow')")),
|
||||
@@ -43,6 +43,9 @@ var (
|
||||
tool.String("output_path", tool.Description("for 'download_job_log'/'download_artifact'")),
|
||||
tool.Number("page", tool.Description(params.PageDesc), tool.Default(1), tool.Minimum(1)),
|
||||
tool.Number("per_page", tool.Description(params.PaginationDesc), tool.Default(30), tool.Minimum(1)),
|
||||
tool.Number("pull_number", tool.Description("PR number (for 'wait_for_pr_checks')")),
|
||||
tool.Number("timeout_seconds", tool.Description("max time to wait (for 'wait_for_pr_checks')"), tool.Default(120), tool.Minimum(1)),
|
||||
tool.Number("poll_interval_seconds", tool.Description("time between polls (for 'wait_for_pr_checks')"), tool.Default(5), tool.Minimum(1)),
|
||||
)
|
||||
|
||||
ActionsRunWriteTool = tool.NewDefinition(
|
||||
@@ -96,6 +99,8 @@ func runReadFn(ctx context.Context, args map[string]any) (*mcp.CallToolResult, e
|
||||
return getRepoActionArtifactFn(ctx, args)
|
||||
case "download_artifact":
|
||||
return downloadRepoActionArtifactFn(ctx, args)
|
||||
case "wait_for_pr_checks":
|
||||
return waitForPRChecksFn(ctx, args)
|
||||
default:
|
||||
return to.ErrorResult(fmt.Errorf("unknown method: %s", method))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user