app

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 28, 2025 License: MIT Imports: 11 Imported by: 0

Documentation

Index

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

func (a *App) AnalyzeActiveMRs(ctx context.Context) ([]*domain.UserWorkload, error)

AnalyzeActiveMRs analyzes active merge requests for team members.

func (*App) AnalyzeMyReviewWorkload

func (a *App) AnalyzeMyReviewWorkload(ctx context.Context) (*domain.UserWorkload, error)

AnalyzeMyReviewWorkload analyzes the current user's review workload.

func (*App) AnalyzeWorkload

func (a *App) AnalyzeWorkload(ctx context.Context, projectID int) ([]*domain.UserWorkload, error)

AnalyzeWorkload analyzes the workload for team members.

func (*App) GetCurrentMRURL

func (a *App) GetCurrentMRURL(ctx context.Context) (string, error)

GetCurrentMRURL retrieves the current merge request URL from git.

func (*App) GetCurrentProjectInfo

func (a *App) GetCurrentProjectInfo(ctx context.Context) (*domain.Project, string, error)

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

func (a *App) GetProject(ctx context.Context, projectPath string) (*domain.Project, error)

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.

func (*App) UpdateMergeRequest

func (a *App) UpdateMergeRequest(ctx context.Context, projectID, mrID int, assigneeID *int, reviewerIDs []int) error

UpdateMergeRequest updates a merge request with optional assignee and reviewers.

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).

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL