feat: implement Gitea issue-to-PR workflow
This commit is contained in:
23
src/agent_gitea/state.py
Normal file
23
src/agent_gitea/state.py
Normal file
@@ -0,0 +1,23 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from .models import TaskState
|
||||
|
||||
|
||||
ALLOWED_TRANSITIONS: dict[TaskState, set[TaskState]] = {
|
||||
TaskState.DISCOVERED: {TaskState.CLAIMED, TaskState.CANCELLED},
|
||||
TaskState.CLAIMED: {TaskState.PLANNING, TaskState.FAILED, TaskState.BLOCKED, TaskState.CANCELLED},
|
||||
TaskState.PLANNING: {TaskState.IMPLEMENTING, TaskState.FAILED, TaskState.BLOCKED, TaskState.CANCELLED},
|
||||
TaskState.IMPLEMENTING: {TaskState.TESTING, TaskState.FAILED, TaskState.BLOCKED, TaskState.CANCELLED},
|
||||
TaskState.TESTING: {TaskState.PR_OPENED, TaskState.FAILED, TaskState.BLOCKED, TaskState.CANCELLED},
|
||||
TaskState.PR_OPENED: {TaskState.REVIEWING, TaskState.FAILED, TaskState.CANCELLED},
|
||||
TaskState.REVIEWING: {TaskState.HUMAN_REVIEW_READY, TaskState.FAILED, TaskState.CANCELLED},
|
||||
TaskState.HUMAN_REVIEW_READY: {TaskState.DISCOVERED},
|
||||
TaskState.BLOCKED: {TaskState.DISCOVERED, TaskState.CANCELLED},
|
||||
TaskState.FAILED: {TaskState.DISCOVERED, TaskState.CANCELLED},
|
||||
TaskState.CANCELLED: {TaskState.DISCOVERED},
|
||||
}
|
||||
|
||||
|
||||
def validate_transition(from_state: TaskState, to_state: TaskState) -> None:
|
||||
if to_state not in ALLOWED_TRANSITIONS[from_state]:
|
||||
raise ValueError(f"invalid task transition: {from_state.value} -> {to_state.value}")
|
||||
Reference in New Issue
Block a user