MCPcopy Create free account
hub / github.com/idosal/git-mcp / searchRepositoryCode

Function searchRepositoryCode

src/api/tools/commonTools.ts:584–715  ·  view source on GitHub ↗
({
  repoData,
  query,
  page = 1,
  env,
  ctx,
}: {
  repoData: RepoData;
  query: string;
  page?: number;
  env: Env;
  ctx: any;
})

Source from the content-addressed store, hash-verified

582 * Supports pagination for retrieving more results
583 */
584export async function searchRepositoryCode({
585 repoData,
586 query,
587 page = 1,
588 env,
589 ctx,
590}: {
591 repoData: RepoData;
592 query: string;
593 page?: number;
594 env: Env;
595 ctx: any;
596}): Promise<{
597 searchQuery: string;
598 content: { type: "text"; text: string }[];
599 pagination?: {
600 totalCount: number;
601 currentPage: number;
602 perPage: number;
603 hasMorePages: boolean;
604 };
605}> {
606 try {
607 // Initialize owner and repo from the provided repoData
608 const owner = repoData.owner;
609 const repo = repoData.repo;
610
611 if (!owner || !repo) {
612 return {
613 searchQuery: query,
614 content: [
615 {
616 type: "text" as const,
617 text: `### Code Search Results for: "${query}"\n\nCannot perform code search without repository information.`,
618 },
619 ],
620 };
621 }
622
623 // Use fixed resultsPerPage of 30 and normalize page value
624 const currentPage = Math.max(1, page);
625 const resultsPerPage = 30; // Fixed at 30 results per page
626
627 console.log(
628 `Searching code in ${owner}/${repo}" (page ${currentPage}, ${resultsPerPage} per page)`,
629 );
630
631 const data = await searchCode(
632 query,
633 owner,
634 repo,
635 env,
636 currentPage,
637 resultsPerPage,
638 );
639
640 if (!data) {
641 return {

Callers 2

getToolsMethod · 0.85
getToolsMethod · 0.85

Calls 3

searchCodeFunction · 0.85
logMethod · 0.80
errorMethod · 0.80

Tested by

no test coverage detected