feat: enhance workflow and testing infrastructure
- Introduced ExecutionMode type for project execution modes (parallel, sequential). - Updated SetupOpts to use ExecutionMode instead of string literals. - Enhanced workflow states to include a new "In Review" state with appropriate transitions. - Implemented TestHarness for end-to-end testing, including command interception and workspace setup. - Created TestProvider for in-memory issue tracking during tests. - Refactored project registration and setup tools to utilize ExecutionMode. - Updated various tools to ensure compatibility with new workflow and execution modes. - Added new dependencies: cockatiel for resilience and zod for schema validation.
This commit is contained in:
@@ -28,6 +28,20 @@ export type IssueComment = {
|
||||
created_at: string;
|
||||
};
|
||||
|
||||
/** Built-in PR states. */
|
||||
export const PrState = {
|
||||
OPEN: "open",
|
||||
APPROVED: "approved",
|
||||
MERGED: "merged",
|
||||
CLOSED: "closed",
|
||||
} as const;
|
||||
export type PrState = (typeof PrState)[keyof typeof PrState];
|
||||
|
||||
export type PrStatus = {
|
||||
state: PrState;
|
||||
url: string | null;
|
||||
};
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
// Provider interface
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -46,6 +60,7 @@ export interface IssueProvider {
|
||||
getCurrentStateLabel(issue: Issue): StateLabel | null;
|
||||
hasMergedMR(issueId: number): Promise<boolean>;
|
||||
getMergedMRUrl(issueId: number): Promise<string | null>;
|
||||
getPrStatus(issueId: number): Promise<PrStatus>;
|
||||
addComment(issueId: number, body: string): Promise<void>;
|
||||
healthCheck(): Promise<boolean>;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user