From 33cd8446d3675796939c7204e31814c0c0bbcbab Mon Sep 17 00:00:00 2001 From: Gergely Nagy Date: Tue, 30 Apr 2024 21:32:23 +0200 Subject: [PATCH] Performance improvement for FindReposLastestCommitStatuses If `commitstatus_service.FindReposLastestCommitStatuses` receives no repos in its params, short-circuit, and return early, without performing any potentially expensive work. Signed-off-by: Gergely Nagy --- services/repository/commitstatus/commitstatus.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/services/repository/commitstatus/commitstatus.go b/services/repository/commitstatus/commitstatus.go index bd40a75dc8..1944f11f03 100644 --- a/services/repository/commitstatus/commitstatus.go +++ b/services/repository/commitstatus/commitstatus.go @@ -127,6 +127,9 @@ func CreateCommitStatus(ctx context.Context, repo *repo_model.Repository, creato // FindReposLastestCommitStatuses loading repository default branch latest combinded commit status with cache func FindReposLastestCommitStatuses(ctx context.Context, repos []*repo_model.Repository) ([]*git_model.CommitStatus, error) { + if len(repos) == 0 { + return nil, nil + } results := make([]*git_model.CommitStatus, len(repos)) for i, repo := range repos { if cv := getCommitStatusCache(repo.ID, repo.DefaultBranch); cv != nil {