Documentation
¶
Index ¶
- type App
- func (a *App) AnalyzeActiveMRs(ctx context.Context) ([]*domain.UserWorkload, error)
- func (a *App) AnalyzeMyReviewWorkload(ctx context.Context) (*domain.UserWorkload, error)
- func (a *App) AnalyzeWorkload(ctx context.Context, projectID int) ([]*domain.UserWorkload, error)
- func (a *App) GetCurrentMRURL(ctx context.Context) (string, error)
- func (a *App) GetCurrentProjectInfo(ctx context.Context) (*domain.Project, string, error)
- func (a *App) GetMergeRequest(ctx context.Context, projectID, mrID int) (*domain.MergeRequest, error)
- func (a *App) GetMergeRequestApprovals(ctx context.Context, projectID, mrID int) ([]*domain.User, error)
- func (a *App) GetMergeRequestsWithStatus(ctx context.Context) ([]*domain.MergeRequestWithStatus, error)
- func (a *App) GetMyActivity(ctx context.Context, since time.Time, till *time.Time) ([]*domain.Event, error)
- func (a *App) GetMyReviewWorkloadWithStatus(ctx context.Context) ([]*domain.MergeRequestWithStatus, error)
- func (a *App) GetProject(ctx context.Context, projectPath string) (*domain.Project, error)
- func (a *App) ListMergeRequests(ctx context.Context, state string, scope ...string) ([]*domain.MergeRequest, error)
- func (a *App) SortMergeRequestsByPriority(mrs []*domain.MergeRequestWithStatus, _ int, _ string) []*domain.MergeRequestWithStatus
- func (a *App) SuggestAssigneeAndReviewer(_ context.Context, mr *domain.MergeRequest, workloads []*domain.UserWorkload) (*domain.User, *domain.User, error)
- func (a *App) UpdateMergeRequest(ctx context.Context, projectID, mrID int, assigneeID *int, reviewerIDs []int) error
- type Repository
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type App ¶
type App struct {
// contains filtered or unexported fields
}
App represents the core application with all business logic.
func NewApp ¶
func NewApp(cfg *config.Config, repo Repository) (*App, error)
NewApp creates a new application instance.
func (*App) AnalyzeActiveMRs ¶
AnalyzeActiveMRs analyzes active merge requests for team members.
func (*App) AnalyzeMyReviewWorkload ¶
AnalyzeMyReviewWorkload analyzes the current user's review workload.
func (*App) AnalyzeWorkload ¶
AnalyzeWorkload analyzes the workload for team members.
func (*App) GetCurrentMRURL ¶
GetCurrentMRURL retrieves the current merge request URL from git.
func (*App) GetCurrentProjectInfo ¶
GetCurrentProjectInfo retrieves information about the current project from git.
func (*App) GetMergeRequest ¶
func (a *App) GetMergeRequest(ctx context.Context, projectID, mrID int) (*domain.MergeRequest, error)
GetMergeRequest retrieves a merge request by project ID and MR ID.
func (*App) GetMergeRequestApprovals ¶
func (a *App) GetMergeRequestApprovals(ctx context.Context, projectID, mrID int) ([]*domain.User, error)
GetMergeRequestApprovals retrieves approvals for a merge request.
func (*App) GetMergeRequestsWithStatus ¶
func (a *App) GetMergeRequestsWithStatus(ctx context.Context) ([]*domain.MergeRequestWithStatus, error)
GetMergeRequestsWithStatus retrieves merge requests with enhanced status information.
func (*App) GetMyActivity ¶
func (a *App) GetMyActivity(ctx context.Context, since time.Time, till *time.Time) ([]*domain.Event, error)
GetMyActivity retrieves the current user's activity events within the specified time range.
func (*App) GetMyReviewWorkloadWithStatus ¶
func (a *App) GetMyReviewWorkloadWithStatus(ctx context.Context) ([]*domain.MergeRequestWithStatus, error)
GetMyReviewWorkloadWithStatus retrieves merge requests with enhanced status information for current user's review workload.
func (*App) GetProject ¶
GetProject retrieves a project by path.
func (*App) ListMergeRequests ¶
func (a *App) ListMergeRequests(ctx context.Context, state string, scope ...string) ([]*domain.MergeRequest, error)
ListMergeRequests lists merge requests with the given state and scope.
func (*App) SortMergeRequestsByPriority ¶
func (a *App) SortMergeRequestsByPriority( mrs []*domain.MergeRequestWithStatus, _ int, _ string, ) []*domain.MergeRequestWithStatus
SortMergeRequestsByPriority sorts merge requests by priority.
func (*App) SuggestAssigneeAndReviewer ¶
func (a *App) SuggestAssigneeAndReviewer( _ context.Context, mr *domain.MergeRequest, workloads []*domain.UserWorkload, ) (*domain.User, *domain.User, error)
SuggestAssigneeAndReviewer suggests an assignee and reviewer for a merge request.
type Repository ¶
type Repository interface {
GetProject(ctx context.Context, path string) (*domain.Project, error)
ListMergeRequests(ctx context.Context, state string, scope ...string) ([]*domain.MergeRequest, error)
GetMergeRequestApprovals(ctx context.Context, projectID, mrID int) ([]*domain.User, error)
GetMergeRequest(ctx context.Context, projectID, mrID int) (*domain.MergeRequest, error)
PreloadUsersByUsernames(ctx context.Context, usernames []string) error
GetAllUsers(ctx context.Context) ([]*domain.User, error)
GetUserByUsername(ctx context.Context, username string) (*domain.User, error)
GetCurrentUser(ctx context.Context) (*domain.User, error)
ListCommits(ctx context.Context, projectID int) ([]*domain.Commit, error)
UpdateMergeRequest(ctx context.Context, projectID, mrID int, assigneeID *int, reviewerIDs []int) error
GetUserEvents(ctx context.Context, userID int, since time.Time, till *time.Time) ([]*domain.Event, error)
}
Repository defines the interface for data persistence operations (port).