static async searchUserRepositories()

in app/lib/githubAPIService.ts [73:133]


  static async searchUserRepositories(
    token: string,
    query: string,
    username?: string
  ): Promise<GitHubRepository[]> {
    try {
      if (!query.trim()) {
        return [];
      }

      const searchQuery = username ? `${query} user:${username}` : query;

      const params = new URLSearchParams({
        q: searchQuery,
        sort: "updated",
        order: "desc",
        per_page: "50",
      });

      const response = await fetch(
        `${this.GITHUB_API_BASE}/search/repositories?${params}`,
        {
          headers: {
            Authorization: `Bearer ${token}`,
            Accept: "application/vnd.github+json",
            "X-GitHub-Api-Version": "2022-11-28",
          },
        }
      );

      if (!response.ok) {
        console.error("Failed to search GitHub repositories:", response.status);
        return [];
      }

      const data = await response.json();
      return data.items.map((repo: any) => ({
        id: repo.id,
        name: repo.name,
        full_name: repo.full_name,
        description: repo.description,
        private: repo.private,
        fork: repo.fork,
        clone_url: repo.clone_url,
        ssh_url: repo.ssh_url,
        html_url: repo.html_url,
        language: repo.language,
        stargazers_count: repo.stargazers_count,
        updated_at: repo.updated_at,
        pushed_at: repo.pushed_at,
        default_branch: repo.default_branch,
        owner: {
          login: repo.owner.login,
          avatar_url: repo.owner.avatar_url,
        },
      }));
    } catch (error) {
      console.error("Error searching GitHub repositories:", error);
      return [];
    }
  }