/** * GitHub Actions workflow run status */ export type WorkflowRunStatus = "queued" | "in_progress" | "completed" | "waiting"; /** * GitHub Actions workflow run conclusion */ export type WorkflowRunConclusion = "success" | "failure" | "cancelled" | "skipped" | "timed_out" | "action_required" | null; /** * Workflow run result */ export interface WorkflowRun { id: number; name: string; status: WorkflowRunStatus; conclusion: WorkflowRunConclusion; html_url: string; created_at: string; updated_at: string; run_started_at?: string; } /** * Test result summary */ export interface TestResult { passed: boolean; duration: number; workflowUrl: string; workflowRunId: number; logs?: string; } /** * Service for GitHub Actions operations * Single Responsibility: Monitor and interact with GitHub Actions workflows */ export declare class ActionsService { /** * Get workflow runs for a specific PR * Note: Fetches recent workflow runs and filters by time in getLatestWorkflowRunAfter(). * Supports workflows triggered by both pull_request and issue_comment events. */ getWorkflowRunsForPR(_prNumber: number): Promise; /** * Get a specific workflow run by ID */ getWorkflowRun(runId: number): Promise; /** * Get the latest workflow run for a PR after a specific time * Filters for "Run Test" workflow to avoid picking up other workflows */ getLatestWorkflowRunAfter(prNumber: number, afterTime: Date): Promise; /** * Poll for workflow completion * Returns the completed workflow run or null if timeout */ pollForCompletion(runId: number, timeoutSeconds?: number, pollIntervalSeconds?: number): Promise; /** * Get workflow run logs (simplified - actual implementation would need job ID) */ getWorkflowLogs(runId: number): Promise; /** * Convert workflow run to test result */ convertToTestResult(run: WorkflowRun): Promise; } //# sourceMappingURL=ActionsService.d.ts.map