From 1f9934349b1d436d49854a9483e7f6620c7f9eb1 Mon Sep 17 00:00:00 2001 From: Mathias Bergqvist Date: Mon, 4 May 2026 23:06:38 +0200 Subject: [PATCH] chore(tools): centralize pagination cap helper --- internal/tools/code_search.go | 4 +--- internal/tools/repo_list.go | 6 ++---- internal/tools/repo_search.go | 4 +--- internal/tools/tool.go | 11 +++++++++++ 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/internal/tools/code_search.go b/internal/tools/code_search.go index 7bee102..2706111 100644 --- a/internal/tools/code_search.go +++ b/internal/tools/code_search.go @@ -76,9 +76,7 @@ func (t *CodeSearch) Call(ctx context.Context, raw json.RawMessage) (json.RawMes if args.Page < 1 { args.Page = 1 } - if args.Limit < 1 || args.Limit > 50 { - args.Limit = 30 - } + args.Limit = capLimit(args.Limit, 30) if args.Repo != "" { return t.singleRepo(ctx, args) diff --git a/internal/tools/repo_list.go b/internal/tools/repo_list.go index 24523ad..58047e8 100644 --- a/internal/tools/repo_list.go +++ b/internal/tools/repo_list.go @@ -48,10 +48,8 @@ func (t *RepoList) Call(ctx context.Context, raw json.RawMessage) (json.RawMessa if err := t.a.Check(args.Owner); err != nil { return nil, err } - if args.Limit == 0 || args.Limit > 50 { - args.Limit = 30 - } - if args.Page == 0 { + args.Limit = capLimit(args.Limit, 30) + if args.Page < 1 { args.Page = 1 } repos, err := t.c.ListRepos(ctx, args.Owner, args.Page, args.Limit) diff --git a/internal/tools/repo_search.go b/internal/tools/repo_search.go index 26d8713..c877ffa 100644 --- a/internal/tools/repo_search.go +++ b/internal/tools/repo_search.go @@ -60,9 +60,7 @@ func (t *RepoSearch) Call(ctx context.Context, raw json.RawMessage) (json.RawMes if args.Page < 1 { args.Page = 1 } - if args.Limit < 1 || args.Limit > 50 { - args.Limit = 30 - } + args.Limit = capLimit(args.Limit, 30) repos, err := t.c.SearchRepos(ctx, args.Q, args.Owner, args.Page, args.Limit) if err != nil { diff --git a/internal/tools/tool.go b/internal/tools/tool.go index b698f70..17272b6 100644 --- a/internal/tools/tool.go +++ b/internal/tools/tool.go @@ -22,3 +22,14 @@ func parseArgs(raw json.RawMessage, dst any) error { } func _ctx(ctx context.Context) context.Context { return ctx } // stub for future hooks + +// capLimit returns a sane page size: 0 or negative → def, > 50 → 50. +func capLimit(in, def int) int { + if in <= 0 { + return def + } + if in > 50 { + return 50 + } + return in +}