Documentation
¶
Index ¶
- Constants
- type IssueDirFormat
- type Manager
- func (m *Manager) CleanupWorkspace(ws *models.Workspace) bool
- func (m *Manager) CreateSessionPath(underPath, aiModel, repo string, prNumber int, suffix string) (string, error)
- func (m *Manager) CreateWorkspaceFromIssueWithAI(issue *github.Issue, aiModel string) *models.Workspace
- func (m *Manager) CreateWorkspaceFromPR(pr *github.PullRequest) *models.Workspace
- func (m *Manager) CreateWorkspaceFromPRWithAI(pr *github.PullRequest, aiModel string) *models.Workspace
- func (m *Manager) ExtractAIModelFromBranch(branchName string) string
- func (m *Manager) ExtractSuffixFromIssueDir(aiModel, repo string, issueNumber int, dirName string) string
- func (m *Manager) ExtractSuffixFromPRDir(aiModel, repo string, prNumber int, dirName string) string
- func (m *Manager) GenerateIssueDirName(aiModel, repo string, issueNumber int, timestamp int64) string
- func (m *Manager) GeneratePRDirName(aiModel, repo string, prNumber int, timestamp int64) string
- func (m *Manager) GenerateSessionDirName(aiModel, repo string, prNumber int, timestamp int64) string
- func (m *Manager) GetAllWorkspacesByPR(pr *github.PullRequest) []*models.Workspace
- func (m *Manager) GetExpiredWorkspaces() []*models.Workspace
- func (m *Manager) GetOrCreateWorkspaceForPR(pr *github.PullRequest) *models.Workspace
- func (m *Manager) GetOrCreateWorkspaceForPRWithAI(pr *github.PullRequest, aiModel string) *models.Workspace
- func (m *Manager) GetRepoManagerCount() int
- func (m *Manager) GetWorkspaceByPR(pr *github.PullRequest) *models.Workspace
- func (m *Manager) GetWorkspaceByPRAndAI(pr *github.PullRequest, aiModel string) *models.Workspace
- func (m *Manager) GetWorkspaceCount() int
- func (m *Manager) GetWorktreeCount() int
- func (m *Manager) MoveIssueToPR(ws *models.Workspace, prNumber int) error
- func (m *Manager) ParsePRDirName(dirName string) (*PRDirFormat, error)
- func (m *Manager) PrepareFromEvent(event *github.IssueCommentEvent) models.Workspace
- func (m *Manager) RegisterWorkspace(ws *models.Workspace, pr *github.PullRequest)
- type PRDirFormat
- type RepoManager
- func (r *RepoManager) CreateWorktreeWithName(worktreeName string, branch string, createNewBranch bool) (*WorktreeInfo, error)
- func (r *RepoManager) EnsureMainRepositoryUpToDate() error
- func (r *RepoManager) GetRepoPath() string
- func (r *RepoManager) GetRepoURL() string
- func (r *RepoManager) GetWorktree(prNumber int) *WorktreeInfo
- func (r *RepoManager) GetWorktreeCount() int
- func (r *RepoManager) GetWorktreeWithAI(prNumber int, aiModel string) *WorktreeInfo
- func (r *RepoManager) Initialize() error
- func (r *RepoManager) ListWorktrees() ([]*WorktreeInfo, error)
- func (r *RepoManager) RegisterWorktree(prNumber int, worktree *WorktreeInfo)
- func (r *RepoManager) RegisterWorktreeWithAI(prNumber int, aiModel string, worktree *WorktreeInfo)
- func (r *RepoManager) RemoveWorktree(prNumber int) error
- func (r *RepoManager) RemoveWorktreeWithAI(prNumber int, aiModel string) error
- func (r *RepoManager) RestoreWorktrees() error
- type SessionDirFormat
- type WorktreeInfo
Constants ¶
const (
// BranchPrefix branch name prefix, used to identify branches created by codeagent
BranchPrefix = "codeagent"
)
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IssueDirFormat ¶
IssueDirFormat Issue目录格式
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
func NewManager ¶
func (*Manager) CleanupWorkspace ¶
cleanupWorkspace 清理单个工作空间,返回是否清理成功
func (*Manager) CreateSessionPath ¶
func (*Manager) CreateWorkspaceFromIssueWithAI ¶
func (m *Manager) CreateWorkspaceFromIssueWithAI(issue *github.Issue, aiModel string) *models.Workspace
CreateWorkspaceFromIssueWithAI 从 Issue 创建工作空间,支持指定AI模型
func (*Manager) CreateWorkspaceFromPR ¶
func (m *Manager) CreateWorkspaceFromPR(pr *github.PullRequest) *models.Workspace
CreateWorkspaceFromPR 从 PR 创建工作空间(直接包含 PR 号)
func (*Manager) CreateWorkspaceFromPRWithAI ¶
func (m *Manager) CreateWorkspaceFromPRWithAI(pr *github.PullRequest, aiModel string) *models.Workspace
CreateWorkspaceFromPRWithAI 从 PR 创建工作空间,支持指定AI模型
func (*Manager) ExtractAIModelFromBranch ¶
ExtractAIModelFromBranch extracts AI model information from branch name Branch format: codeagent/{aimodel}/{type}-{number}-{timestamp}
func (*Manager) ExtractSuffixFromIssueDir ¶
func (m *Manager) ExtractSuffixFromIssueDir(aiModel, repo string, issueNumber int, dirName string) string
ExtractSuffixFromIssueDir extracts suffix from Issue directory name
func (*Manager) ExtractSuffixFromPRDir ¶
ExtractSuffixFromPRDir extracts suffix from PR directory name
func (*Manager) GenerateIssueDirName ¶
func (m *Manager) GenerateIssueDirName(aiModel, repo string, issueNumber int, timestamp int64) string
GenerateIssueDirName generates Issue directory name
func (*Manager) GeneratePRDirName ¶
GeneratePRDirName generates PR directory name
func (*Manager) GenerateSessionDirName ¶
func (m *Manager) GenerateSessionDirName(aiModel, repo string, prNumber int, timestamp int64) string
GenerateSessionDirName generates Session directory name
func (*Manager) GetAllWorkspacesByPR ¶
func (m *Manager) GetAllWorkspacesByPR(pr *github.PullRequest) []*models.Workspace
GetAllWorkspacesByPR 获取PR的所有工作空间(所有AI模型)
func (*Manager) GetExpiredWorkspaces ¶
func (*Manager) GetOrCreateWorkspaceForPR ¶
func (m *Manager) GetOrCreateWorkspaceForPR(pr *github.PullRequest) *models.Workspace
GetOrCreateWorkspaceForPR 获取或创建 PR 的工作空间
func (*Manager) GetOrCreateWorkspaceForPRWithAI ¶
func (m *Manager) GetOrCreateWorkspaceForPRWithAI(pr *github.PullRequest, aiModel string) *models.Workspace
GetOrCreateWorkspaceForPRWithAI 获取或创建 PR 的工作空间,支持指定AI模型
func (*Manager) GetRepoManagerCount ¶
GetRepoManagerCount 获取仓库管理器数量
func (*Manager) GetWorkspaceByPR ¶
func (m *Manager) GetWorkspaceByPR(pr *github.PullRequest) *models.Workspace
func (*Manager) GetWorkspaceByPRAndAI ¶
func (*Manager) GetWorkspaceCount ¶
GetWorkspaceCount 获取当前工作空间数量
func (*Manager) GetWorktreeCount ¶
GetWorktreeCount 获取总 worktree 数量
func (*Manager) MoveIssueToPR ¶
MoveIssueToPR 使用 git worktree move 将 Issue 工作空间移动到 PR 工作空间
func (*Manager) ParsePRDirName ¶
func (m *Manager) ParsePRDirName(dirName string) (*PRDirFormat, error)
ParsePRDirName parses PR directory name
func (*Manager) PrepareFromEvent ¶
func (m *Manager) PrepareFromEvent(event *github.IssueCommentEvent) models.Workspace
PrepareFromEvent 从完整的 IssueCommentEvent 准备工作空间
func (*Manager) RegisterWorkspace ¶
func (m *Manager) RegisterWorkspace(ws *models.Workspace, pr *github.PullRequest)
RegisterWorkspace 注册工作空间
type PRDirFormat ¶
PRDirFormat PR目录格式
type RepoManager ¶
type RepoManager struct {
// contains filtered or unexported fields
}
RepoManager 仓库管理器,负责管理单个仓库的 worktree
func NewRepoManager ¶
func NewRepoManager(repoPath, repoURL string) *RepoManager
NewRepoManager 创建新的仓库管理器
func (*RepoManager) CreateWorktreeWithName ¶
func (r *RepoManager) CreateWorktreeWithName(worktreeName string, branch string, createNewBranch bool) (*WorktreeInfo, error)
CreateWorktreeWithName 使用指定名称创建 worktree
func (*RepoManager) EnsureMainRepositoryUpToDate ¶
func (r *RepoManager) EnsureMainRepositoryUpToDate() error
EnsureMainRepositoryUpToDate 确保主仓库是最新的(公开方法,可被外部调用)
func (*RepoManager) GetWorktree ¶
func (r *RepoManager) GetWorktree(prNumber int) *WorktreeInfo
GetWorktree 获取指定 PR 的 worktree(向后兼容,默认无AI模型)
func (*RepoManager) GetWorktreeCount ¶
func (r *RepoManager) GetWorktreeCount() int
GetWorktreeCount 获取 worktree 数量
func (*RepoManager) GetWorktreeWithAI ¶
func (r *RepoManager) GetWorktreeWithAI(prNumber int, aiModel string) *WorktreeInfo
GetWorktreeWithAI 获取指定 PR 和 AI 模型的 worktree
func (*RepoManager) ListWorktrees ¶
func (r *RepoManager) ListWorktrees() ([]*WorktreeInfo, error)
ListWorktrees 列出所有 worktree
func (*RepoManager) RegisterWorktree ¶
func (r *RepoManager) RegisterWorktree(prNumber int, worktree *WorktreeInfo)
RegisterWorktree 注册单个 worktree 到内存(向后兼容,默认无AI模型)
func (*RepoManager) RegisterWorktreeWithAI ¶
func (r *RepoManager) RegisterWorktreeWithAI(prNumber int, aiModel string, worktree *WorktreeInfo)
RegisterWorktreeWithAI 注册单个 worktree 到内存(支持AI模型)
func (*RepoManager) RemoveWorktree ¶
func (r *RepoManager) RemoveWorktree(prNumber int) error
RemoveWorktree 移除指定 PR 的 worktree(向后兼容,默认无AI模型)
func (*RepoManager) RemoveWorktreeWithAI ¶
func (r *RepoManager) RemoveWorktreeWithAI(prNumber int, aiModel string) error
RemoveWorktreeWithAI 移除指定 PR 和 AI 模型的 worktree
func (*RepoManager) RestoreWorktrees ¶
func (r *RepoManager) RestoreWorktrees() error
RestoreWorktrees 扫描磁盘上的 worktree 并注册到内存
type SessionDirFormat ¶
SessionDirFormat Session目录格式
type WorktreeInfo ¶
worktree /Users/jicarl/codeagent/qbox/codeagent/issue-11-1752143989 HEAD 5c2df7724d26a27c154b90f519b6d4f4efdd1436 branch refs/heads/codeagent/issue-11-1752143989